Houdini – Networkノードの使い方考察

Network系ノードの取り扱い

各種チュートリアルを見ていると、objツリーにいきなりPOP NetworkノードなどのNetworkノードを作成して作業を進める例が多いことに気づいた。
しかし、それではノード管理が難しくなりそうに思えた。

そこで、各種コンテキスト内に適したNetworkノードを作成し、必要に応じて別のコンテキストから呼び出すような作り方を試してみることにする。

Network系ノードを使うのはどんな時か?

パーティクルの挙動を一つのノード内で管理する場合などはPOP Networkノードを作成する。

同様に、画像のコンポジットを行うときはImage Networkノードを使用する。

このように、各種コンテキストに特化した処理をパックするために使用する。

共通ルール

各種Network系ノードは、能動的にNetworkノード内からデータを受け取りに行く方法と、受動的に外からデータを受け取る方法があるようだ。

※ただし、Networkのタイプによってはどちらかしか出来ない場合もある。

・能動的にデータを受け取りに行くケース

Network内にデータの入口となるノードを作成し、入力したいノードのパスを指定するパラメータを使用して直接データを受け取る方法

例:SOP Networkの Object Mergeノード

・受動的にデータを受け取るケース

データを受け取りたいNetworkノード外でデータ出力用ノードを作成し、出力先のノードパスを、受け取りたいNetworkノードのものに指定する。

例:POP Networkへの出力 POP Mergeノードと、POP Network内のSourceノード

SOP Network

オブジェクトの変形や参照など、Geometryに対する様々な処理をパックするのに使う。

外部からオブジェクトを受け取る場合は、Object Mergeノードを作成して、Objectパラメータにより受け取りたいオブジェクトのパスを指定する。

受け取ったあとは、通常通り各種ノードによる処理が行える。

POP Network

パーティクルの挙動をパックする。

1 事前にPOP Networkノードをpartコンテキスト内に作成する。

2 POP Mergeノードを作成し、POP PathパラメータでそのPOP Mergeノードから参照したいPOP Networkノードを指定すると、POP Mergeノードは、指定したパスのPOP Networkノードそのもののように動作するようになる。

3 POP Mergeに、いつもPOP Networkノードに接続していたようにオブジェクトなどをコネクトする。

4 指定されたPOP Networkノード内にSourceノードを作成し、Geometry Sourceパラメータを任意のものに指定すると、POP Mergeノードが受け取ったとおりのデータを使用して、POP Networkを使用できる。

CHOP Network

各種チャンネル処理をパックする。

1 CHOP Networkノードを作成する。

2 Channnelノードを作成し、CHOPパラメータに、使用したいCHOP Networkノードのパスを入れる。

3 CHOP Networkノードの中に、GeometryやFetchなどのノードを作成し、各ノードパスを指定するパラメータを使用して任意のノードを入力する。

上記のようなパターンで、実際に処理を行う各種ネットワークノードを孤立させ、任意の場所・タイミングで呼び出すことができるようだ。
VOP Network
VOP Networkは、入力されたデータから、内部に用意されたGlobal Variablesノードのタイプに応じた入力値を使用して処理を行う。
外部から呼び出す際は、VOP SOPノードからVOP Networkのパスを指定する。
例外のネットワーク
SHOP Networkは、マテリアルの作成のみを受け持つので、直接外部からオブジェクトを読み込んで何かするためのノードが用意されていないようだ。

コメントを残す