Gas Field VOPノードは、フィールドのセットに対してCVEXを実行します。 CVEXシェーダは、このノードの内部にCVEX VOPネットワークを構築することで、.vflファイル、SHOPとして定義することができます。 SHOPが一番簡単な方法です。
CVEXスクリプトへのバインドは、何の値をスクリプトのどのパラメータへ渡すのかを制御します。 デフォルトのAutoBindは、フィールドの名前を使用して、それらのフィールドが上書きするパラメータを決めます。 そのパラメータがCVEXスクリプトでExportedとしてマークされていた場合は、そのパラメータがそのフィールドへ書き込まれます。 そうでない場合は、そのフィールドが単に読み込まれて、そのパラメータの値を取得します。
CVEXスクリプトは、エクスポートされたフィールド毎に1回適用されます。
現在エクスポートされているプリミティブのインデックス、解像度、中心、現行ボクセル位置を参照するために、
ローカルで定義されたix
, iy
, iz
, resx
, resy
, resz
, orig
, P
のバインドが作成されます。
パラメータのリストは、CVEXスクリプトのパラメータで作成されたパラメータから始まります。 そのパラメータがフィールドへのバインドだけが目的であれば、そのパラメータをVOPパラメータのInvisibleフラグを設定することで隠すことができます。
パラメータ ¶
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シェーダのExportオプションを上書きすることで、特定のフィールドへの書き込みを回避することができます。 パターンはVEXパラメータに一致しますが、バインドしたフィールドには一致しません。 バインドしたフィールドは、読み取り専用になります。
Data Bindings ¶
Autobind by Name
フィールドの名前を使用して、どのフィールドをどのパラメータにバインドするか決めます。
“foo”スカラーフィールドは、“foo”Floatパラメータにバインドされます。 “foo”ベクトルフィールドは、“foo”Vecotr(3つのFloat)パラメータにバインドされます。 “foo”マトリックスフィールドは、“foo”Matrix(3×3)パラメータにバインドされます。 “foo”インデックスフィールドは、“foo”整数パラメータにバインドされます。
Primitive, Name
各フィールドのバインドを手動で指定します。
Stencil Field
VOPネットワークが評価される領域のステンシルとして使用するスカラーフィールド。 ステンシル値が完全に0.5を超えたボクセルに対してVOPネットワークが実行され、他のボクセルは未変更のままになります。
VEX Precision
VEXは32ビットまたは64ビットの精度で評価することができます。 特にトランスフォームに対して64ビットは高い精度を持つことができます。
フィールドは常に32ビットなので、現在のところ、Autoモードは32ビットモードで実行されます。
Inputs ¶
Input 1, 2, 3, 4
これらの入力は、VOP内部にアクセス可能な4つの仮想入力を制御します。
これらの入力は、VOPからOpInput1-4ワイヤを使ったり、VEXpressionで@OpInput1-4
文字列パラメータを使ってアクセスすることができます。
これらの入力は、入力番号を受け取るVEX関数を使って0-3の数値でアクセスすることができます。
None
この入力に接続されるジオメトリはありません。
SOP
VEXを実行する前にSOPジオメトリがクックされて、その結果がこの入力に接続されます。
DOP Data
参照する現行シミュレーション内のデータ。オブジェクト/データ、例えばpyro1/vel
として指定することで、
pyro1
オブジェクトのVelocityフィールド(これは3つのボリュームプリミティブとして表示されます)を参照します。
Nth Context Geometry
これらの入力が親のDOP Network自体に接続されたSOPを参照します。
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 バインドオプションと同様に)コピーが作られます。
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を使用してパラメータをスタンプする場合にも、この設定が必須です。
See also |