
マイケル
みなさんこんにちは!
マイケルです!

エレキベア
こんにちクマ〜〜〜

マイケル
今回取り上げるのはHoudini!
意外とややこしい 環境設定周り について触れていこうと思います!

エレキベア
環境設定・・・そんなにややこしいのクマか?

マイケル
指定できる環境変数が多数用意されていたり、設定方法自体もいくつかあったりするので、初見だと迷う箇所も多いと思います。
それからSteam版Houdiniだと挙動が異なっていたりしたので、その辺りについてもまとめていければと思います。
環境変数のリスト | Houdini リファレンス
▲指定できる環境変数の一覧

エレキベア
おおう・・・多すぎてよく分からないクマ・・・
参考サイト

マイケル
参考にさせていただいたのは主に下記のサイトになります。
当記事に加えてこれらの記事を見るとより理解が深まると思います。
- Houdini リファレンス
- サルにもわかるHoudini (SideFX多喜さんのブログ)
- Qiita

エレキベア
どれも分かりやすくまとめていただいていてありがたいクマ〜〜
環境変数の確認方法

マイケル
まずは細かい設定を見ていく前に、現在の設定値やどんな設定があるのかを確認する方法 について見てみます。

エレキベア
まずはざっくりと確認したいところクマね
コマンドラインツールからの確認

マイケル
Houdiniには専用のコマンドラインツールが用意されていて、こちらからhconfigコマンドを実行することで確認できます。
-
Houdini用コマンドラインツール
- Windows
- [Houdiniインストールパス]/bin/hcmd.exe
- Mac
- [Houdiniインストールパス]/Utilities/Houdini Terminal XXX.app
- Windows
-
hconfigコマンド
- hconfig
- 共通のHoudini環境変数の値を出力する
- hconfig -a
- すべてのHoudini環境変数の値を出力する
- hconfig -ap
- すべてのHoudini環境変数の説明と値を展開出力する
- hconfig -h
- コマンドヘルプを表示する
- hconfig
▲hconfig実行例
▲hconfig-a実行例
▲hconfig-ap実行例

エレキベア
とんでもない数出るクマが、説明も見れるのはありがたいクマね

マイケル
現在の設定内容確認や、コマンドについての詳細を調べる際に活用するとよさそうですね。
Houdiniセッション中の確認

マイケル
次にHoudini起動後に設定されている環境変数を確認する方法についてですが、
主に下記の3つの方法があります。
- Aliases and Variables ウィンドウからの確認
- Edit > Alias and Variables... > Variables タブ より確認できる
- Hscript Textport からの確認
- Windows > Hscript Textport からechoコマンドで確認する
- Python Shell からの確認
- Windows > Python Shell からosモジュール等で確認する

エレキベア
起動後に設定されている値を確認したい場面は多々ありそうクマね

マイケル
それぞれの確認結果は下記のようなイメージとなります。

▲Aliases and Variables: Variablesタブで確認が行える

▲Hscript Textport: echoコマンドにて確認する

▲Python Shell: osモジュール等で確認する

エレキベア
これで確認方法はバッチリクマね
主要な環境変数

マイケル
確認方法が分かったところで、次は主要な環境変数について簡単にまとめてみます。
特殊文字

マイケル
はじめに Houdiniの環境変数に使用される特殊文字 について記載します。
全部で4つあり、これらは内部で変換されます。
参考: パス変数の特殊文字 | Houdini リファレンス
特殊文字 | 概要 |
---|---|
@ | $HOUDINI_PATH と同等 |
= | $HIP と同等 |
& | 環境変数に応じたフォルダパス |
^ | 環境変数に応じて決められたフォルダ名に展開される 例 $HOUDINI_TOOLBAR_PATHの場合: @/^ → @/toolbar |

エレキベア
おおう・・・こんなのが決められているのクマか

マイケル
例えばHOUDINI_TOOLBAR_PATH環境変数で「@/^」と指定した場合、「$HOUDINI_PATH/toolbar」といったように変換されます。
混乱を招きやすいポイントなので押さえておきましょう。
主な環境変数

