On this page | |
Since | 13.0 |
概要 ¶
これは非常に強力な低レベルにアクセス可能なノードであり、VEXに詳しい熟練者が、コードを使ってパーティクルを調整することができます。
このノードは、POP VOP DOPに相当しますが、VOPネットワークの代わりにテキストのVEXスニペットを使用します。
このノードは、入力ジオメトリ内の Detailまたはすべてのポイントに対してスニペットを実行します。 スニペットは、アトリビュートを変更することで、入力ジオメトリを編集することができます。 アトリビュートとVEX関数を使うことで、他のジオメトリの情報にアクセスすることができます。
-
ノードをクリックすると、スニペットからのエラー出力を確認することができます。
-
VEX関数の
ch
を使ってパラメータを評価することができます。 パスは、このノードの相対パスです(ch("parm")
は、このノードのparm
パラメータを評価します)。 この評価は、現行時間で実行されます。 -
Attrib Create SOPとは違い、このノードはローカル変数を使用しません。 さらに、すべてのバッククォートによるエクスプレッションと
$F
変数は、現行時間ではなく、フレーム1で評価されます。 代わりに@Frame
、@Time
、@TimeInc
を使ってください。
コンテキスト ¶
このノードは、 CVEXコンテキスト でスニペットを実行します。
構文 ¶
パラメータ ¶
Activation
このノードを有効/無効にします。この値が0より大きい時のみノードがアクティブになります。 これは、エクスプレッションでノードの効果を制御するのに役に立ちます。
Note
これは、全体としてノードを活動化します。このパラメータを使って特定のパーティクルのノードを非活動にすることはできません。
Group
現行ストリーム内のすべてのポイントからポイントグループ(例えば、Group POPやCollision Detection POPで作成) にのみ影響を与えます。
Code ¶
VEXpression
Pointアトリビュートを操作するVEXコードのスニペット。
@variable_name
構文を使えば、ジオメトリアトリビュートにアクセスすることができます。
Attributes to Create
アトリビュートの名前がこのパターンに一致した場合のみ、そのアトリビュートを作成します。 デフォルトのパターンでは、どのアトリビュートも作成されます。
*
を許可したい名前のリストに置換することで、作成するアトリビュートを制限することができます。
Cd
, v
, id
のようなグローバルアトリビュートは、このリストになくても作成されます。
バインドされたアトリビュート(例えば、vtxnum
)は作成することができないので、無視されます。
Enforce Prototypes
スニペット内でまず型宣言として@
バインドを宣言しないと、それらのバインドが使用できないようにします。
これは、アトリビュート(例えば、@Cd
)と@ptnum
や@Frame
といった“便利”バインドのどちらにも当てはまります。例:
// バインドを宣言します。 int @ptnum; float @Frame; vector @Cd; // 宣言の後にバインドを使用します。 int pointnum = @ptnum; float red = @Cd[0] / @Frame;
@
構文を使った自動バインドは便利ですが、シーンが複雑になるにつれて、@
バインドのタイプミスが原因で不意に存在しないアトリビュートをバインドしてしまう危険性があります。
Use Timestep
このノードを適用するために、現行のソルバタイムステップを使用するかどうか決めます。
設定した場合、現行のタイムステップサイズがスケールで乗算されて、このノードの時間の増分値に使用されます。 設定しなかった場合、 Time Scale には積分する絶対仮想時間を指定します。
実際のリアルタイムとマイクロソルバ時間とのリンクを無効にすることで、別々の仮想時間でオペレーションを実行することができます。
Time Scale
このマイクロソルバに使用するタイムステップをこの値でスケールします。 これにより、他とは異なる速度で動作するシミュレーションなどの非現実的な効果を表現することができます。
同様に、ソルバをメインのタイムステップとは関係なく評価する必要がある場合に役に立ちます。
Data Bindings ¶
Geometry
処理するオブジェクト上のジオメトリのリスト。
Evaluation Node Path
ch()
などのVEX関数は、通常では、このノードを基準に評価します。
ここでパスを指定すれば、パス検索の開始場所を上書きすることができます。
これは、トップレベルのデジタルアセットが検索ルートになるようにデジタルアセットへ組み込む時に役に立ちます。
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
アトリビュートが書き込まれていない場合、入力の法線が古くなります。
このオプションを設定すると、ポイントの繰り越しが起きた時に頂点とポイントの法線が更新されます。
VEX Precision
VEXは、32ビットまたは64ビットの精度で評価することができます。 64ビットの方が特にトランスフォームでは精度が高いです。
Note
入力のアトリビュートは、元の精度を維持するので、32ビットのポジションに対して64ビットVEXを使用すると、まず最初にそれらの位置が64ビットに変換されてから、処理が適用され、書き出し時に32ビットに変換して戻されます。
Autoモードは、入力ジオメトリの優先精度に基づいて32ビットと64ビットを切り替えます。 64ビット精度で実行すると、作成されたアトリビュートがどれも64ビットになります。 32ビット精度で実行すると、作成されたアトリビュートがどれも32ビットになります。 Attribute Castを使用することで、この優先精度を変更することができます。
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
接続するSOPのパス。
DOP Data
このシミュレーションのDOPデータに接続するObject/Dataパス。 Use This Object’s Data が有効な場合、ここには、現在計算されているオブジェクトに追加するデータのデータパスを指定します。
Use This Object’s Data
有効にしたら、 現在計算されているオブジェクトに追加するデータの名前を DOP Data で指定します。
通常では、これは$OBJID/DataName
と同等ですが、$OBJID
を使用する場合には、相互アフェクターがRBDなどのソルバに作用しないように Solver Per Object トグルを設定する必要があります。
参照データが現在処理されているジオメトリの場合、( Myself バインドオプションと同様に)コピーが作られます。
Bindings ¶
Geometry
POPノードの適用先となるシミュレーションデータの名前。 これは一般的にはGeometryですが、必要に応じてPOPネットワークを設計して別のジオメトリに適用することができます。
Evaluation Node Path
ローカルエクスプレッションを持つノードに関しては、これは、VEXのch()
形式のエクスプレッションを何処を基準に評価するか制御します。
このパラメータを.
に設定すれば、相対参照が働きます。
HDA内にノードを埋め込み、さらにローカルエクスプレッションをエクスポートするのであれば、このパラメータをプロモートすることが重要です。
See also |