On this page | |
Since | 13.0 |
POP VOPノードは、パーティクルセットに対してCVEXを実行します。 CVEXシェーダは、このノードの内部にCVEX VOPネットワークを構築することで、.vflファイル、SHOPとして定義することができます。 SHOPが一番簡単な方法です。
CVEXスクリプトへのバインドは、何のアトリビュートをスクリプトのどのパラメータへ渡すのかを制御します。 デフォルトのAutoBindは、アトリビュートの名前を使用して、それらのアトリビュートが上書きするパラメータを決めます。 そのパラメータがCVEXスクリプトでExportedとしてマークされていた場合は、そのパラメータがそのアトリビュートへ書き込まれます。 そうでない場合は、そのアトリビュートが単に読み込まれて、そのパラメータの値を取得します。
オプションで、読み取り専用のフィールドパラメータをバインドすることもできます。 その読み取り専用のフィールドパラメータは、空間内のアトリビュートの位置でサンプリングされて、CVEXに渡されます。
パラメータ ¶
Activation
このノードを有効/無効にします。この値が0より大きい時のみノードがアクティブになります。 これは、エクスプレッションでノードの効果を制御するのに役に立ちます。
Note
これは、全体としてノードを活動化します。このパラメータを使って特定のパーティクルのノードを非活動にすることはできません。
Group
現行ストリーム内のすべてのポイントからポイントグループ(例えば、Group POPやCollision Detection POPで作成) にのみ影響を与えます。
Vex Setup ¶
Vex Source
CVEXスクリプトの取得先。 Myself は、このノード内部で構築されたVOPネットワークを参照します。 SHOP は Shop Path を使用します。 Script はスクリプトで指定された.vexファイルを読み込みます。
Shop Path
適用するCVEX SHOP。
これはCVEX VOP Networkを含むノードを指すこともできます。
Note
参照されたノードのパラメータが使われます。
Script
適用するCVEXスクリプト。
Re-load VEX Functions
Scriptモードの時、これはHoudini外部で作成されたアップデートを反映するために、.vex
ファイルを再読み込みします。
Compiler
このノードの内部をコンパイルするためにVOPで使用されるコマンドライン。
Force Compile
強制的にVOP Networkを再コンパイルします。
Evaluation Node Path
ch()
などのVEX関数は、通常では、このノードを基準に評価します。
ここでパスを指定すれば、パス検索の開始場所を上書きすることができます。
これは、トップレベルのデジタルアセットが検索ルートになるようにデジタルアセットへ組み込む時に役に立ちます。
Export Parameters
VEXパラメータをエクスポートする時、バインドしたアトリビュートが存在しなければ、そのアトリビュートが作成されます。
このパターンを使ってVEXシェーダのExportオプションを上書きすることで、特定のアトリビュートへの書き込みや作成を回避することができます。
パターンはVEXパラメータに一致しますが、bound
アトリビュートには一致しません。
bound
アトリビュートは、読み取り専用になります。
Enable Multithreading
VEXによるスレッドの問題はないはずです。 しかし問題があれば、これによって、問題のあるノードがどれなのか判断し、 全体的にスレッド化を無効にせずに回避することができます。
Volume Bindings ¶
Data Bindings ¶
Geometry
処理するオブジェクト上のジオメトリのリスト。
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 バインドオプションと同様に)コピーが作られます。
Solver ¶
Use Timestep
このノードを適用するために、現行のソルバタイムステップを使用するかどうか決めます。
設定した場合、現行のタイムステップサイズがスケールで乗算されて、このノードの時間の増分値に使用されます。 設定しなかった場合、 Time Scale には積分する絶対仮想時間を指定します。
実際のリアルタイムとマイクロソルバ時間とのリンクを無効にすることで、別々の仮想時間でオペレーションを実行することができます。
Time Scale
このマイクロソルバに使用するタイムステップをこの値でスケールします。 これにより、他とは異なる速度で動作するシミュレーションなどの非現実的な効果を表現することができます。
同様に、ソルバをメインのタイムステップとは関係なく評価する必要がある場合に役に立ちます。
Parameter Operations
各データオプションパラメータには、それに関連するそのパラメータの動作方法を指定するメニューがあります。
Use Default
Default Operationメニューの値を使用します。
Set Initial
このデータを作成した時だけ、このパラメータの値を設定します。 それ以降のすべてのタイムステップ上では、このパラメータの値は変更されません。 これは、ポジションやVelocityのような初期状態のセットアップに役に立ちます。
Set Always
このパラメータの値を常に設定します。これは、特定のキーフレーム値が時間にわたって必要な時に役に立ちます。 これは、時間にわたってオブジェクトの位置をキーフレームしたり、ジオメトリが変形する場合にタイムステップ毎に SOPのジオメトリを取得するのに役に立ちます。
この設定をパラメータ値に対してローカル変数と合わせて使用することで、時間にわたって値を修正することもできます。
例えば、X Positionでは、$tx + 0.1
のようなエクスプレッションがタイムステップ毎にオブジェクトを右に0.1ユニットずつ動かします。
Set Never
このパラメータの値をまったく設定しません。 このオプションは、このノードを使って1番目の入力に接続された既存のデータを修正する時に非常に役に立ちます。
例えば、RBD State DOPでオブジェクトの質量しかアニメーションさせたくない場合、 Set Never オプションを Mass 以外のすべてのパラメータで使用し、 Mass パラメータには Set Always を使用します。
Default Operation
Use Default に設定した Operation メニューのパラメータに対して、このパラメータが、使用するオペレーションを制御します。
このパラメータは、 Parameter Operations メニューと同じメニューオプションと意味を持ちますが、 Use Default の選択がありません。
Make Objects Mutual Affectors
このノードの1番目の入力に接続されたすべてのオブジェクトが、相互アフェクターになります。
これは、それらのオブジェクトをこのノードに接続する前にAffector DOPを使用して、*
と*
の間にアフェクターリレーションシップを作成する事と同じです。
このオプションは、すべてのオブジェクトをソルバに送って、お互いに影響し合うようにするのに便利です。
Group
オブジェクトコネクタをこのノードの1番目の入力に接続した時、このパラメータを使って、 このノードから影響を受けるそれらのオブジェクトのサブセットを選択することができます。
Data Name
オブジェクトまたは他のデータにデータを追加するために使用する名前を意味します。 Data Name に“/”(または複数)を含めれば、それはサブデータ内側に移動することを意味します。
例えば、Fan Force DOPのデフォルトの Data Name は“Forces/Fan”です。 これは、“Forces”という既存のデータに“Fan”という名前のデータを追加します。 “Forces”というデータが存在しなければ、単なるコンテナデータが作成されて、そこに“Fan”サブデータが追加されます。
異なるデータは、それらを使用する名前に対して異なる要件を持ちます。 非常に稀な場合を除いて、デフォルト値を使用してください。 いくつかの例外は、特定のデータまたは特定のタイプのデータを利用するソルバで説明します。
Unique Data Name
このパラメータを有効にすると、このノードで作成されるデータが既存データを上書きしないように 固有な名前で Data Name パラメータの値を修正します。
このパラメータをオフにすると、同じ名前の2つのデータを追加すると、2番目のデータが1番目のデータを置換します。 各タイプの挙動が必要な場合があります。
オブジェクトにいくつかのFan Forcesを吹き付けたい時に、各ファンが前のファンを上書きしないように、 個々のファンの Data Name を変更して名前の衝突を回避するよりも、 Unique Data Name の機能を使用する方が簡単です。
一方で、オブジェクトに既にRBD Stateデータが追加されていることを知っていれば、このオプションをオフにすることで、 新しいRBD Stateデータが既存データを上書きすることができます。
Solver Per Object
ソルバのデフォルトの挙動は、まったく同じソルバをグループで指定したすべてのオブジェクトに取り付けます。 これにより、パラメータが各オブジェクトに対して同一になるので、それらのオブジェクトをソルバによって1個のパスで処理することができます。
とはいえ、いくつかのオブジェクトは、同時に単一オブジェクトに対してより論理的に作用します。
それらの場合では、$OBJID
エクスプレッションを使用して、オブジェクト毎にソルバのパラメータを変化させたいことがあります。
このトグルを設定すれば、オブジェクト毎に別々のソルバが作成されて、$OBJID
が期待通りに変化します。
Copy Data DOPを使用してパラメータをスタンプする場合にも、この設定が必須です。
入力 ¶
First Input
このオプションの入力には2つの用途があります。
1つ目が、他のPOPノードに接続すると、このノードを実行する前に、それらのノードが実行されます。チェーン状に繋がったノードは、上から下に処理されます。
2つ目が、入力チェーンにストリームジェネレータ(例えば、POP Location, POP Source, POP Stream)があると、 このノードは、そのストリーム内のパーティクルにだけ作用します。
出力 ¶
First Output
このノードの出力をソルバチェーンに接続してください。
Mergeノードを使用すれば、複数のソルバチェーンを結合することができます。
最後の接続は、POP SolverやFLIP Solverなどのフルソルバの紫の入力のどれかに接続してください。
See also |