On this page | |
Since | 18.0 |
概要 ¶
このノードは、VEXプログラムを評価することで、1つ以上のジオメトリサブセットの内容を指定することができます。 このノード上でVEXpressionを記述したり、このノードの中のVOPサブネット内でVOPネットワークを構築することができます。
このノードでは、サブネット内でネットワークが取り込むジオメトリの指定方法が2つ用意されています。 以下の Mode パラメータのヘルプを参照してください。
Tips ¶
-
このノードの中のVOPサブネットを使用する場合、ネットワークの最後に“return”値を表現したParameter VOPを作成してください。 そのParameter VOPの Export パラメータを“Always”に設定し、残りのネットワークをその入力に接続します。
-
通常では、VEXpressionを記述したり、このノードのCVEX VOPサブネットの中でVOPネットワークをセットアップします。 しかし、上級ユーザーならば、代わりにCVEXを生成する他の何かのノードまたは
cvex
コンテキスト関数を含んだディスク上のコンパイル済み.vex
ファイルを指定することができます。 -
VEXpressionを使用する場合、 Mode が“Partition”なら VEXpression Returns a String を有効にし、 Mode が“Selection”なら無効にしてください。
-
VEXスニペットでは、コロン(
:
)を含んだ@
変数名を使用することができます。これによって、特定のUSDアトリビュート名(例えば、i@primvars:foo
)を自動的にバインドするのが簡単になります(通常、このような名前はVEXソースコード内では有効ではありません。このような名前がスニペット内で使用されると、このノードが自動的にその名前をエンコードします)。
パラメータ ¶
Primitives
このノードを動作させるPrim(s)。
Scene Graph Tree ペインからPrim(s)をこのテキストボックスにドラッグすることで、それらのパスを追加することができます。
または、このテキストボックスの隣にある 再選択ボタンをクリックすることで、ビューア内でPrim(s)を選択することができます。
他にも、この再選択ボタンを⌃ Ctrlクリックすることで、ポップアップツリーウィンドウからPrim(s)を選択することができます。
コレクション内のすべてのPrimsのマッチング(/path/to/prim.collection:name
)といった高度なマッチングには、プリミティブパターンを使用すると良いでしょう。
Mode
VEXプログラムにサブセットの内容を指定する方法。
Selection
ポリゴンフェース毎にネットワークを評価します。
ネットワークは整数を出力するようにしてください。
ネットワーク出力が1
(実際にはゼロ以外)の場合、そのフェースはサブネットに包含されます。
ネットワーク出力が0
の場合、そのフェースはサブネットから除外されます。
(このメソッドは、一度に一個のサブセットのみ作成することができます。)
Partition
ポリゴンフェース毎にネットワークを評価します。 ネットワークは(現行フェースの格納先となるサブネットの名前を含んだ)文字列を出力するようにしてください。
(このメソッドは、重複していないサブセットのみを作成することができます。)
Subset Name
Mode が“Selection”の時、ここには、作成/編集するサブセットの名前を設定します。 Mode が“Partition”の時、ここに文字列を指定すると、VEXプログラムで生成されたすべてのサブセット名の頭にこの文字列が付きます。
Family Name
作成されるジオメトリサブセットのファミリーネームを指定します。
USDでは、ジオメトリPrimは、複数の関連サブセットを持つことができます。 これは、サブセットファミリーネームによって示します。 つまり、同じファミリーネームのサブセットが関連サブセットとして扱われ、親ジオメトリPrimのメンバーシップの交差や和などの特性でそれらのサブセットを検証することができます。
Family Type
作成されたサブセットが属するファミリーの範囲を指定します:
-
Unrestricted - サブセット内のエレメントのメンバーシップに制限を設けません。
-
Non-Overlapping - サブセットがお互いに交差しません。つまり、あるサブセット内で現れるエレメントは、同じファミリーに属した他のサブセット内に現れないようにすることができます。
-
Partition - サブセットはお互いに交差せず、それらのサブセットの和が親Prim全体を占めます。つまり、ジオメトリ全体のすべての要素は、同じファミリーに属するサブセットのうちどれか1つのサブセットに1回だけ現れます。
VEX Setup ¶
Vex Source
実行するVEXの取得先。 他のオプションを選択する正当な理由がない限りは、通常では、この設定を“Myself”のままにして、このノードの中でVOPネットワークを構築します。
Myself
このノードの中のCVEX VOPネットワークを使用します。
Other Node
VEXコードを生成する他のノードを指定します。
Script
ディスク上のコンパイル済みの.vex
ファイルを指定します。
VEXpression
パラメータ内にVEXエクスプレッションを記述します。
Node Path
Vex Source が“Other Node”の時、VEXコードを生成するノードのノードパスを指定します。
Script
Vex Source が“Script”の時、コンパイル済み.vex
ファイルのファイルパスを指定します。
Vexpression
評価する簡単なVEX。
現行Primのパスは@primpath
として利用可能です。
@name
を使って現行アトリビュート値を読み込むことができます。
これが1行コードの場合、コードの最後のreturn
キーワードとセミコロンを省略することができます。
しかし、2行コードに渡る場合またはステートメントを記述する必要がある場合、return
を使用し、各ステートメントの最後がセミコロンで終わっている必要があります。
例:
i@primvars:foo % 2
vs.
if ( @elemnum % 2 ) { return "odd"; } else { return "even"; }
Vexpression Returns a String
VEXpressionの結果を文字列または整数のどちらで解釈するかを指定します。 Mode が“Partition”の時はこれを有効にし、 Mode が“Selection”の時はこれを無効にしてください。
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パラメータの名前。