マイケル
そして環境変数の中でも 特に影響範囲の広い環境変数 は下記になります。
この中でも $HOUDINI_PATH は先ほどの特殊文字「@」と共に使用されることが多いです。
影響範囲の広い環境変数
環境変数 | 概要 | 補足 |
---|---|---|
$HOUDINI_PATH | Houdiniが環境設定を見に行くパスを全て記録する環境変数 @から始まる環境変数は全てこのフォルダを参照する | ・デフォルトでは下記順で見に行く 1. $HIP 2. $HOUDINI_USER_PREF_DIR 3. $HSITE/houdini.x.y 4. $HFS/houdini 5. $HFS/bin |
$HOUDINI_USER_PREF_DIR | Houdiniのユーザ環境保存先 | ・デフォルトでは下記に格納される Windows: C:/Users/[ユーザ名]/houdiniX.Y Mac: /Users/[ユーザ名]/Library/Preferences/houdini/X.Y ・バージョンごとの階層で管理する |
$HSITE | 共通設定を持たせるためのHoudini構成情報のパス | ・$HOUDINI_USER_PREF_DIRの共有管理版 ・バージョンごとの階層で管理する |
$HFS | Houdiniのインストールディレクトリ | - |
$HIP | hipファイルが格納されているディレクトリ | ・下記を動的に指定する 1. Houdini起動時のディレクトリ 2. シーンファイルのあるディレクトリ 3. シーンファイルを最後に保存したディレクトリ |
$JOB | 共有プロジェクトファイルの格納ディレクトリ | ・$HIPの共有管理版 ・2つ以上のシーンファイルを含むプロジェクトに対して使用する |

エレキベア
確かにHoudiniを使用しているとよく見るものが多いクマね

マイケル
HOUDINI_PATHやHFSといった環境変数を設定すると、それを使用している各環境変数の参照先も変更されますが、HDAやPythonといった資産を別々のフォルダに格納したい場合 もあると思います。
そのように資産ごとに個別にフォルダを変更する場合には、下記のような環境変数が使用できます。
HOUDINI_PATHを使用している環境変数例
環境変数 | 概要 | デフォルト設定 |
---|---|---|
$HOUDINI_OTLSCAN_PATH | HDAを読み込むパス | @/otls |
$HOUDINI_MENU_PATH | メインメニューファイルの検索パス | @ |
$HOUDINI_TOOLBAR_PATH | シェルフツールファイルの検索パス | @/^ (@/toolbar) |
$HOUDINI_PYTHON_PANEL_PATH | Pythonパネルファイルの検索パス | @/^ (@/python_panels) |
$HOUDINI_RADIALMENU_PATH | Radialメニューの検索パス | @/^ (@/radialmenu) |
$HOUDINI_VEX_PATH | @/vex/^ (@/vex/[オペレータ名]) | |
$HOUDINI_DSO_PATH | カスタムプラグインを読み込むパス | @/vex |
$HOUDINI_SCRIPT_PATH | HScript、tckl/tkファイルを読み込むパス | @/scripts |

エレキベア
これだけ変更したい、という場合にも使えそうクマね

マイケル
その他、使用頻度が高そうな環境変数も記載しておきます。
Python関連の環境変数は厳密にはHoudini側で用意されているものではないですが、Pythonファイルを読み込ませる場合に使用します。
その他よく使いそうな環境変数
環境変数 | 概要 | 補足 |
---|---|---|
$HOUDINI_PACKAGE_DIR | パッケージファイルを読み込むパス | ※環境変数の設定方法 > パッケージファイルを使用する 参照 |
$HAPI_LICENSE_MODE | Houdini Engineが見に行くライセンスを制限できる | デフォルト: Engine → Core → FX engine_only: Engineのみ |
$SIDEFXLABS | SideFXLabsのインストールパス | - |
$SIDEFXLABS_ADMIN_UPDATES | 個々のユーザによる既存インストールのアップデートを無効にする | - |
$HOUDINI_UISCALE | UIのスケールを変更する | ノートPC向けの設定におすすめ |
$HOUDINI_MMB_PAN | 左ボタンがタンブル、中ボタンがパン、右ボタンがズームになるようマウスボタンを再マップする | ノートPC向けの設定におすすめ |
$PYTHONPATH | Pythonファイルを読み込むパス | - |
$PYTHONDONTWRITEBYTECODE | pycファイルの生成を行うかどうか | - |

マイケル
この中で意外と知られていないのが $HOUDINI_MMB_PAN 変数です。
Macbookで設定するとTrackpad操作でノードの操作が行えるようになるので、通勤/通学中などにHoudiniを行いたい場合 におすすめです!

エレキベア
(通勤中にHoudiniかぁ・・・)

マイケル
いくつかピックアップして記載しましたが、その他にも便利な環境変数が多々あるので気になる方はチェックしてみてください!
環境変数の設定方法

マイケル
そしてこれらの 環境変数をどのように設定するか についてですが、大きく下記の3つの方法があります。
- houdini.envファイルを書き換える
- 起動bat内で設定して起動する
- パッケージファイルを使用する

エレキベア
うーむ、これもいくつか方法があるのクマか・・・

マイケル
それぞれの方法について簡単に記載します。
houdini.envを書き換える

マイケル
まず一番単純なのは houdini.envを書き換える方法 です。
Houdiniには起動時に読み込む環境設定を指定するファイルがあり、デフォルトだと下記に格納されています。
- Windows
- %HOME%/houdiniX.Y/houdini.env
- Mac
- ~/Library/Preferences/houdini/X.Y/houdini.env

