2025-12-24

HDA filename custom pattern

HDA のファイル名に独自のルールを定める方法を説明する。これは、制作プロジェクトにおいて使う複数の HDA ファイル名に統一性をもたらすのに有用。

なお、これは Houdini Apprentice Advent Calendar 2025 の 24日目の記事です。


使用したビルド: Houdini 21.0.568 だが 20.5.270 以降が必須。

1. HDA について

HDA の概要、デフォルトのファイルパスについては こちらのページを参照のこと。

今回の目的のために、ここでは以下の方法で HDA を作成する。

  1. Create シェルフから Torus (Sphere でも何でも良い) をクリック。
      ネットワークエディタの /obj 以下に torus_object1 ができる。
  2. torus_object1 の中に入る。
  3. そこにある torus1 を選択、Shift+C または (Create Subnet from Selected ボタン) でサブネットを作成。
      subnet1 ができる。
  4. 作成された subnet1 を testHDA などと名前を変更する。
  5. testHDA ノード上で RMB -> Create Digital Assset... を実行。
      すると、以下のパネル表示される。

      デフォルトでは、環境ディレクトリ以下の otls/ に sop_ktaki.testHDA.1.0.hda というようなファイル名の HDA ファイルが作成されることになる。
    このファイル名のカスタマイズが今回の目的。

2. ファイル命名のカスタマイズ

上のパネルを見ると、パネル中央部 "Internal Name" 以下に HDA ノード名、つまりは Houdini 内で処理される時のノード名やそのバージョンを含む名前についていろいろな設定ができることがわかる。今回の目的はここではなく、その下に隠れている部分。

よって、

  1. "Save To" の先頭にある三角をクリックして展開する。
      すると以下のようなメニューが表示される。
  2. File Name のプルダウンメニューには以下のようなメニュー項目がある。
  3. 一番下の Custom File Pattern を選択する。

      するとプルダウン以下にフィールドが一つ追加され、
      $NS--$TYPENAME-$VERSION
      という文字列が表示される。
  4. ここで
    • $NS: ネームスペース
    • $TYPENAME: タイプ名
    • $VERSION: バージョン
    つまり、これらは、一番上のパネルで表示されているのと同じ。他にも "File Pattern Variables" リンク先の $NS から $NODENAME までの各種環境変数を使うことができる。
  5. 例えば、この文字列を PROJ_$NS--$TYPENAME-$VERSION などとして、個別のプロジェクト名などを先頭に追加することも可能。
      Houdini でのノードの命名に関する規則はここにあるが、私が理解する限り、
      • Houdini のノード名に許容されている文字は使える (小文字、数字、_- が使え、. も区切りとしては使える)
      • #, @, $ など (Shift + 数字キー)および括弧は使えない。何故ならこれらはエクスプレッションとしてみなされるから。

3. チーム/プロジェクトでの統一

ある制作プロジェクトにおいて、上のように UI 経由で命名方法を個人で各自設定していくのはつらいし、間違い易い。そこで環境変数 HOUDINI_ASSET_FILENAME_PATTERN を使う。

例えば、 ~/houdini21.0/houdini.env

HOUDINI_ASSET_FILENAME_PATTERN = "PROJ-\$NS--\$TYPENAME-\$VERSION"
などと定義しておけば、これがテンプレートとなる。

この環境変数をパッケージファイルに設定、共有すれば、チームでの共通化が促進できる。

おまけ

上段の Author のプルダウンは OTL のパスにある各 .hda ファイルの著者名を引っ張ってきてリスト化しているように見る。ただ、このデフォルト値は、 HOUDINI_AUTHOR で決定できる。またリスト自体は一番下の Edit Author Presets... で追加可能。

この記事は、環境変数 HOUDINI_ASSET_FILENAME_PATTERN が H20.5.270 で追加に至った際 (2025年1月) のやりとりを元に記述されていて、いずれ記事にしようと思っていたところ、CGWORLD Creative Conference の講演の中でこの手の内容が出てきたので書き上げることにしました。

0 件のコメント:

コメントを投稿