メインコンテンツまでスキップ

HDA Processor を使ってみる

PDG には指定した HDA を実行することができる HDA Processor があります。
スケジューラーの動き方を調べる前に、まずは基本的な使い方を確認していきます。

HDA を用意する

まずはサンプルの HDA を用意します。

Cube 数、保存先、Export ボタンの 3 つのアトリビュートで

CubeNum の数だけ Cube を複製し、ExportPath に USD で出力するというシンプルな HDA です。

HDA Processor を使用する

HDA を実行する場合は HDA Processor を使用します。

使い方は、 実行したい HDA を HDA File に指定し、
(同じ Hip 内に HDA のもとになる Subnet がある場合は Template Node に入れる)

Add HDA Parameters の Update HDA Parameters を押します。

HDA Parameters に、指定した HDA のアトリビュートが出てくるので
ここに実行時のパラメーターを渡します。

ここには、WorkItem のどの値を入れるかを指定するので
今回は、Index 数+1の Cube を作るシーンを、WorkItem 数分作るようにしてみます。
PushButton の処理を実行する場合は、チェックを入れておきます。

GenericGenerator で WorkItem を5個作るようにして、実行してみます。

無事ファイルが出力できました。

WorkItem のパラメーターを確認します。
まず、この HDAProcessor はデフォルトでは Out-Of-Process で実行されます。

Temp ディレクトリを確認すると、このように実行 PC に HDA がコピーされ

必要な Python がコピーされ、hdaprocessor.py 経由で HDA が実行されます。

この辺りは次回あたりに深堀していきます。

AssetOutput

実行はできたのですが、生成されたファイルは Output 扱いではなく単なるアトリビュートになっています。
ですが、生成されたものは次の工程でも使うことがありそうなので
OutputFile として出力しておきたい。
そんな時にそれっぽい「Asset Outputs」というのがあります。

この AssetOutput とは、指定した HDA の Output 結果を bgeo で出力してくれるという機能です。

HDA を少し直して Output につなげておきます。

出力したいファイル名を入れます。

実行すると、output のジオメトリが bgeo で出力されます。

ただし、この場合はかならず bgeo になるので、usd を OutputFiles にはできません。

Attribute Promote

そこで使うのが AttributePromote。
HDA のアトリビュートは、WorkItem のアトリビュートとして保存されているので
exportPath を OutputFiles にしておきます。

これで Output に HDAProcessor で作成した USD を受け取ることができるようになりました。
基本的なことはこれでだいたいできそうなので
次はスケジューラーとも絡めてもう少し詳しく調べていこうと思います。