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 を受け取ることができるようになりました。
基本的なことはこれでだいたいできそうなので
次はスケジューラーとも絡めてもう少し詳しく調べていこうと思います。