環境変数のパスの記述の仕方


どうも篠島です。Houdiniにプラグイン等をインストールするに当たり、houdini.envファイルの環境変数を設定すると思いますが、今回は環境変数のパスの設定の仕方を軽く説明しようと思います。

 

環境変数の設定は houdini.env ファイルを編集することによって行いますが、Mac と Linux ではシェルで設定した環境変数も引き継がれます。今回はWindows で話を進めますが、デフォルトで houdini.env ファイルは以下に保存されています。

C:\Users\ユーザー名\Documents\houdiniバージョン\houdini.env

 

環境変数の確認

プラグインをインストールすると大体 HOUDINI_PATH という環境変数に何らかのパスを設定します。HOUDINI_PATH はHoudiniのコンフィグファイルを検索するディレクトリを表す環境変数です。現在の環境変数の値を確認してみましょう。Command Line Tools を起動して、hconfig -ap と入力すると、パスを設定できる全ての環境変数が表示されます。

出力結果が数百行に及び、見にくいのでテキストファイルで出力結果を表したのが下の図です。houdini.env ファイル内でHOUDINI_PATH を何も設定していないデフォルトの値だとサーチパスは下のようになっています。下のような順番でディレクトリを検索しているという意味です。

  1. $HIP
  2. $HOUDINI_USER_PREF_DIR
  3. $HFS/houdini
  4. $HFS/bin

 

試しに環境変数を変更してみる

試しに HOUDINI_PATH の値を Cドライブ直下のパスにしてみます。Command Line Tools から hscript -p で出力を確認すると、サーチパスが下の図から分かる通りCドライブ直下で上書きされ、デフォルトのサーチパスは無くなってしまいました。
hscript -p で、環境変数の値がデフォルトのサーチパスでない物のみを表示することが出来ます。

 

デフォルトのサーチパスの追加

自分が設定したパスでデフォルト設定が上書きされてはまずいので、デフォルトのサーチパスを追加してみます。デフォルトのサーチパスは & で表す事ができ、それぞれのパスはセミコロンで区切ります。よって下のようにあらわす事ができます。

HOUDINI_PATH = “C:/;&”

これでCドライブ直下をチェックした後に、デフォルトのサーチパスの中をチェックするようになりました。環境変数でのパスは最初に指定した物が最初にサーチされるようになります。

 

現在の環境変数の値を追加

次に何らかのプラグインをインストールして手動でパスの設定が必要だったとします。この時 houdini.env で HOUDINI_PATH 環境変数を2行に渡って書くことが出来ます。下の図ではサンプルとしてDドライブ直下のパスを追加で指定しました。

しかし上の様に設定してしまうと、2行目の設定で1行目の設定が上書きされてしまいます。

 

これを解決するには2行目の最初に、$HOUDINI_PATH と入れてやれば、それ以前で設定されている HOUDINI_PATH の内容が展開されます。それにより、2行目の環境変数の設定で1行目を上書きすることなく、Dドライブ直下のパスを最後に追加することができました。

 

 

これが何の役に立つのか

この知識をどう使えば良いのかと思うかもしれません。Houdiniのプラグインをインストールする時に、物によってはhoudini.env に書き込む内容を手動でプラグインのヘルプページからコピーペーストしたり、インストーラーが自動的に設定してくれたりします。その際に、一つにHOUDINI_PATHの中にパスを追加するのではなく、上で説明したように複数行の HOUDINI_PATH が出来上がります。手動でコピーペーストする場合も同様に HOUDINI_PATH=”C:/hoge_plugin/hoge;&” のように環境変数名を含めた内容でコピーペーストするようになっています。そしてパスの最後には大体デフォルトのサーチパスを表す & が追加されていたりします。下図のように $HOUDINI_PATH と & が含まれていると大変で、HOUDINI_PATH のサーチパスがどんどん肥大化していきます。

HOUDINI_PATH の設定で $HOUDINI_PATH や & を多用すると、サーチパスが無駄に増えていきます。ですが、サーチパスが増えても特に害があるわけでなく、ただ単純に見にくい、環境変数のデバッグがしにくいという事くらいで、プラグイン自体は正常に動作します。

 

問題がある場合

 例えば、最近リリースされたReality Captureのプラグインをインストールするとします。そしてその後に RedShift をインストールし、 houdini.env 内の記述が下の図の様になったとします。RedShiftのヘルプにあるとおりHOUDINI_PATHの内容をコピーペーストすると、& が含まれているだけで、$HOUDINI_PATH が含まれていません。すなわち、最初に設定したReality Captureプラグインの設定が上書きされてなくなってしまうのです。

なので、複数のプラグインをインストールして、プラグインが読み込まれない等の症状があれば、環境変数をチェックして(HOUDINI_PATHに限らず)、後から設定した環境変数がそれ以前の環境変数を上書きしていないかどうか確認してみましょう。