はじめに
とりあえず、関連するノードはつっこんじゃえ!って感じの、Mergeノード的なDigital Assetを作りたかった。
しかしながら、やり方がわからなかったので調査した。
資料 => Unlimited inputs - Houdini Digital Asset
こういうのを作りたい。
Houdini 17.5.258
統合マルチインプットの作り方
[1] 通常通り、Digital Assetを作成する。
[2] Inputを999などといった巨大な数字にする。(実際は30以上でもMergeノードの様な単一に見えるような感じになる)
マルチインプットを統合アウトプットする
Inputの数がダイナミックな増え方になるので、まともにSubnetデフォルトのINPUTノードは使えない。
なので、回避策を使う。
[2] Block End SOPのIteration Methodを By Count
、Gather Methodを Merge Each Iteration
に設定する。
[3] Block End SOPのIterationsには次のスクリプトを入力する。
これで入力数がダイナミックに入る様になる。
opninputs('../')
[4] Object Merge SOPのObject1には次のスクリプトを入力する。
これでFor Eachのイテレーションごとに入力が切り替わる。
`opinputpath('..',detail('../foreach_count1','iteration',0))`
[5] 結果をアウトプットする
まとめ
この手法を使うことで、ひたすら大量にINPUTにつないだものをスクリプト側で処理したりといった仕組みを組める。(「限界x個までしか繋げない」とか意識しなくていい)
Merge SOPよりもより柔軟にINPUTを吸収できるということで、結構色んな所に使えそう。
ただ、3個くらい繋いでおいて、後から2個目のもののノードの接続を切ってみると、2個目のものが空のまま残ってしまうといったこともあったので、ここは何かしらの対応が必要っぽい。良い案あったら教えてください。