On this page |
基本的には、このノードは、ジオメトリポイントを、ジオメトリがDOPフォースの影響で形を失わないほどにパーティクル間に十分な張力を持ったパーティクルに変換します。 その結果のSquishy Body(ぷにぷにしたボディ)は、POP Solverで使用されます。
このノードは、POP Object DOPの拡張集合です。
Tip
クランプ(制限)を回避するには、DOPサブステップを増やしてみてください。
パラメータ ¶
Creation Frame Specifies Simulation Frame
作成フレームが、グローバルのHoudiniフレーム($F
)またはシミュレーション固有のフレーム($SF
)のどちらを参照するか決めます。
後者は、DOP Networkレベルのオフセット時間とスケール時間の影響を受けます。
Creation Frame
オブジェクトが作成されるフレーム番号。 現行フレーム番号がこのパラメータの値と同じ時にだけオブジェクトが作成されます。 つまり、DOP Networkは、指定したフレームでのタイムステップを評価しなければならないことを意味します。そうしないとオブジェクトが作成されません。
例えば、この値を3.5に設定すれば、必ずDOP Networkがフレーム3.5でタイムステップを持つように、DOP Networkの Timestep パラメータを1/(2*$FPS)
に変更しなければなりません。
Object Name
作成されるオブジェクトの名前。 これはGeometry Spreadsheet Viewで表示される名前で、この特定のオブジェクトを外部から参照するために使用します。
Note
同じ名前でたくさんのオブジェクトを持つことができますが、それでは参照の書き込みが困難になるので、名前には$OBJID
のような変数を使用することを推奨します。
Initial Geometry
POP Objectの初期状態として使用されるSOPのパス。
指定したSOPにパーティクル以外のジオメトリが含まれていれば、POP Solverが自動的にそれらの他のプリミティブをパーティクルシステムに変換するように設定することができます。
Use Deforming Geometry
ジオメトリをDOPシミュレーションに取り込む前に、ソフトウェアがジオメトリの形状の変化をチェックすることができます。 このトグルをオフにすると、パフォーマンスの向上が見込まれます。
Use Object Transform
Initial Geometry を含んだオブジェクトのトランスフォームをGeometryデータに組み込むかどうか指定します。
Collisions ¶
Tolerance
他のオブジェクトのサーフェスと衝突する時、この許容値が、光線の交差判断に使われます。
ポイントがサーフェスからこの距離内にある時は、そのポイントを衝突と見なします。
Volume Offset
ポイントがVolume表現と衝突した時、ボリュームのサーフェスがこの量で効率的に押し出されます。
上記の Tolerance 値と同様に、ポイントが実ボリュームからこの距離内にある時に衝突が発生します。
Physical ¶
Bounce
パーティクルの弾力性。Bounceが1.0の2つのオブジェクトが衝突すると、それらのオブジェクトはエネルギーを消失せずに跳ね返ります。 Bounceが0.0の2つのオブジェクトが衝突すると、それらのオブジェクトは停止します。
パーティクルにbounce
Pointアトリビュートがあれば、そのPointアトリビュートの値が、この値を上書きします。
Friction
パーティクルの摩擦係数。0の値は、摩擦なしを意味します。
これは、接線Velocityが衝突と静止接触で影響を受ける強さを制御します。
パーティクルにfriction
Pointアトリビュートがあれば、そのPointアトリビュートの値が、この値を上書きします。
Dynamic Friction Scale
滑るオブジェクトは、静止しているオブジェクトよりも摩擦係数が低いです。このパラメータは、2つのオブジェクトに関連したスケール係数です。 これは摩擦係数ではなくて、0から1の間のスケールです。
1の値は、動摩擦と静摩擦が同じになることを意味します。0の値は、静摩擦を越えると、オブジェクトが摩擦なしで作用することを意味します。
パーティクルにdynamicfriction
Pointアトリビュートがあれば、そのPointアトリビュートの値が、この値を上書きします。
Softbody ¶
Restoration Strength
ポイントがRest Position(静止位置)に移動する速さを制御します。値が低いほど、Rest形状に戻ろうとする速さが遅くなるだけで、十分に大きな値にすると、オブジェクトがほぼリジッドになります。
これは、単一ステップでポイントをゴール位置の方へ動かす乗数です。値が高いほど、速くベースの状態になります。
Note
フレームレートよりも大きな値にしても、安定を確保するために値がクランプ(制限)されます。
Squash Resistance
ポイントのグループが萎縮効果から元に戻る強さを制御します。値が低いほどオブジェクトがパンケーキみたいに押しつぶされ、値が高いほど、オブジェクトが常に元の寸法を保持しようとします。 どの場合にでも、ボリュームは、萎縮していない方向へストレッチすることで維持されます。
単なるリジッドのトランスフォームに加えて、一致する形状も萎縮/伸張のトランスフォームを破棄することがあります。 Squash Resistance は、1秒でゴールをリジッド状態に戻す度合いです。 この値は、フレームレートにクランプ(制限)されます。
Frame Drag Strength
シミュレーションに対する減衰効果として作用します。
ゴール形状への復元には、スプリングのような力を使用します。これは、変位ポイントを振動させます。 Frame Drag は、パーティクルがリジッドな動きに従わないようにDragフォースを適用します。 これは、全体のオブジェクトを遅くすることなく、それらの振動を打ち消します。
出力 ¶
First
このノードで作成されたシミュレーションオブジェクトが、単一出力を通して送り出されます。
ローカル変数 ¶
ST
ノードが評価されるシミュレーション時間です。
この値は、変数Tで表現される現在のHoudiniの時間と同じではなく、DOP Networkの Offset Time と Scale Time のパラメータの設定に依存しています。
STは、シミュレーションの開始時間がゼロになるようになっています。
つまり、シミュレーションの最初のタイムステップをテストする時は、$T == 0
や$FF == 1
を使うのではなくて、$ST == 0
のようなテストを使うのがベストです。
SF
ノードが評価されるシミュレーションフレーム(正確には、シミュレーションタイムステップ番号)。
この値は、変数Fで表現される現在のHoudiniのフレーム番号と同じではなく、DOP Networkパラメータの設定に依存しています。 代わりに、この値は、シミュレーション時間(ST)をシミュレーションタイムステップサイズ(TIMESTEP)で割算した値と同じです。
TIMESTEP
シミュレーションタイムステップのサイズ。 この値は、1秒あたりのユニットで表現した値をスケールするのに役に立ちますが、タイムステップ毎に適用されます。
SFPS
TIMESTEPの逆数。 シミュレーション時間の1秒あたりのタイムステップ数です。
SNOBJ
シミュレーション内のオブジェクトの数。 Empty Object DOPなどのオブジェクトを作成するノードでは、SNOBJは、オブジェクトが評価される度に値が増えます。
固有のオブジェクト名を確保する良い方法は、object_$SNOBJ
のようなエクスプレッションを使うことです。
NOBJ
このタイムステップ間で現行ノードで評価されるオブジェクトの数。 この値は、多くのノードがシミュレーション内のオブジェクトすべてを処理しないので、SNOBJとは異なります。
NOBJは、ノードが各オブジェクトを続けて処理(例えば、Group DOP)しないなら0を返します。
OBJ
ノードで処理される特定のオブジェクトのインデックス。 この値は、指定したタイムステップで常にゼロからNOBJ-1まで実行されます。 この値は、OBJIDやOBJNAMEなどのシミュレーション内の現行オブジェクトを識別せず、現在の処理順でのオブジェクトの順番を識別します。
この値は、オブジェクト毎に乱数を生成するのに役に立ちます。他には、処理別にオブジェクトを2,3のグループに分けるのに役に立ちます。 この値は、ノードがオブジェクトを続けて処理(例えば、Group DOP)しないなら-1を返します。
OBJID
処理されているオブジェクトの固有ID。 すべてのオブジェクトは、すべての時間のシミュレーション内のオブジェクトすべてで固有な整数値が割り当てられています。たとえオブジェクトが削除されても、そのIDは決して再利用されません。 オブジェクトIDは、オブジェクト毎に別々の処理をさせたい場面(例えば、オブジェクト毎に固有の乱数を生成したい)で非常に役に立ちます。
この値は、dopfieldエクスプレッション関数を使って、オブジェクトの情報を検索するのにベストな方法です。
OBJIDは、ノードがオブジェクトを続けて処理(例えば、Group DOP)しないなら-1を返します。
ALLOBJIDS
この文字列には、現行ノードで処理されているオブジェクトすべての固有のオブジェクトIDをスペース区切りにしたリストが含まれています。
ALLOBJNAMES
この文字列には、現行ノードで処理されているオブジェクトすべての名前をスペース区切りにしたリストが含まれています。
OBJCT
現行オブジェクトが作成された時のシミュレーション時間(変数STを参照)。
そのため、オブジェクトが現在のタイムステップで作成されたかどうかチェックするには、$ST == $OBJCT
のエクスプレッションが常に使われます。
この値は、ノードがオブジェクトを続けて処理(例えば、Group DOP)しないなら0を返します。
OBJCF
現行オブジェクトが作成された時のシミュレーションフレーム(変数SFを参照)。
この値は、OBJCT変数にdopsttoframeエクスプレッションを使ったものと等価です。この値は、ノードがオブジェクトを続けて処理(例えば、Group DOP)しないなら0を返します。
OBJNAME
処理されているオブジェクトの名前を含んだ文字列値。
オブジェクト名は、シミュレーション内で固有であることが保証されていません。 しかし、オブジェクト名が固有になるように注意して名前を付けていれば、オブジェクトの識別は、オブジェクトIDよりも、オブジェクト名を指定するほうが簡単です。
オブジェクト名は、同じ名前を持つオブジェクトの数を仮想グループとして扱うこともできます。
“myobject”という名前のオブジェクトが20個あれば、DOPのActivationフィールドにstrcmp($OBJNAME, "myobject") == 0
を指定すると、DOPがその20個のオブジェクトのみを操作します。
この値は、ノードがオブジェクトを続けて処理(例えば、Group DOP)しないなら空っぽの文字列を返します。
DOPNET
現在のDOP Networkのフルパスを含んだ文字列値。 この値は、ノードを含むDOP Networkのパスを知りたりDOPサブネットのデジタルアセットで非常に役に立ちます。
Note
ほとんどのダイナミクスノードには、そのノードのパラメータと同じ名前のローカル変数があります。 例えば、Position DOPでは、以下のエクスプレッションを記述することができます:
$tx + 0.1
これはオブジェクトをタイムステップ毎にX軸方向に0.1単位分移動させます。
See also |