2015-07-11

HDA Path

Houdini Digital Asset (.hda) の配置位置、スキャンパスの設定に関してまとめました。


使用したビルド: 14.0.361 -> 17.0.399 で更新

Houdini Digital Asset (.hda) の配置位置、スキャンパスの設定に関しての説明。

Houdini Digital Asset

Houdini デジタルアセットとは、Houdiniのシーンを構成するノードネットワークの一部を再利用できるようカプセル化、それにコントロールのためのパラメータを露出し、一つの独立したノードとして扱うことが出来るようにする仕組。コンパイルが不要で、OS 非依存、ダイナミックにロード・アンロード・入れ替えが可能なプラグインだと思うとわかり易い。

こうして定義したアセットは、(Houdini 14 以降) .hda という拡張子でシーンファイル (.hip) とは別に保存される。Houdini 13 までは .otl (Operator Type Library の略) という拡張子であった。Houdini 14 以降では .otl, .hda 両方の拡張子が使用可能。

HDA は自分で作ることも他人が作ったものを使うことも可能。

1. HDA ダウンロード

ここでは、SpookyTable というアセットを使い、HDA を扱う際のパスの設定について紹介する。

  1. http://www.orbolt.com/asset/SideFX::scott_spookytable に行き、"Free Download" をクリック (要ユーザ登録)。
  2. ページが更新されたら、
    1. Launch in Houdini
    2. Download HDA File Manually
    の二つの選択肢が表示されるが、後者 (2) "Download HDA File Manually" を選択。
  3. この HDAファイルは "SideFX__scott_spookytable.otl" という名前で、ブラウザの設定次第だが、ホームの下のDownloads などにダウンロードされる。

2. HDA 配置位置

ダウンロードしたHDAファイルを手っ取り早く使うには、アセットファイルをダブルクリックしてHoudini を起動。ただし、アセットを恒常的に使う方法として最適とは言えない。

HDA ファイルが Houdini 起動時に自動的に読み込まれるようにするには、他の選択肢もあるが、とりあえず次の上二つのいずれかに配置する。

  1. $HOME/houdini17.0/otls
      Windows の場合、デフォルトは My Documents/houdini17.0/otls/
      Mac の場合はこちら
      houdini17.0/ 以下に otls という名のディレクトリを作成し、その中に配置。この場合、配置したファイルは Houdini 17.0 のみで使用可能。
      ちなみに $HOME/houdini17.0/ (または My Documents/houdini17.0/) は $HOUDINI_USER_PREF_DIR で定義可能。
  2. $HOME/otls
      ホームディレクトリに otls というディレクトリを作成し、その中に配置。この場合、インストールされているすべてのバージョンで使用可能。
  3. 他にもというようにディレクトリを作成、配置することも可能。こうすることで、HDA を特定のシーンファイルやプロジェクトに関連付けることも可能。ただし、特にWindows の場合、注意が必要 。
  4. $HFS/houdini/otls
      $HFS は Houdini のインストール先を示す (例: C:\Program Files\Side Effects Software\Houdini 17.0.399)。
      $HFS 以下の houdini/otls には、Houdini に組み込まれた HDA が格納されている。よって、ここに個人用のファイルを置くのはお勧めしない。置いた場合、使えるのはその特定のビルド (例: 17.0.399) のみ。
      ちなみに、$HFS/houdini$HH で置き換えることも可能。

3. HDA のシーンへの読み込み

  1. 上記の 1 か 2 のいずれかのディレクトリに SideFX__scott_spookytable.otl を配置、Houdini を起動。
  2. アセットが正しく認識されている場合、ビューポートまたはネットワークパネルのいずれかで TAB -> Digital Assets とすれば、SpookyTable というメニューアイテムが表示されるはず。これを選択。ビューポートの場合、Enterキーを押して確定。
  3. このファイルの使用方法の一例はこちらのムービー LOAD ASSET IN UNREAL ENGINE 4 (2分56秒) を参照。

4. HDA のアンロック・編集・再ロック


アセットをロードした時点ではアセットはロックされている。これは、ノードの表示文字が青字であることで確認できる。この状態ではノード中に入ってノード単位で内容を表示したりすることが出来ない。

  1. ノードをアンロックするには、ノード上で RMB->Allow Editing of Contents を実行。これにより、ノードの表示文字が赤になる。この状態であれば、中に入ってノードの編集、表示フラグの変更などが可能になる。
  2. 変更を加えずにノードを再度ロックするには、ノード上で RMB->Match Current Definition を実行。これにより、読み込んだアセットが再度読み込まれ、ノードはロック状態に戻る。
  3. アセットに変更を加え、それを保存するのであれば RMB->Save Operator Type を実行。変更結果によりアセットファイルが上書きされる。

  4. 次に進むため、このシーンをファイルに保存。File -> Save とし、どこでも良いが (例: デスクトップ)、test_hdapath.hip などという名前で保存する。
  5. Houdini を一度終了する。

5. シーンファイルと HDA ファイルの別環境での読み込み

