On this page |
概要
これは非常に強力な低レベルにアクセス可能なノードであり、VEXに詳しい熟練者が、コードを使ってアトリビュートを調整することができます。
このノードは、Geometry VOP DOPに相当しますが、VOPネットワークの代わりにテキストのVEXスニペットを使用します。
Warning
このノードを扱うには、VEX言語を理解している必要があります。 そうでないと、このノードを使えば不正なコードを記述しがちです。
このノードは、入力ジオメトリ内の DetailまたはすべてのPoint/Primitive/Vertex ( Run Over パラメータに依存)に対してスニペットを実行します。 スニペットは、アトリビュートを変更することで、入力ジオメトリを編集することができます。 アトリビュートとVEX関数を使うことで、他のジオメトリの情報にアクセスすることができます。
-
ノードをクリックすると、スニペットからのエラー出力を確認することができます。
-
VEX関数の
ch
を使ってパラメータを評価することができます。 パスは、このノードの相対パスです(ch("parm")
は、このノードのparm
パラメータを評価します)。 この評価は、現行時間で実行されます。 -
Attrib Create SOPとは違い、このノードはローカル変数を使用しません。 さらに、すべてのバッククォートによるエクスプレッションと
$F
変数は、現行時間ではなく、フレーム1で評価されます。 代わりに@Frame
、@Time
、@TimeInc
を使ってください。
Context
パラメータ
Code
Group
プログラムの実行を適用する入力ジオメトリのポイントのサブセット。 このフィールドを空っぽにすると、入力のすべてのポイントに影響を与えます。 グループのタイプは、 Run Over パラメータと同じでなければなりません。
Run Over
修正するジオメトリアトリビュートのクラス。 Numbers に設定した時、読み取り専用のDetailアトリビュート以外のアトリビュートはバインドされません。
Number Count
Run Over を Numbers に設定した時の反復数。
@elemnum
は0(含む)から始まり、この数(含まない)までの反復番号で、@numelem
はこの数です。
このモードの時は読み取り専用のDetailアトリビュート以外のアトリビュートはバインドされません。
Thread Job Size
Run Over を Numbers に設定した時に任意のスレッドで同時に走る反復最大数。 これが Number Count 以上の時、VEXコードはシングルスレッドで実行されます。 各反復に非常に長い時間がかかる場合は、これを1に設定します。とはいえ、この値を大きくすれば大きなメリットが得られることが多いです。特に各反復にかかる時間が短い場合や同時に複数の反復を実行しても処理が重複しない場合です。
VEXpression
Pointアトリビュートを操作するVEXコードのスニペット。
@variable_name
構文を使えば、ジオメトリアトリビュートにアクセスすることができます。
Attributes to Create
アトリビュートの名前がこのパターンに一致した場合のみ、そのアトリビュートを作成します。 デフォルトのパターンでは、どのアトリビュートも作成されます。
*
を許可したい名前のリストに置換することで、作成するアトリビュートを制限することができます。
バインドしたアトリビュート(例えば、vtxnum
)を作成することはできないので、無視されます。
Enforce Prototypes
@
構文を使った自動バインドは便利ですが、あなたのシステムが複雑になるほど、@
バインドでのタイプミスが、存在しないアトリビュートと
何も警告せずにバインドしてしまう危険性があります。
このオプションは、すべての@
バインドを使用前にプロトタイプとして明示的に宣言するように強制します。
Use Timestep
このノードを適用するために、現行のソルバタイムステップを使用するかどうか決めます。
設定した場合、現行のタイムステップサイズがスケールで乗算されて、このノードの時間の増分値に使用されます。 設定しなかった場合、 Time Scale には積分する絶対仮想時間を指定します。
実際のリアルタイムとマイクロソルバ時間とのリンクを無効にすることで、別々の仮想時間でオペレーションを実行することができます。
Time Scale
このマイクロソルバに使用するタイムステップをこの値でスケールします。 これにより、他とは異なる速度で動作するシミュレーションなどの非現実的な効果を表現することができます。
同様に、ソルバをメインのタイムステップとは関係なく評価する必要がある場合に役に立ちます。
Data Bindings
Geometry
処理するオブジェクト上のジオメトリのリスト。
Evaluation Node Path
ch()
などのVEX関数は、通常では、このノードを基準に評価します。
ここでパスを指定すれば、パス検索の開始場所を上書きすることができます。
これは、トップレベルのデジタルアセットが検索ルートになるようにデジタルアセットへ組み込む時に役に立ちます。
Timescale
実際のタイムステップに適用する全体的なスケール。
Export Parameters
VEXパラメータをエクスポートする時、バインドしたアトリビュートが存在しなければ、そのアトリビュートが作成されます。 このパターンを使ってVEXシェーダのExportオプションを上書きすることで、特定のアトリビュートへの書き込みや作成を回避することができます。 パターンはVEXパラメータに一致しますが、バインドしたアトリビュートには一致しません。 バインドしたアトリビュートは、読み取り専用になります。
Autobind by Name
アトリビュートの名前を使用して、どのアトリビュートをどのパラメータにバインドするか決めます。
Integerアトリビュートは、Integerパラメータにバインドします。 Floatアトリビュートは、タプルサイズに応じてfloat, vector, point, matrix, matrix4パラメータにバインドします。 Stringアトリビュートは、文字列パラメータにバインドします。
Attribute Name, VEX Parameter
手動で各アトリビュートのバインドを指定します。
Field Name, VEX Parameter
オプションで、このオブジェクトのScalar, Vector, Matrix, IndexフィールドをCVEX関数にバインドします。
それらのフィールドは、各エレメントの現行P
位置でサンプリングされます。
頭に@
を付けてパラメータを参照すれば、それらのフィールドにアクセスすることができます。
Autobind Groups by Name
自動的に任意のグループを、名前の頭がgroup_
で始まるIntegerパラメータにバインドします。
Group Name, VEX Parameter
手動で各グループのバインドを指定します。
Update Normals If Displaced
ポイントが繰り越されてしまい、P
アトリビュートが書き込まれ、N
アトリビュートが書き込まれていない場合、入力の法線が古くなります。
このオプションを設定すると、ポイントの繰り越しが起きた時に頂点とポイントの法線が更新されます。
Inputs
Input 1, 2, 3, 4
これらの入力は、VOP内部にアクセス可能な4つの仮想入力を制御します。
VEXpressionを使用する時は、VOPのOpInput1-4ワイヤーまたは@OpInput1-4
文字列パラメータを使うことで、それらの仮想入力にアクセスすることができます。
また、入力番号を受け取るVEX関数に数値で0-3を使うことで、それらの仮想入力にアクセスすることもできます。
None
この入力にジオメトリが接続されません。
SOP
VEXを実行する前に、このSOPジオメトリがクックされて、その結果がこの入力に接続されます。
DOP Data
参照する現行シミュレーション内のデータ。
ここには、オブジェクト/データ(例えば、pyro1/vel
)として指定して、pyro1
オブジェクト(これは3つのボリュームプリミティブとして表示します)のVelocityフィールドを参照します。
Myself
現在処理されているジオメトリを参照するのは、VEX関数が元の形式を参照できるようにコピーを必ず作成しなければならない特別な時です。 これを使うことで、それを処理することができます。
Nth Context Geometry
これらのジオメトリは、親のDOP Network自体に接続されたSOPを参照します。
Myself (No Reads from Outputs)
現在処理されているジオメトリを参照します。コピーを作成しないので、バインドされたアトリビュートから読み込みを作成しないようにするのはユーザー次第です。
SOP Path
接続するDOPのパス。
DOP Data
このシミュレーションのDOPデータに接続するObject/Dataパス。
Examples
The following examples include this node.
SoftConstraintNetwork Example for Constraint Network dynamics node
このサンプルでは、単純なソフト拘束のネットワークを作成する方法を説明しています。このネットワークを使用することで、オブジェクトを曲げた後に粉砕させることができます。
See also |