On this page |
Note
これを進める前に、このワークグローガイドのアニメーションセットアップのページを御覧ください。
アニメーションでのAPEX Add Groom SOPは、フェザーとキャラクタを別々に扱っています。
それがこのノードの大きな強みの1つです。
要するに、1個のノードで完全に異なるジオメトリセットを処理することができます。
ただし、そのノードの出力では両方のストリームがマージされます。
この例では、すべての情報がanimation
ネットワークからのANIM
Null SOP内に格納されています。
分かりやすく整理し、あまり大きなネットワークにならないようにするために、 obj レベルで新しいGeometry OBJ内にレンダリングセットアップを作成することにします。
そこでは、ストリームを分離し、Houdini Procedural: Feather LOP向けに必要なすべてのものを準備することができます。
以下がレンダリングセットアップのプレビューです。

インポート ¶
アニメーションセットアップと同様に、シーンをレンダリングする準備をするためには、グルームとフェザーも必要です。
-
obj レベルに進んで、Geometry OBJを追加します。その名前を例えば
render_setup
に変更します。このノードをダブルクリックして中に入ります。 -
このノードの中では、
Object Merge SOPを作成し、その名前を例えば
IN_ANIM
に変更します。 -
Object 1 の隣りにある
Open floating operator chooser ボタンをクリックします。ツリーメニューを使用して
animation
ネットワーク内のANIM
Null SOPを選択し、 Accept をクリックしてその選択を確定します。 -
さらにもう1個のObject Merge SOPを作成し、その名前を
IN_GROOM
に変更します。このノードでは、アニメーションセットアップで処理される前の元のフェザーを取り込みます。再び、 Open floating operator chooser を使用してgroom
ネットワーク内のGROOM
Null SOPを選択し、 Accept をクリックしてその選択を確定します。
IN_ANIM
Object Merge SOPからのストリームは、リギングに関するある程度の知識が必要なので、特に初心者には躓きやすいです。
最初に注目すべき事は、このストリームには静止(Rest)状態とアニメーション状態が含まれていることです。
どちらの状態もHoudini Procedural: Feather LOPで必要なので、これらの状態を分離させる必要があります。
IN_ANIM: 静止(Rest) ¶
このサンプルのキャラクタリグはパック化されていて、IN_ANIM
ノードの Node Info フラグをクリックすると、それを確認することができます。
ここでの作業は、その情報をアンパックして、再び個々のパーツにアクセスすることです。
-
Unpack Folder SOPを追加し、その入力を
IN_ANIM
ノードの出力に接続します。このノードには、 Exact Pattern パラメータがあり、アニメーションストリームのどのパーツを使用するのかを指定します。 ここで指定するパターンは、リグツリーのパスです。
-
IN_ANIM
ノードを選択し、Rig Treeペインを開くと、そのノードの内容が表示されます。必要なものを理解するために、静止ストリームとアニメーションストリームで処理するデータの種類( サーフェス に変換されたフェザー)を知っておく必要があります。このシーンでは、 サーフェス を持っている唯一のエントリーが
/toucan.char/GroomSurfaces.shp
です。 これがUnpack SOPの Exact Pattern 入力フィールドに入力しなければならないパスです。 -
Name SOPを追加し、その入力をそのUnpack SOPの出力に接続します。
-
Name に
deformer_rest
を設定します。この名前は、SolarisのScene Graph Treeに表示されます。 -
Null SOPを配置し、その入力をそのName SOPの出力に接続します。
-
そのNull SOPの名前を
RENDER_DEFORMER_REST
に変更します。
IN_ANIM: アニメーション ¶
このストリームには、フェザーのアニメーション状態が含まれており、静止状態と同様に、IN_ANIM
ノードの他の内容から適切なデータを分離させる必要があります。
-
APEX Scene Invoke SOPを配置し、その 1番目 の入力を
IN_ANIM
ノードの出力に接続します。このノードは、アニメーションするフェザーの実際の動きを表示します。静止ストリームでのUnpack SOPと同様に、 Scene Output Path と Key にもパスを定義する必要があります。 このノードには、適切なパスが選択できるようにドロップダウンメニューが用意されています。 どのエントリーを選択すべきなのかわからないようであれば、 Output All Character Shapes を試してください。
このボタンは、すべての適切なエントリーを収集し、ここでも
GroomSurfaces.shp
のパスとキーの組み合わせを選択する必要があります。 これらのエントリーをメモしてください。 また、 Bind Multiple Outputs トグルが有効になっていることも分かります。 残念ながら、このモードはセットアップを複雑にしてしまうので、この手順を元に戻したほうが良い場合があります。 -
Bind Multiple Outputs を無効にして単一出力に戻します。
-
Scene Output Path に進み、そのドロップダウンメニューを開きます。そこから
/toucan.char/Base.rig/output
を選択します。 -
Key ドロップダウンメニューから
GroomSurfaces.shp
を選択します。
上記と同様に、Name SOPを追加して接続します。
Name パラメータをdeformer_animation
に設定します。
さらにNull SOPを追加してネットワークブランチを終了します。
このNull SOPの名前をRENDER_DEFORMER_ANIM
に変更します。
GROOM ¶
IN_GROOM
ストリームには、フェザリング全体の形状を表現したフェザーのカーブが含まれています。
ここでは、静止状態からの変形をPointアトリビュートとしてグルームカーブに転送します。
-
Feather Deform SOPを配置し、その 1番目 の入力を
IN_GROOM
ノードの出力に接続します。その 4番目 の入力は、Unpack SOPの出力に接続します。 -
animation
ネットワークでは、ポリゴンサーフェスを扱ってきました。そのため、 Deformer Type を Surfaces に設定します。 -
Mode ドロップダウンメニューを開きます。ここでは、実際の変形を行なわずに情報だけを転送したいので、 Capture を選択します。
上記のストリームと同様に、さらにName SOPを追加して接続します。
次に、 Name パラメータをgroom
に設定します。
さらにNull SOPを追加してネットワークブランチを終了します。このNull SOPの名前をRENDER_GROOM
に変更します。
最後に ¶
これで、APEX Add Groom SOPからのストリームが静止状態とアニメーション状態に分割されました。 また、元のグルームが静止状態によって変形されています。
次の手順では、3個のすべてのNullをSolarisに取り込んで、それらをレンダリングするためにHoudini Procedural: Feather LOPに送ります。