例えば、上記の test_hdapath.hip ファイルが同僚によって作成され、SideFX__scott_spookytable.otl とともに自分に渡ってきたとする。この場合、 .otl を "2. HDA 配置位置" で定義したディレクトリに配置した上で .hip ファイルを開けば、シーンは他ユーザの環境でも問題なく開くことができる。

反対に、例えば、test_hdapath.hip と SideFX__scott_spookytable.otl を両方ともデスクトップ (または同じディレクトリ) に配置し、シーンファイルを開くと、エラーになる。このエラーの状態からHDAを後から認識させるための方法を以下に示す。

  1. "2. HDA 配置位置" で配置した SideFX__scott_spookytable.otl をデスクトップに移動。デフォルトパスにこのOTLが無い常態にする。
  2. Houdini を起動、シーンファイル (test_hdapath.hip) を開く。すると以下のエラーが出るはず。

    ネットワークパネルに表示されたノードもエラー状態。

    よって HDA を後付で読み込む必要がある。
  3. Assets -> Install Digital Asset Asset Library... を実行。
    1. 表示されたパネルの Digital Asset Library フィールド 横の ボタンをクリック、デスクトップの SideFX__scott_spookytable.otl を選択。
    2. "Show Details" トグルをオンにする。
    3. "Instantiate asset" (読み込んだアセットのインスタンス化) トグルはオフにする。
      • オンにしたままだと、もう一つ作られる (削除すれば良いだけだが)。
    4. Accept ボタンを押して確定。これでビューポートには椅子とテーブルが現れるはず。

6. HDA 定義の入れ替え

  1. Window -> Asset Manager を開く。
  2. Operators タブの Operator Type Librariesとその中の Current HIP の折り畳みをすべて開くと以下のようになっている。
  3. Embedded 以下に赤で表示されているのは、元のディレクトリから移動したために読み込むことが出来なかったアセットの定義。
  4. パスとともに黄色く表示されているのは、先ほど読み込んだアセットの定義。黄色い理由はもう一つ別の(赤の)定義があるから。
  5. 黄色で表示されているアセットを明示的に「このアセットを使う」とするには、こちらのアセットをハイライト選択し、RMB (右マウスボタン) -> Use This Definition とする。

    この結果、黄色かった定義が緑色に変わる。
  6. この状態でシーンを、例えば test_hdapath2.hip など別名で保存し、再度開けば、赤かった定義が消え、HDA の新しい場所が登録されているのがわかる。

    ただし、緑で表示されているのはデフォルトのサーチパスにないOTLが見つかったことを指し示している。デフォルトパスにあるHDAが定義が一意に決定されていて、見つかった場合には、色表示されない。
よって長期的に見れば OTL/HDA は自動的にスキャンされる場所に配置するのが良い。

7. 環境変数

  • 任意の共有空間に HDA を配置し、自動的に HDA が読み込まれるようにするには、環境変数 HOUDINI_OTLSCAN_PATH を使う。
  • 個人単位での設定ではなく、チーム全体で共通の環境設定をするためには、環境変数 HSITE を使用する。
    例えば、W:/share を $HSITEで指定し、HDA をそこから読みたい場合、
    1. W:/share/houdini17.0/otlsを作成、HDAファイルを配置。
    2. この場合 HOUDINI_OTLSCAN_PATH は不要。何故なら、上記で指定したディレクトリは、デフォルト (@/otls ) で読み込まれるから。
    3. もし $HSITE/otls という形でバージョン非依存のディレクトリを作って認識させたいのであれば、
      HOUDINI_OTLSCAN_PATH = "$HSITE/otls;@/otls"
      とする必要がある。

まとめ

  1. HDA を Houdini 起動時に自動的に読み込ませるには、
    1. $HOME/houdini17.0/otls
        Windows の場合、デフォルトは My Documents/houdini17.0/otls
        Mac の場合はこちら
        配置したファイルは Houdini 17.0 のみで使用可能。
    2. $HOME/otls
        インストールされているすべてのバージョンで使用可能。
    3. 他にも
      • $HIP/otls
      • $JOB/otls
      というようにディレクトリを作成、配置することも可能。
    シーンファイルと同じディレクトリに配置しても、他に設定をしない限り、読み込まれない。
  2. HDA を 後付で読ませたり、定義ファイルを変更するには、Asset Manager を使用。
    • 一つのHDA に対して複数のバージョンがある場合の処理は、Asset Manager の Configurations タブで行う。
  3. Houdini がどのディレクトリから HDA をロードしているかを確認するのも Asset Manager の Scanned Asset Library Directories 以下を見ることで可能。
  4. 任意の共有空間に HDA を配置し、自動的に HDA が読み込まれるようにするには、環境変数 HOUDINI_OTLSCAN_PATH を使う。
  5. 製作チーム全体で共通の環境設定をするために、共有空間で環境設定を行いたい場合は、環境変数 HSITE を使用する。
  6. 関連項目:


最終更新: 2020-12-15

2 件のコメント:

  1. このコメントはブログの管理者によって削除されました。

    返信削除
  2. このコメントはブログの管理者によって削除されました。

    返信削除