エレキベア
Mayaにも同じようなenvファイルが用意されていたクマね

マイケル
このenvファイルの中身を直接書き換えることで、起動時に設定されるようになります。
▲設定例

エレキベア
これは非常に簡単クマね
起動bat内で設定した後に起動する

マイケル
houdini.envを使用する方法は簡単ですが、複数環境を使い分けたい場合には都度書き換えないといけないというデメリットがあります。
そういった場合には、bat(shell)内で環境変数を設定した後に起動する という方法が有効です。
▲起動時設定の例(Windows)
▲起動時設定の例(Mac)

エレキベア
これもMayaでもよく見られる方法クマね
パッケージファイルを使用する

マイケル
そして最後に、Houdiniパッケージ を使用する方法があります。
これはパッケージファイルという環境変数を記載したJSONを用意することで設定する方法で、現在主流となりつつある方法です。
参考:Houdiniパッケージ | Houdini リファレンス

エレキベア
環境設定部分をJSONとして分けることができるのクマね

マイケル
パッケージファイルは下記フォルダに格納されているファイルが順番に読まれていきます。
- $HOUDINI_USER_PREF_DIR/packages
- $HSITE/houdinimajor.minor/packages
- $HOUDINI_PACKAGE_DIR

マイケル
$HOUDINI_PACKAGE_DIR はカスタムで追加できるディレクトリになります。
パッケージファイルはhoudini.envよりも先に読まれるため、起動前に設定する必要がある 点には注意が必要です。

エレキベア
houdini.envと違って、固有の環境設定を $HOUDINI_PACKAGE_DIR で指定することで切り替えることができるクマね

マイケル
JSONファイルの書き方としては、env項目に環境変数と値を設定 する他、
追加・置換などのオプションやバージョンごとの挙動なども指定 することができます。
▲シンプルな例
▲method指定やバージョンによる分岐を加えた例

マイケル
詳細な書き方については、公式リファレンスをご参照ください!
(参考) 個人的な環境設定

マイケル
最後に参考として、個人的にどのような環境設定を行なっているかを紹介します!
基本の環境設定

マイケル
まずフォルダ構造としては下記のように、
houdini/common配下にHDAやtoolbar、Pythonファイルなど を、
launcher配下に起動bat(shell) をそれぞれ格納しています。
また、houdini/common/packagesには共通で読み込ませるためのパッケージファイルを用意しています。
▲フォルダ構造
▲パッケージファイルの記述

エレキベア
このパッケージファイルを指定して起動するクマね

マイケル
あとは各起動bat(shell)内で、$HOUDINI_PACKAGE_DIRと内部で使用している環境変数を設定してから起動するようにしているだけですね。
▲Windows版起動処理
▲Mac版起動処理

エレキベア
シンプルクマ〜〜〜〜
特殊対応:Steam版Houdini(Mac)の起動設定

マイケル
一点Steam版Houdiniで起きた問題として、Macだとshellで環境変数を設定しても適用されない といった問題がありました。
Windowsだと問題はなく詳細な原因までは追えていないのですが、恐らくはSteamからHoudiniを起動する仕組みによるものだと思います。

エレキベア
むむ・・・それは困ったクマ・・・

マイケル
そこで暫定対処として、デフォルトでパッケージファイルが読み込まれるパスにもう一段パッケージファイルを格納して参照させるといった方法を採用してみました。
下記のようにファイルを用意して、パッケージファイルを認識させるためのパッケージファイルを作成します。
▲フォルダ構造
▲パッケージファイルを認識させるためのパッケージファイル

マイケル
そしてこのパッケージファイルをデフォルトで読み込まれるパス(今回だと/Users/[ユーザ名]/Library/Preferences/houdini)配下に格納します。
これをshellで書くと下記のようになります。
▲パッケージファイルを指定フォルダ配下に格納する
▲Desktop.jsonを格納するよう引数指定して実行

マイケル
格納した状態で起動すると、共通設定のパッケージファイルが読み込まれるようになります。
必要に応じてパッケージファイル内の参照先を変えることで、環境を切り替えることができます。

エレキベア
少しややこしいクマが・・・こればっかりは仕方ないクマね
おわりに

マイケル
というわけで今回はHoudiniの環境設定に関する話でした!
どうだったかな??

エレキベア
環境変数もたくさんあって方法もいくつもあるから
初めての人は混乱しそうクマね

マイケル
ややこしいけど、設定の自由度の高さもHoudiniの一つの魅力だと思うから使いこなしていきたいね!

マイケル
それでは今日はこの辺で!
アデューー!!

エレキベア
クマ〜〜〜〜
【Houdini20.5】主要な環境変数と設定方法についてまとめる【Windows/Mac】【Steam版】〜完〜