Houdiniノード勉強回。サンプルファイル->WedgeTOP_Sample.hiplc
Houdini17.5から追加されたPDG。タスク管理やディペンデンシーを管理する機能です。
まだ私もあまり、使いこなせてないのでメモも兼ねて書いてきます。
Wedge(TOP)は、パターン出しとかをTOPで制御するときに使うやつで、Wedge(ROP)のTOP版。
以下、使用例。Pyroのシミュレーション違いを5パターン、ローカルで作ってみます。こんな感じ。
最初に、Wedgeの対象にTab Menuから”Pyro Configure Billowy Smoke”を作っておきます。
キャッシュ保存用のFileCache(SOP)と、参照用のNullもついでに。
Step1:”TOP Network”に切り替えます
/tasksに移動すると、topnet1ノードがあるのでその中に入ります。自分でTOP Networkノード作ってもOK
Step2:Wedge(TOP)を作る
Tab MenuからWedge(TOP)を作ります。
ノード作っただけでは機能しません。設定とタスク作成が必要です。
Step3:パラメータ設定
パラメータの設定をします。細かいところはマニュアル参照として、大事なところだけ。
- Wedge Count・・・作りたいパータンの数。
- Wedge Attributes・・・バリエーションを作りたいアトリビュート。+ボタンを押したりして、作りたい分のアトリビュートを作成します。
ひとまず今回は、こんな感じに設定しました。
Step4:タスクを作成する
Wedge(TOP)を選択して、Shift+Gキーを押します。
図のように、緑の●が5つノードに追加されます。Step3で、Wedge Countを5に設定したので、5つタスクが作られました。
ちなみに、この●を中クリックするとタスクの情報が見られます。
wOffsetというアトリビュートとその値が確認できました。
Step5:対象先パラメータを設定
バリエーションを作りたいパラメータにエクスプレッションを記述します。
Step3で作成したアトリビュート名を@を付けて記述します。通常のアトリビュート参照と同じですね。
この方法で作ったWedge変数は、特に指定しなくともエクスプレッションでの記述に使えて便利です。
これで、Wedge(TOP)のタスクごとに、異なる値が設定されます。
うまく設定されると、上図のように、Wedge(TOP)のタスクを切り替えることで、数値も変わるはず。
Step6:キャッシュを保存する
シミュレーションキャッシュを保存します。
TOPネットワークに移動し、ROP Geometry Output ROP(TOP)を作成します。
マニュアル曰く、このノードはROP Fetch(TOP)とGeometry(ROP)で作られた複合ノードだそうですが、出力用TOPノードという認識で間違いないはず。
パラメータを設定します。
パラメータSOPには、キャッシュを取りたい場所のノードを指定。
OutputFileで出力先を設定する際、@wedgeindexと記述しておくと各Wedgeの通し番号がつきます。
あとはシミュレーションなので、Initialize Simuation OPsを有効のしてます。
結果確認用に、SOP側にFileCache作って、出力先をリンクしておきます。
ROP Fetchタブでタスクの設定をします。
All Frame in One Batchを有効にしておきます。シミュレーションの場合はONです。
Step7:TOPネットワークを繋ぐ
Wedge(TOP)とROP Geometry Output(TOP)を繋ぎます。
ついでにPartition by Attribute(TOP)を作成して、ネットワークの一番下につなげます。
Partition by Attribute(TOP)の設定は下図の感じで。上流で沢山できたタスクをネットワークまとめる設定です。
Step8:Cook
一番下の、Partition by Attribute(TOP)の選択して、Shift+G。
もしくは、メニュー[Task]->[Cook Selected Node]
これで、上流からドンドン処理が実行されます。
処理が最後まで行けば完了。
WedgeかPartition by Attributeのタスクをポチポチやって、結果を確認します。
以上!間違ってたら、だれか教えて!
サンプルファイル->WedgeTOP_Sample.hiplc
(Houdini18.0.416)
コメント