On this page | |
Since | 17.0 |
概要 ¶
このノードは、Attribute VOP SOPと同様です。
このノードには、選択したUSD Prims上にアトリビュートを作成/編集するネットワークを構築する際に使用可能なVOPサブネットが含まれています。
VOPネットワークを構築する方法 ¶
-
このVOPサブネット内のUSD Globalsノードには、ビルトイン変数が用意されています。
elemnum
は、 Primitives から選択されたPrimsのリスト内の現行Primのインデックスで、numelem
は、選択されたPrimsの総数です(これらの変数の意味は、 Run on Elements of Array Attributes が有効な時で異なります)。primpath
は、現行Primのシーングラフパスです。 -
アトリビュート(例えば、
radius
やprimvars:displayColor
)をバインドするには、Parameter VOPを作成し、 Name パラメータにUSDアトリビュートの名前を設定します。 アトリビュートに書き出したい場合は、このParameter VOPの Export パラメータを“Always”に設定し、値をその入力に接続します。
Tips ¶
-
このノードは、Prim毎にネットワークを実行したり、各Prim上の各配列アトリビュート内のエレメント毎にネットワークを実行することができます。 Run On Elements of Array Attributes パラメータを参照してください。
-
単純な変更であれば、通常ではVOPネットワークをセットアップするよりもAttribute Wrangle LOP内にVEXスニペットを記述する方が簡単です。
-
通常では、このノードのCVEX VOPサブネット内でVOPネットワークをセットアップします。 しかし、熟練ユーザーは、代わりにCVEXを生成する何か他のノードを指定したり、
cvex
コンテキスト関数を含んだディスク上のコンパイル済み.vex
ファイルを指定することができます。 -
このノードのサンプリング系パラメータを使用する場合、アトリビュートの設定は最初のサンプルが評価された後にのみUSDステージに適用されることに注意してください。プリミティブの作成またはメタデータの設定(メタデータは時間の経過と共に変化することはできません)といった他のオペレーションは、最初のサンプルに対してのみ実行されます。
-
複数サンプルをクックするには、他のノードを何回もクックする必要が出てきます。例えば、VEXコードがSOPネットワークを参照していた場合、そのSOPネットワークはタイムサンプル毎にクックされます。このノードの入力に接続されているLOPノードが時間依存だった場合、この入力ノードもこのノードのタイムサンプル毎に再クックされます。
パラメータ ¶
Sampling Behavior
このノードがクックされると、現行時間にただ1個のUSDタイムサンプルを生成するのではなく、たくさんのUSDタイムサンプルを生成することができます。 これは、このノードの後にCache LOPを接続することと同様ですが、こちらの方が非常に高速に評価され、他のノードからのデータをキャッシュ化しません。 これによって、以降のすべてのノードも時間依存にしてしまうノード時間依存を導入することなく、アニメーションデータをUSDで作成することができます。 その結果、一部のLOPネットワークの再生パフォーマンスを大幅に向上させることができます。
どのサンプリングモードでも、このノードのパラメータが時間と共に可変しない、且つ、ステージ上の他のタイムサンプルデータに依存していない場合、 呼応するアトリビュートに対して単一デフォルト値のみがUSD内で生成されます。 時間と共に可変するパラメータに対してのみUSDタイムサンプルが生成されます。
Sample Current Frame
現行時間に対して単一タイムサンプルが作成されます。
Sample Frame Range If Input Is Not Time Dependent
このノードの入力が時間依存の場合、このノードは、Sample Current Frame
モードと同様の挙動をします。
そうでない場合、このノードは、Sample Frame Range
モードと同様の挙動をします。
Sample Frame Range
Start/End/Inc パラメータを使用して、このノードのパラメータが評価される時間に対して複数の時間を生成し、それらの各時間においてアトリビュート毎にUSDタイムサンプルが作成されます。
Start/End/Inc
Sampling Behavior がSample Frame Range
の場合、このパラメータは、このノードで生成されるベースタイムサンプルの数と間隔を制御します。
このパラメータのデフォルト値は、@fstart
、@fend
、@finc
です。
これらの値は、Houdiniを操作する時のグローバルHoudiniアニメーション設定の開始フレーム、終了フレーム、ステップサイズに相当します。
ROPノードを使用してフレーム範囲を生成した場合、これらの値は、実行したそのROPノードで指定された開始フレーム、終了フレーム、ステップサイズに相当します。
このデフォルトは、ディスクに書き出されるUSDファイルに、(Houdiniアニメーション設定に関係なく)ROPで指定されたフレーム範囲ちょうどのタイムサンプルを含めます。
Subframe Sampling
このノードで生成されたプライマリサンプル毎に、これらのパラメータは、そのプライマリサンプル時間付近に追加でサンプルを生成させることができます。 これは、プライマリサンプル時間だけでなく、カメラシャッターの開閉時間ちょうどにも正確なデータが存在することを保証するために非常によく使用します。
Shutter
プライマリサンプル時間を基準にシャッターの開閉時間を指定するのに使用されるメソッドを制御します。
Specify Manually
Shutter Open/Close パラメータの値で、プライマリサンプル時間を基準とした正確なオフセット値を指定します。
Use Camera Prim
Camera Prim パラメータで、シャッターの開閉時間が抽出されるカメラPrimのシーングラフパスを指定することで、プライマリサンプル時間を基準としたオフセット値を指定します。
Shutter Open/Close
Shutter モードがSpecify Manually
の場合、ここの2つのオフセット値がプライマリサンプル時間に追加され、シャッターの開閉時間が指定されます。
シャッターの開時間は0以下に、閉時間は0以上に設定してください。
Camera Prim
入力ノードのステージ上のカメラPrimのシーングラフパス。 このPrimからShutter Open/Closeのアトリビュート値が読み込まれます。
Samples
プライマリサンプル毎に作成するサブフレームサンプルの数。 これらのサンプルは、シャッターの開時間から閉時間の間で均等に分布します。 このような均等な分布は、ちょうどプライマリサンプル時間にサンプルが作成される場合と作成されない場合があることに注意してください。
Always Include Frame Sample
このオプションを有効にすると、ちょうどプライマリサンプル時間にサンプルを作成させることができます。 シャッター開時間とシャッター閉時間のどちらの Samples 値も既にプライマリサンプル時間でサンプルが配置されている場合、このオプションを有効にしても何の効果もありません。 そうでない場合、このオプションによって、追加でサンプルが作成されます。 つまり、プライマリサンプルあたりの実際のサンプル数は、 Samples で指定されたサンプル数よりも多くなる可能性があります。
Primitives
このノードを動作させるPrim(s)。
Scene Graph Tree ペインからPrim(s)をこのテキストボックスにドラッグすることで、それらのパスを追加することができます。
または、このテキストボックスの隣にある 再選択ボタンをクリックすることで、ビューア内でPrim(s)を選択することができます。
他にも、この再選択ボタンを⌃ Ctrlクリックすることで、ポップアップツリーウィンドウからPrim(s)を選択することができます。
コレクション内のすべてのPrimsのマッチング(/path/to/prim.collection:name
)といった高度なマッチングには、プリミティブパターンを使用すると良いでしょう。
Allow Instance Proxy Primitives
これを有効にすると、 Primitives パラメータ内のパターンを、インスタンスプロキシPrims(インスタンス化可能とマークされたPrimのインスタンス親Prims)にマッチさせることができるようになります。 インスタンスプロキシPrimsはUSD内で直接編集することができないので、主にこのモードは、VEXコードがインスタンスプロキシPrimsからデータを引き出して、値を何かしらの非インスタンス親Primに適用できるようにするために使用します。
Run On Elements of Array Attributes
これを有効にすると、このノードは、各Prim上の配列アトリビュートの 配列エレメント毎に VOPネットワークを評価します。
このモードでは、ビルトインのelemnum
は、配列インデックスを参照し、numelem
は、 一番大きい 配列の長さを参照します。
(これが無効な時、配列アトリビュートは、ネットワーク内では配列タイプの変数として利用可能です。)
一部の配列アトリビュートの長さが他よりも短い場合、それらのエレメントは、最後のエレメントで埋められます。
このモードは、points
などのジオメトリ関連のアトリビュートに対して実行する際に役立ちます。
Vex Setup ¶
Vex Source
実行するVEXを取得する場所。 他のオプションを選択する合理的な理由がない限りは、通常では、これを“Myself”のままに設定して、このノードの中でVOPネットワークを構築します。
Myself
このノードの中のCVEX VOPネットワークを使用します。
Other Node
VEXコードを生成する他のノードを指定します。
Script
ディスク上のコンパイル済み.vex
ファイルを指定します。
Node Path
Vex Source が“Other Node”の時、VEXコードを生成するノードのノードパスを指定します。
Script
Vex Source が“Script”の時、コンパイル済み.vex
ファイルのファイルパスを指定します。
Re-load VEX Functions
Vex Source が“Script”の時、このボタンをクリックすると、強制的にディスク上のすべての.vex
ファイルがリロードされます。
Compiler
このノードの中のVOPネットワークをコンパイルする際に使用するVEXコンパイラコマンド。 本当にコンパイラコマンドを変更しなければならない理由がない限りは、これを変更しないでください。
Force Compile
子VOPsから生成されたキャッシュ化済みVEXコードをクリアして、強制的に再度コードを生成してコンパイルします。 通常では、このノードは、ネットワークが変更される度に自動的に再コンパイルされますが、これは問題をデバッグする時に役立ちます。
Evaluation Node Path
ch()
などの特定のVEX関数は、このノード上のパラメータを評価します。
一部の場合において、これらの関数を別のノードを基準にして評価させたい時があります(例えば、デジタルアセット内のノードを使って、親アセットを基準に関数を評価したいことが多いです)。
これは、プログラム内の“現行ノード”として使用するノードの相対ノードパスです。
Attribute Bindings ¶
Autobind by Name
Number of Bindings
VEX変数にバインドするUSDアトリビュートの数。
Attribute Type
アトリビュートのUSDデータタイプ。
通常では、これをAuto
のままに設定します。すると、このノードは既存アトリビュートの既知タイプを使用します。
アトリビュートを作成する際に、このノードがそのVEXタイプを正しいUSDタイプに変換しなかった場合(例えば、token
が欲しいのにstring
になってしまった場合)、その欲しいタイプをここで変更することができます。
VEX Parameter
アトリビュートにバインドさせるVEXパラメータの名前。