On this page |
概要 ¶
.hda
ファイルについて
¶
Houdiniは、.hda
ファイルにデジタルアセットを格納します。
.hda
ファイルフォーマットは、 バイナリアーカイブフォーマット です。
このファイルフォーマットには、アセットのノードタイプ定義、メタデータ、ノードタイプに関連付けられたシェルフツールに加えて、ヘルプファイル、アイコン、テクスチャなどのバイナリブロブ(“セクション”とか“Extra Files”と呼ばれています)など1つまたは複数のアセットに関するデータの階層を格納することができます。
(.otl
(Operator Type Library)は、古いバージョンのHoudiniでこのようなファイルに使われていた拡張子で、引き続き使用可能です。この拡張子のファイルがまだパスに含まれている場合があります。新しい“正式”な拡張子は、.hda
(Houdini Digital Asset)です。下位互換性のため、.otl
ファイルは引き続きHoudiniパス上のotls
ディレクトリに格納されます。)
通常は、1つの.hda
ファイルに1つのアセットを格納することをお勧めします。
こうすると、柔軟性が最大限に生かされ、特定のアセットのみをインストールできます。
また、どのアセットがパス上のどのファイルによってインストールされるのかも把握しやすくなります。
とはいえ、.hda
ファイルに含めることができるアセットの数に制限はありません。
これは、スタジオやプロジェクトに必要なすべてのアセットのライブラリを1つのファイルとして共有できるので便利です。
展開されたディレクトリ ¶
.hda
はバイナリフォーマットなので(.zip
のような標準的なフォーマットではありません)、ファイルを見るだけではコンテンツに関する情報を得ることはできません。
このユーティリティを使用すると、アーカイブファイルから情報を引き出して、扱いやすい形にすることができます。
.hda
ファイルからメタデータをプリントしたり、既存のライブラリをマージしたり、.hda
ファイルを“展開された”ディレクトリ形式に変換することができます。
“展開された”アセットライブラリには、ライブラリ自身のメタデータを格納したファイルと、ライブラリのアセット毎のサブディレクトリが含まれます。 サブディレクトリには、アセットのメタデータ、ノード定義、セクション(“Extra Files”)のコンテンツを格納したファイルが含まれます。
ディレクトリがHOUDINI_PATH/otls
にあり、拡張子が.hda
または.otl
である場合は、展開されたディレクトリから直接Houdiniにアセットをインストールすることができます(.hda
ファイルに再変換する必要はありません)。
展開されたディレクトリ形式は、以下の点で便利です:
-
バージョン管理システムにアセット定義を保存することができます。ライブラリのコンテンツの大半はプレーンテキストに展開されるため、バージョン管理システムはアセットに対する変更を比較し、差異を示すことができます。
-
アセットへの変更をバッチ処理/スクリプト化することができます。
例えば、スタジオは次のようなカスタムアセットワークフローを実装することができます:
-
アセット作成者は、展開された形式でアセットを保存します。その展開されたアセットは、バージョン管理システムによって追跡されます。
-
テストスクリプトは、Houdiniを実行する必要なく、展開されたファイルを調べて、保存済みのアセットのコンテンツをチェックすることができます。
-
スクリプトで
-m
または-M
オプションを使用して、展開されたすべての“ソース”アセットをマージすれば、スタジオのカスタムアセットをすべて含む.hda
ファイルをユーザと共有することができます。
Tipsとメモ ¶
-
展開/折り畳みは、 最初は ディレクトリ、 その次に
.hda
ファイルという順番で 常に 行なわれます。通常想定される順番とは逆なので注意してください。 -
Houdiniの Asset Manager ユーザインタフェースを使用すると、ライブラリをマージしたり、
.hda
ファイルをアンパックされたディレクトリに変換したり、アンパックされたディレクトリを.hda
ファイルに変換することもできます。Houdiniのメインメニューで、 Assets ▸ Asset Manager を選択します。 インストールされたライブラリのリストでアセットライブラリを右クリックし、 Convert to Unpacked Format (または Convert to Packed Format )を選択します。
すると、ファイル/ディレクトリが“その場”で変換されます(つまり、ファイルは同じ名前の展開されたディレクトリに置き換えられ、ディレクトリは拡張子が
.hda
のファイルに置き換えられます)。 -
バイナリのノード定義コンテンツの扱い方は、3つの展開オプション(
-x
、-X
または-t
)によって変えることができます。展開されたディレクトリを“折り畳んで”ファイルに戻すには、それに対応するオプション(それぞれ-c
、-C
または-l
)を使用する必要があります。特定のディレクトリがどのように展開されたか分からない場合は、2つのファイルの有無を確認します。
-
サブディレクトリに
Contents.gz
が含まれる場合、ディレクトリは-x
を使って展開されているため、-c
で折り畳むことができます。 -
サブディレクトリに
Contents.mime
が含まれる場合、ディレクトリは-t
を使って展開されているため、-l
で折り畳むことができます。 -
それ以外の場合は、ディレクトリは
-X
を使って展開されているため、-C
で折り畳むことができます。
-
一般的な引数 ¶
-h
ヘルプ情報をプリントします。
-a
.hda
ファイルを書き出すオプションと一緒に使用すると、ファイルの Author フィールドのコンテンツが設定されます。この引数を指定しない場合、コマンドはユーザ名を使用します。
情報をプリントする方法 ¶
hotl [-B|-V] testgeo.hda
ライブラリ(出力では“オペレータ”と呼びます)内のノードタイプに関するメタデータをプリントします。例:
Operator type library: testgeo.hda Operator: mygeo Label: My Geo Path: oplib:/Object/mygeo?Object/mygeo Icon: OBJ_geo Table: Object License: Extra: User: Inputs: 0 to 0 Subnet: false Python: false Empty: false Modified: Mon Jul 12 13:21:01 2021
ファイルに複数のノードタイプが含まれている場合は、各ノードタイプのフィールドを空白行で分けてプリントされます。
次のオプションを使用すると、出力を変更することができます:
-B
各アセットのメタデータの代わりに、各ノードタイプのフルネームのみをプリントします。
例:
Object/mygeo Object/testgeo
これは、テストスクリプトやアセット管理システムなどにおいて、Houdiniを実行する必要なくファイル内の利用可能なアセットをすべてリストしたい場合に便利です。
-V
各アセットのメタデータのプリントの一部として、アセットに関連付けられたセクション(Extra Files)の名前をプリントします。例:
Operator type library: testgeo.hda Operator: mygeo Label: My Geo Path: oplib:/Object/mygeo?Object/mygeo Icon: OBJ_geo Table: Object License: Extra: User: Inputs: 0 to 0 Subnet: false Python: false Empty: false Modified: Mon Jul 12 13:21:01 2021 Sections: DialogScript CreateScript TypePropertiesOptions Help Tools.shelf ExtraFileOptions InternalFileOptions Contents.gz
これは、特定のセクションを持つ(または持たない)アセットを見つけたい場合に便利です。
.hda
ファイルをファイルのディレクトリに変換する
¶
hotl -x|-X|-t directory hdafile
hdafileのコンテンツを、directory下のファイルツリーに展開します。
色々なオプションを使用して、どのようにノード定義を展開するかを制御します。
-x
各アセットのメタデータとセクションを個々のサブディレクトリに展開しますが、ノード定義データは展開 しません 。
ノード定義データは、各アセットのサブディレクトリにある圧縮されたContents.gz
ファイルに保持されます。
-X
各アセットのメタデータとセクションを個々のサブディレクトリに展開します。
また 、ノード定義ファイルはContents.gz
アーカイブに残すのではなく、Contents.dir
サブディレクトリに解凍します。
このオプションは、次の-t
とは対照的に、ノード定義のバイナリセクションを個々のファイルに保存します。
-t
各アセットのメタデータとセクションを個々のサブディレクトリに展開します。
また 、ノード定義ファイルをContents.dir
サブディレクトリに展開します。
このオプションは、ノード定義のバイナリセクションを、単一のMIMEエンコードされたContents.mime
ファイルに保存します。
Tip
このオプションは、バージョン管理システム(SubversionやGitなど)にアセットライブラリを格納する場合に適しています。
-X
によって作成された未加工のノード定義ファイルは、テキストのように見えるものの実際は任意のバイナリデータを含んでいるため、バージョン管理システムが混乱する可能性があります。
-t
を使用する場合は、追加のオプションを使用することができます:
-p
MIMEファイルの各セクションのタイムスタンプを含めます(.hda
ファイル内に保存されます)。
展開されたディレクトリを.hda
ファイルに戻す
¶
hotl -C|-C|-l [-b] directory hdafile
directory下のファイルを新しいアーカイブhdafileに統合します。
ディレクトリを折り畳む各オプションは、どのようにディレクトリを展開したかに合わせて選択します(上記参照)。
-c
-x
の反対。各アセットのサブディレクトリでContents.gz
ファイルを探し、それをノード定義として使用します。
-C
-X
の反対。各アセットのサブディレクトリのContents.dir
ディレクトリで個々のファイルを探し、それらをノード定義に統合します。
-l
-t
の反対。バイナリセクションを含むContents.mime
ファイルを格納したContents.dir
ディレクトリで、個々のファイルを探します。
ディレクトリをファイルに折り畳む時は、次のオプションも使用することができます:
-b
出力される.hda
ファイルのバックアップコピーを作成します。
アセットライブラリをマージする ¶
hotl <-m|-M> [-e] source_hda... dest_hda
1つまたは複数の“ソース”ライブラリのコンテンツを“保存先”のライブラリにコピーします。各“ライブラリ”は、.hda
ファイルまたは展開されたディレクトリとなります。
色々なオプションを使用して、同じ名前のノードタイプをどのようにマージするかを制御します:
-m
名前が重複しているノードタイプを保持します。 Houdiniにインストールするときは、Houdiniのアセット名解決ルールに基づいて、ノードタイプの1つがもう片方を上書きします。
-M
後の“ソース”ファイルのノードタイプ定義が、同じ名前を持つ、それより前のソースファイルのノードタイプを上書きします。
次のオプションも使用することができます:
-e
空のシェルフツールのセクションを上書きしません。
--chmod arg
マージ後に、宛先ファイルのファイル権限を変更します(UNIX)。