On this page | |
Since | 13.0 |
Solid Configure Object DOPは、シミュレーションオブジェクトを取得して、そのオブジェクトをSolid Objectとして使用するために必要なデータを付加します。
このDOPは、Solid Object DOPによく似ていますが、他のDOPを使用してオブジェクトの作成を明示的に制御できる点が異なります。 他のDOPとは、Empty Object DOPなどです。 このDOPにより、より高度なインスタンス化やオブジェクトの作成が10フレーム毎に実行できます。
パラメータ ¶
Material ¶
Material Model
材質が変形に抵抗する方法を決めるモデルを選択します。 Neo-Hookeanマテリアルモデルは、生体組織(例えば、筋肉や脂肪)をシミュレーションするのに役立ち、FEM Solverの Solve Method を GNL に設定する必要があります。
Shape Stiffness
これは、Solid Objectが形状の変化にどれくらい強く抵抗するかを決定します。 Isotropic(等方性)を使用の場合(Anisotropic Strengthがすべて1)、この物理的な定数は、剛性率、剛性係数、またはLameの第二パラメータとしても知られています。 長さの単位をメートルに設定した場合、Shape Stiffnessパラメータの単位はGPaです。
Volume Stiffness
これは、Solid Objectがボリュームの変化にどれくらい強く抵抗するかを決定します。 Isotropic(等方性)を使用の場合(Anisotropic Strengthがすべて1)、この物理的な定数は、Lameの第一パラメータとしても知られています。 長さの単位をメートルに設定した場合、Shape Stiffnessパラメータの単位はGPaです。
Damping Ratio
この値は0から1の間になります。 変形率の結果として、エネルギー損失率を制御します。 0の値は、内部の減衰力により、エネルギー損失がないことを意味します。 1の値は、オブジェクトの減衰が極めて大きいことを意味し、その場合、オブジェクトは振動せずに、できるだけ最速の方法で静止します。 減衰率が高くなると、ソリッドの振動がより少なくなり、オブジェクトの動きが静止するのが速くなります。 減衰の効果は、ジオメトリの解像度には影響しません。
Mass Density
これは、1立方体あたりの質量です。
質量密度は、volumemassdensity
Primitiveアトリビュートにより、オブジェクトの一部で薄くしたり、濃くすることができます。
これは、パラメータの乗数として働きます。
質量密度が濃くなると、オブジェクトは、内部または外部フォース(F = m a、ニュートンの第二法則)の結果、加速化する傾向が少なくなります。
Enable Fracturing
これは、このオブジェクトに対して完全に引裂を有効または無効にします。
Note
引き裂く前に、FEM Solverの Enable Fracturing も有効にしておく必要があります。
Fracture Threshold
これは、シミュレーション中にジオメトリを別々のパーツに分割する相対的なストレッチ量です。 例えば、この閾値を0.1に設定すると、ジオメトリは、Rest(静止)ジオメトリと比較して10%より大きく引き伸ばされた箇所で破れます。
現実のソリッドオブジェクトは、どこも均等な強度にはなっておらず、強度が弱い箇所では、他の箇所よりも破れやすいです。
そのように相対的に強度が弱い箇所を作成するには、fracturethreshold
Vertexアトリビュートを作成します。
このアトリビュートは、 Fracture Threshold パラメータの乗数なので、 Fracture Threshold を使えば、オブジェクトの全体的な強度を制御することができます。
Friction Coefficient
オブジェクトの摩擦係数。 0の値は、オブジェクトに摩擦がないことを意味します。 これは、接触平面の接線方向のVelocityが衝突の影響を受ける度合いを制御します。 2つのオブジェクトが接触した時、ソルバは、その接触に巻き込まれたオブジェクトの摩擦係数を乗算して、その接触における実効摩擦係数を取得します。
Anisotropic Strength
これらの値により、Solid Objectの内部フォースを異方的方法で挙動させることができます。
この場合、応力量は、オブジェクトが変形する方向により異なります。
異方性マテリアルの例としては、木材で、木材の目に垂直な力とは異なる木材の目に平行な力があります。
materialuvw
Point/Vertexアトリビュートにより、Solid Objectの内部フォースモデルの内部方向を指定することができます。
例えば、木材の場合、U方向は、木材の目に揃えられますが、VW座標は、木材の目に対して垂直に選択されます。
この場合、木材の目に平行な力は、 Anisotropic Strength のUコンポーネントにより単独で制御することができます。
Geometry ¶
Initial Geometry
このジオメトリは、オブジェクトの初期のシミュレーション状態を決定します。 それぞれのポイントに対して、初期位置と初期Velocityを決定します。
これは、内部フォースの計算および衝突検出に使用されるジオメトリです。 動きが良い見た目になるのに必要な数の四面体よりも多くの四面体を使用しないでください。 四面体が多いほど、常に高品質に変換できるとは限りません。 使用する四面体の数が少ないほど、シミュレーション速度が上がります。 追加のディテールが必要な場合は、 Embedded Geometry の使用を推奨します。
Tetrahedralize SOPを使用して、適切な入力メッシュを作成することができます。 必ずTetrahedralize SOPで品質オプションを有効にしてください。 有効にしないと、Solid Objectの内部に、柔軟性をもたらす自由度が十分に生成されません。
Enable Embedding
埋め込みジオメトリの使用を有効/無効にします。
Embedded Geometry
このジオメトリは、シミュレーションされる四面体メッシュに埋め込まれ、そのメッシュと一緒に変形します。
Import Rest Geometry
このオプションでは、(SOP Solverを使用する必要のない)SOPネットワーク内のシミュレーションで使用するRest Position(静止位置)を指定して、それをアニメーションさせることができます。
このオプションは、そのRest Position(静止位置)をフレーム毎にSOPジオメトリノードからインポートするかどうかを定義します。
有効にすると、ソルバは、そのRest Position(静止位置)をフレーム毎にSOPジオメトリノードのrestP
PointアトリビュートからシミュレーションジオメトリのrestP
アトリビュートにコピーします。
restP
が存在しなかった場合は、代わりにそのSOPジオメトリノードのP
アトリビュートがコピーされます。
Rest Geometry Path
Rest Position(静止位置)のソースとして使用するSOPノードのパス。
Import Target Geometry
このオプションでは、(SOP Solverを使用する必要のない)SOPネットワーク内のシミュレーションで使用するTarget Position(目標位置)を指定して、それをアニメーションさせることができます。
このオプションは、そのTarget Position(目標位置)をフレーム毎にSOPジオメトリノードからインポートするかどうかを定義します。
有効にすると、ソルバは、そのTarget Position(目標位置)をフレーム毎にSOPジオメトリノードのtargetP
PointアトリビュートからシミュレーションジオメトリのtargetP
アトリビュートにコピーします。
targetP
が存在しなかった場合は、代わりにそのSOPジオメトリノードのP
アトリビュートがコピーされます。
Target Geometry Path
Target Position(目標位置)のソースとして使用するSOPノードのパス。
このTarget Position(目標位置)をtargetP
アトリビュートに格納してください。
このアトリビュートが存在しなかった場合は、代わりにP
アトリビュートが使用されます。
Stiffness
この係数は、Finite Element Solverがポイントポジションをターゲットのポイントポジションに合わせようとする強さを決めます。ソルバは、この目的のために架空の潜在的なフォースを作成します。
Damping
この係数は、Finite Element SolverがPoint VelocityをターゲットのPoint Velocityに合わせようとする強さを決めます。ソルバは、この目的のために架空の消散フォースを作成します。
Collisions ¶
Collide with other objects of different solver
有効の場合、このオブジェクト内のジオメトリは、別のソルバDOPノードに属しているどのDOPオブジェクト(例えば、Static Objects、RBD Objects、Ground Plane)にも衝突するようになります。 Static Objectの Collision Detection パラメータを Use Volume Collisions に設定すると、ポリゴン頂点は、そのStatic Objectの符号付距離フィールド(SDF)に対して衝突がテストされます。 Collision Detection を Use Surface Collisions に設定すると、ジオメトリベースの連続的な衝突検出が使われます。 ジオメトリベースの衝突はポイントとポリゴン、そしてエッジとエッジが衝突します。
サーフェスベースの衝突を使用した時、Static Object内のポリゴンと四面体のみが認識されます。 プリミティブの他のタイプ、例えば球体は無視されます。 外部オブジェクト(例、Static Object)のジオメトリは、片面で扱われます。つまり、法線方向で決まるポリゴンの外側のみが衝突に反応します。
ボリュームベースの衝突が有効である時、ポイントのみがボリュームに対して衝突し、ポリゴンや四面体の内側は衝突しません。 小さいボリュームに対して衝突する時、正確な衝突の結果を得るには、メッシュのポイントの数を増やす必要があることを意味します。
Collide with other objects of same solver
これが有効である時、このオブジェクトは同じソルバを持つ別のオブジェクトと衝突します。 これらの衝突は、ジオメトリ(ポリゴンおよび/または四面体)に基づいて、連続的な衝突検出を使って制御されます。 同じソルバ上のオブジェクト間の衝突に関しては、ポリゴンは両面で扱われます。 ポリゴンの両面が衝突します。四面体メッシュの表面は、片面(外側)のみで衝突します。
Collide distinct connected components of this object
無効である場合、このオブジェクトの中にある2つの四面体は互いに衝突しません。
Self-collide each connected component
無効である場合、繋がった同じコンポーネントに属する2つのポリゴンが互いに衝突することはありません。
Self-collide within each fracture part (defined by fracturepart primitive attribute)
このオプションは、ソルバでFracturingが有効な時のみ効果があります。
無効である場合、同じ破砕部分に属する2つのポリゴンが互いに衝突することはありません。
破砕部分は整数値のfracturepart
Primitiveアトリビュートによって制御されます。
Drag ¶
Visualization ¶
Collision Radius
布のcollisionradius
を可視化します。
Collision Radius Color
布のcollisionradius
ガイドジオメトリのカラー。
Attributes ¶
Create Quality Attributes
これは、シミュレーションしたジオメトリ上にquality
Primitiveアトリビュートを作成します。
最低品質が0、最高品質が1です。プリミティブの品質が良いほど、計算のパフォーマンスと安定性が良くなります。
Create Energy Attributes
このトグルを有効にすると、オブジェクトに運動エネルギーと潜在エネルギーの密度を示したアトリビュートを生成させることができます。 さらに、エネルギー損失率の密度を示したアトリビュートが生成されます。
Create Force Attributes
このトグルを有効にすると、force
アトリビュートを生成することができます。
Create Collision Attributes
Create Fracture Attributes
入力 ¶
First
適切なデータを付加することでソリッドオブジェクトになるシミュレーションオブジェクト。
出力 ¶
First
このノードへ渡されたシミュレーションオブジェクトは、それらのシミュレーションオブジェクトにClothオブジェクトが付与されていると 見なすのに必要なデータと一緒に出力されます。
ローカル変数 ¶
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 |