On this page |
RBD Glue Object DOPは、DOPシミュレーション内に複数のRBD Objectを作成します。 RBD Fractured Object DOPと同様に、このDOPは、指定したSOP Pathからジオメトリを受け取り、そのジオメトリをGroup Maskに応じて分解します。 各破片は、独立したRBD Objectです。 追加でRBD Object(Object Nameという名前で)も作成され、各破片が、そのオブジェクトに接着されます。
Note
RBD Fractured ObjectとRBD Glue Objectは、グループ毎に1つのオブジェクトを作成します。
inside
とoutside
などのメタグループがあれば、*
の代わりにpiece*
を使用してみてください。
RBD Glued Objectsの使い方 ¶
-
RBDオブジェクトに変換するジオメトリを選択します。
-
必要に応じて、破砕する破片を定義します。例えば、Shatterツールを使用します。
-
オブジェクトを選択して、 Rigid Bodies タブのRBD Glued Objectsツールをクリックします。
Attributes ¶
RBD Objectのジオメトリ上にアトリビュートを作成して、そのジオメトリの挙動に影響を与えます。 それらのアトリビュートのほとんどは、このノードに設定したデフォルト値を上書きすることで、RBDを微調整することができます。
名前 | クラス | タイプ | 説明 |
---|---|---|---|
v | Point | Vector |
ポイント毎にVelocityを定義します。 これを使えば、 Inherit Velocity を選択した場合のRBDオブジェクトの初期Velocityを定義したり、 Use Per Point Velocities がオンの場合のオブジェクトのローカル変形を定義することができます。 |
friction | Point | Float |
ポイント毎の摩擦を定義します。これはPhysical Parmsページで設定した摩擦を上書きします。 |
dynamicfriction | Point | Float |
ポイント毎の動摩擦を定義します。これはPhysical Parmsページで設定した動摩擦を上書きします。 |
bounce | Point | Float |
ポイント毎のバウンス値を定義します。これはPhysical Parmsページで設定したバウンス値を上書きします。 |
nopointvolume | Point | Integer |
ポイントサンプリングを選択した時、このアトリビュートがTrueのポイントは、衝突情報に含まれません。 |
noedgevolume | Vertex | Integer |
エッジサンプリングを選択した時、このアトリビュートがTrueのエッジは、衝突情報に含まれません。 |
パラメータ ¶
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
のような変数を使用することを推奨します。
SOP Path
このオブジェクトのジオメトリとなるSOP(または、表示SOPを使用する場合にはObject)のパス。
Fracture By Name
SOPのジオメトリが1つ以上のサブオブジェクトに分割されます。
name
アトリビュートのすべての固有な値に対して、そのアトリビュート値を持つプリミティブだけでサブオブジェクトが作成されます。
Group Mask
SOPのジオメトリが1つ以上のサブオブジェクトに分割されます。 このマスクに一致するグループすべてに対して、そのグループに属するプリミティブだけでサブオブジェクトが作成されます。
Use Deforming Geometry
オブジェクトのジオメトリをタイムステップ毎に、選択したSOPから引き出します。 SOPのジオメトリがアニメーションするなら、RBDオブジェクトのジオメトリもアニメーションします。
このオプションを使用する場合、衝突反応の計算をする時の変形を考慮するためにRBD Solverの Use Point Velocity パラメータも有効にしてください。
Use Object Transform
選択したSOPを含んだオブジェクトのトランスフォームをジオメトリに適用します。 これはジオメトリの初期位置をオブジェクトトランスフォームで定義する場合に役に立ちます。
オブジェクトレベルでオブジェクトをトランスフォームしたい場合は、代わりにObject Position DOPを使用してください。
Create Active Objects
オブジェクトの初期アクティブ状態を設定します。非アクティブオブジェクトは、シミュレーションで他のオブジェクトに反応しません。
Display Geometry
ジオメトリをビューポートに表示するかどうか制御します。シミュレーションが変わっても、そのシミュレーションをリセットしません。
Initial State ¶
Position
オブジェクトのワールド空間での初期位置。
Rotation
オブジェクトの初期の向き。これはRX/RY/RZ書式です。
Velocity
オブジェクトの初期Velocity。
Angular Velocity
オブジェクトの初期角速度。これは、回転軸と回転レートを乗算したものです。 回転速度の単位は度/秒なので、360の乗数はオブジェクトを1秒に1回転させます。
Inherit Velocity
外部フォースから移動するジオメトリを取り込む時、その正確なVelocityと角速度を必ずしも判断できるとは限りません。
このトグルを設定すると、ジオメトリのVelocity Pointアトリビュートを使用して、オブジェクトの評価するVelocityと角速度を計算します。 ジオメトリにVelocity Pointアトリビュートがないなら、Trailサーフェスノードを使って、そのアトリビュートを追加することができます これにより、ソースジオメトリがシミュレーションではなく一連のジオメトリから派生していても、スムーズな受け渡しが可能になります。
Glue ¶
Glue to Object
接着先のオブジェクトの名前。これが空っぽの場合、オブジェクトはどのオブジェクトにも接着される、通常の挙動をします。 相互に影響を与え合う他のRBDオブジェクトの名前にすると、このオブジェクトが他のオブジェクトに接着されます。 他のオブジェクトとの相対的な位置関係がソルバで維持されます。
Glue Strength
接着ボンドを引き離すのに必要な累積されたフォースの強さ。 -1の値は、接着ボンドがまったく引き離されなくなります。 0の値は、接着ボンドが最初の外部フォースによって引き離されます。 接着ボンドが引き離されると、Glue Impulseがリセットされ、そのフレームが再シミュレーションされます。
Tip
最大のGlue Impulseを見つけるには、値を-1にして実行し、そのGlue Impulseのピークを確認します。
Note
Impact値は、各サブピースのMassとそのVelocityで決まります。どちらも各オブジェクトのPositionサブデータで見るけることができます。 各RBDオブジェクトにDetailアトリビュートを追加し、そのアトリビュートにMass x Velocityを設定するSOP Solverを作成することができます。 mass*velがImpactフォースより大きくなると、Releaseを持ちます。
Glue Impulse HalfLife
Glue Impulseが半分に衰退する秒数。 接着されたオブジェクトが当たると、そのオブジェクトがGlue Impulseフォースを累積します。 これは、そのフォースの衰退の速さを制御します。
Internal Glue ¶
Glue Strength
内部接着ボンドを引き離すのに必要な累積されたフォースの強さ。 -1の値は、接着ボンドがまったく引き離されなくなります。 0の値は、接着ボンドが最初の外部フォースによって引き離されます。
Glue Impulse HalfLife
Glue Impulseが半分に衰退する秒数。 接着されたサブオブジェクトが当たると、そのオブジェクトがGlue Impulseフォースを累積します。 これは、そのフォースの衰退の速さを制御します。
Collisions ¶
Volume ¶
Use Volume Based Collision Detection
このオプションを有効にすると、RBD solverが衝突検出に対して、このオブジェクトのボリューム表現を使用します。
ボリューム表現は、一時的な相互貫通に寛容的なので、非常に高速な衝突検出と非常に強固な結果になります。 このデメリットは、ボリューム表現を使用すると、グリッドや中が空洞の球を表現することができないことです。
このトグルをオフにすると、衝突検出がボリュームベースではなくジオメトリベースになります。 この場合、衝突コードは、時間軸で移動するオブジェクトの軌跡を追跡して、衝突を判定します。 これにより、ボリュームベースの衝突検出よりも正確な結果を取得することができます。 これを動作させるには、 Cache Simulation を必ずDOPネットワーク上で有効にしてください。
Collision Guide
衝突検出に使用される内部表現が可視ジオメトリに変換されます。 これは、衝突検出での問題をデバッグするのに役に立ちます。
このパラメータは、ガイドジオメトリのカラーを制御します。
Mode
Ray Intersect
ジオメトリと光線の交差を使用して、ジオメトリの正確なボリューム表現を作成します。
Meta Balls
光線を使用してポイントが内側/外側を判断するのではなく、メタボールフィールドを評価します。
これは、メタボールだけで構成されているジオメトリの Laser Scanning を無効にして使用してください。
Implicit Box
ジオメトリの境界ボックスを計算して、その境界ボックスを正確に満たすボリューム表現を作成します。 このボックスは常にDOPオブジェクトのローカル空間と座標軸が平行で、Positionデータで設定します。
Note
Use Object Transform は、オブジェクトトランスフォームをジオメトリのトランスフォームにベイクして、 Position Data をワールド空間のままにします。 これをオフにすると、オブジェクトトランスフォームが Position Data に送られ、オブジェクトのローカル空間の向きが変わります。
Implicit Sphere
ジオメトリの境界球を計算して、その境界球を正確に満たすボリューム表現を作成します。
Implicit Plane
ジオメトリの境界ボックスを計算して、その一番小さい軸方向にそのボックスを分割するボリューム表現を作成します。 その平面より下側がすべて内側、上側がすべて外側になります。
このモードは、グランド平面または移動不可の壁を作成するのに主に役に立ちます。
Minimum
サーフェスまたはカーブまでの距離を使用します。 Offset Surfaceが0なら、ボリュームは作成されません。 プラスのOffset Surfaceはオブジェクトのサーフェスからオフセットしたボリュームを作成します。 これは、薄いオブジェクトまたはワイヤーを実際のソリッドに変換するのに役に立ちます。
Volume Sample
このモードでは分割数が無視され、その代わりに、ジオメトリ内の1番目のボリュームまたはVDBのプリミティブから分割数が計算されます。 ソースボリュームのボクセルサイズに合うように分割数が計算されます。 ボリュームプリミティブはそのままサンプリングされて、符号付き距離フィールドとして扱われます。 これは、ソースがIso OffsetまたはVDB From PolygonsのSOPの出力であることが前提です。 正しい符号付き距離フィールドでない場合、RBD衝突で異常な事が起きる場合があります。
Division Method
Non Square を選択した場合、指定したサイズが指定したボクセル分割数に分割されます。 それらのボクセルの辺が同じになっていないと、歪んだシミュレーションになる可能性があります。
軸を指定した時、その軸が分割数を決める基準と見なされます。 選択した軸のサイズで均一に分割することでボクセルサイズが決まります。 他の軸の分割は、必要なサイズに合うように一番近い整数の複数値に調整されます。
最終的には、非選択の軸方向のサイズが均一なボクセルサイズになるように変わります。 Max Axis オプションを選択した場合、その最大サイズの軸が使用されます。
By Size を指定した時、 Division Size によって、指定したサイズのボックスに合うボクセル数が計算されます。
Divisions
このオブジェクトのボリューム表現の作成を制御します。 これは、目的のジオメトリの特徴をキャプチャーするのに十分な細かさに設定してください。
Uniform Divisions
ボクセルグリッドのキー軸の解像度。これは、1つのパラメータで全体の解像度を制御して、均一なボクセルを保持することができます。 Uniform Voxels オプションには、参照として使用する軸を指定します。通常では、最大軸を使用するのは一番安全です。
Division Size
ボクセルの明示サイズ。ボクセル数は、このサイズのボクセルの整数の数を、指定した境界に合わせることで計算されます。
Laser Scan
Laser Scanモードでは、主軸に沿って光線を送信することでボリューム表現が構築されます。 一番近い交差と一番遠い交差だけが使用されます。 それらの2つの交差のポイント間の空間を内側、それ以外を外側として分類されます。
Laser Scanモードは、法線の定義が不完全だったり、自己交差があったり、完全に密閉していないジオメトリでも動作します。 このデメリットは、内部の特徴を検出できないので、それを表現することができないことです。
Laser Scanモードをオフにしても、主軸に沿って光線を送信することでボリューム表現がまだ構築されます。 とはいえ、すべての交差が検索されます。各交差のペアをテストして、そのセグメントが内側か外側か確認します。 これは、上手く定義されたジオメトリの法線(つまり、自己交差のないマニフォールド)と密閉したジオメトリが頼りになります。 しかし、穴のある複雑な形状を正確に表現することができます。
Fix Signs
非常にうまく作成されたジオメトリでさえも、不正確な数値が間違えた符号を選択してしまう可能性があります。 このオプションは、不正な符号を探すためにボリューム表現をポスト処理します。 通常では漏れ口を塞いだり、穴を埋めることでそれらの符号を正しくします。
これは時間がかかり、問題なくボリューム表現が生成されるのがわかっていれば、オフにすることができます。
Force Bounds
Fix Signs メソッドだけが、平滑化し、通常では符号反転を軽減します。 しかし、不正な符号の領域がボリューム表現の境界で安定化させることができます。 このオプションは、境界上のすべてのボクセルを外側としてマークします。 Fix Signs メソッドは、間違えて安定化させることはほぼないです。
Invert Sign
中が空洞のボックスが欲しい場合、1つのメソッドが他のボックスの内側に1つのボックスを構築して、 Laser Scan を使用しないことです。 より強固なメソッドは、内側のボックスを指定して、符号反転を使用することです。 これは、ボックスの外側のすべてを内側と見なし、より強固な Laser Scan メソッドを使用することができます。
Sign Sweep Threshold
Fix Signs 処理が完了した後でも、SDF内に不正な領域がまだ存在している可能性があります。 大きなブロックは、安定化されて、SDFから突き出る可能性があります。 2番目のSign Sweep Passを実行すれば、それらのブロックの軽減を試みることができます。
Sign Sweep Thresholdは、不正と見なされる符号の変化に対して起こす飛躍の大きさを制御します。 SDFの値が、この閾値とセル幅を乗算した値よりも大きく変化した場合、その値が無効な符号の変化と見なされます。 元のジオメトリは、光線と交差することで内側/外側が判断され、その結果を使用して、どの符号が正しいのか判断されます。 正しい符号は、モデルを通じて伝搬します。
Max Sign Sweep Count
Sign Sweepは、符号が反転しなくなるまで(つまり、すべての変化が閾値以内にある)または、この最大値に到達するまで繰り返されます。 Sign Sweep Thresholdが非常に小さいと、その処理が収束しなくなることがあります。 反対に大きいと、非常に速く収束します。
Offset Surface
符号付き距離フィールドをオフセットする一定量。 これを使えば、オブジェクトを若干膨張または収縮させることができます。 オリジナルのサイズから大きく膨張させることはしないでください。そうしないと、それが符号付き距離フィールドの境界ボックスに当たってしまいます。
Tolerance
これには、SDFを計算する時の光線の交差に使用する許容値を指定します。 この値は、ジオメトリのサイズで乗算され、スケールには依存していません。
Proxy Volume
SDFの計算をするベースジオメトリの代わりに使用するジオメトリ。 Volume Sample モードの場合、このジオメトリにはボリュームまたはVDBを指定して、キャッシュデータに対してより良い制御をすることができます。
File Mode
このオブジェクトのボリュームデータに対するオペレーションを制御します。
Automatic
指定した名前のファイルが既に存在すれば、そのファイルがディスクから読み込まれます。 そうでないなら、このページ上の他のパラメータに基づいてボリュームが作成され、指定したファイルがディスクに作成されます。 このファイルは、アプリケーションを終了しても自動的に削除されません。
Read Files
指定したファイルがディスクから読み込まれます。
Write Files
このページ上の他のパラメータに基づいてボリュームが作成され、指定したファイルがディスクに作成されます。
No Operation
ファイルの読み込みまたは書き込みを行ないません。このページ上のパラメータは、ボリュームの作成に使用されます。
File
上記の File Modes の選択に応じてアクセスするファイルの名前。 このファイルは常に.simdataファイルフォーマットです。.bgeo拡張子で保存しても、.bgeoファイルに保存 されません 。
Surface ¶
Surface Representation
ボリュームに対する衝突ポイントやボリュームに対する衝突エッジを選択します。
オプションで、nopointvolume
とnoedgevolume
のPointアトリビュートをジオメトリに追加することで、個々のポイント/エッジが、ボリュームオブジェクトに対する衝突検出に関わらないようにさせることができます。
端点を無効にすれば、そのエッジも無効になります。
Convert To Poly
これは、ジオメトリ内のプリミティブ(例えば、球)からポリゴンへの変換を有効にします。 ポリゴンのみが衝突検出に使用されます。
Triangulate
このフラグをオンにすると、ジオメトリ内のポリゴンが三角形化されます。
LOD
これは、三角形化のLevel Of Detailを制御します。UとVの方向でのポイント密度を指定するために使用します。
Add Barycenters
各ポリゴンの重心をポイントまたはエッジ(プリミティブの頂点と接続)として衝突検出に含めることができます。
Bullet Data ¶
Show Guide Geometry
有効にすると、 Collision Padding を含むオブジェクトの衝突形状の可視化が表示されます。これは衝突検出の問題をデバッグするのに役に立ちますが、通常ではオブジェクトのジオメトリだけの表示よりも遅いです。
Color
ガイドジオメトリのカラー。
Deactivated Color
オブジェクトが移動せず、Bullet Solverによって非活動化された時のガイドジオメトリのカラー。
Geometry Representation
オブジェクトを表現するためにBulletエンジンで使用される形状。 Show Guide Geometry パラメータを使えば、この衝突形状を可視化することができます。
Convex Hull
オブジェクトのデフォルトの形状。Bullet SolverはジオメトリポイントのConvex(凸)ハルから衝突形状を作成します。
Concave
Bullet Solverは、ジオメトリをポリゴンに変換し、それらの三角形からConcave(凹)衝突形状を作成します。 この形状は、トーラスや中空管などのConcave(凹)オブジェクトをシミュレーションする時に役に立ちます。 しかし、必要な時にだけConcave(凹)表現を使用するようにしてください。その理由は、 Convex Hull 表現の方が通常ではパフォーマンスが良いからです。
Box
オブジェクトの境界ボックス。
Capsule
オブジェクトの境界カプセル。
Cylinder
オブジェクトの境界円柱。
Compound
Bulletプリミティブ(ボックス、球、円柱を含む)で構成された複雑な形状を作成します。Bake ODE SOPを使用する必要があります。
Sphere
オブジェクトの境界球。
Plane
静的な地面。
Create Convex Hull Per Set Of Connected Primitives
有効にすると、 Geometry Representation が Convex Hull の時、Bullet Solverは、ジオメトリ内の繋がったプリミティブのセット毎に 別々のConvex Hull衝突形状を含んだ複合形状を作成します。
AutoFit Primitive Boxes, Capsules, Cylinders, Spheres, or Planes to Geometry
有効にすると、 Position , Rotation , Box Size , Radius , Length の値の代わりに、オブジェクトのGeometryサブデータが解析されます。
Geometry Representation が Box , Capsule , Cylinder , Sphere , Plane のどれかに設定されている時、ジオメトリ境界を使用して、形状を作成します。
Position
Bullet空間でのオブジェクト形状の位置。 このパラメータは、 Geometry Representation が Box , Sphere , Capsule , Cylinder , Plane のどれかに設定されている時、 且つ、 AutoFit Primitive Boxes, Capsules, Cylinders, Spheres, or Planes to Geometry が無効の時に利用可能です。
Rotation
Bullet空間でのオブジェクト形状の向き。 このパラメータは、 Geometry Representation が Box , Capsule , Cylinder , Plane のどれかに設定されている時、 且つ、 AutoFit Primitive Boxes, Capsules, Cylinders, Spheres, or Planes to Geometry が無効の時に利用可能です。
Box Size
オブジェクト形状の半分の大きさ。 このパラメータは、 Geometry Representation が Box に設定されている時、 且つ、 AutoFit Primitive Boxes, Capsules, Cylinders, Spheres, or Planes to Geometry が無効の時に利用可能です。
Radius
球形状の半径。 このパラメータは、 Geometry Representation が Sphere , Capsule , Cylinder のどれかに設定されている時、 且つ、 AutoFit Primitive Boxes, Capsules, Cylinders, Spheres, or Planes to Geometry が無効の時に利用可能です。
Length
Y方向でのカプセルまたは円柱の長さ。 このパラメータは、 Geometry Representation が Capsule 、 Cylinder のどれかに設定されている時、 且つ、 AutoFit Primitive Boxes, Capsules, Cylinders, Spheres, or Planes to Geometry が無効の時に利用可能です。
Collision Padding
形状間の隙間埋め距離。このパラメータは、衝突検出の信頼性とパフォーマンスを改善するためにBulletエンジンで使用されます。 シーンのスケールに応じて、この値をスケールする必要があります。このパラメータは、衝突形状のサイズを大きくするので、衝突形状が大きくならないように Shrink Collision Geometry を有効にすることを推奨します。
このパラメータは、 Geometry Representation が Plane に設定されている時は利用不可です。
Shrink Collision Geometry
有効にすると、 Collision Padding がオブジェクトの有効サイズを大きくしないように、衝突ジオメトリが収縮されます。
このパラメータは、初期の段階で密接に詰め込まれた衝突形状がお互いに貫通しないようにシミュレーションのパフォーマンスを改善することができます。 また、 Collision Padding で引き起こされたオブジェクト間の隙間を除去します。
Geometry Representation が Box , Capsule , Cylinder , Compound , Sphere のどれかに設定されている時、 各プリミティブの半径/長さが、 Shrink Amount によって小さくなります。
Geometry Representation が Convex Hull に設定されている時、ジオメトリ表現の各ポリゴンが、 Shrink Amount によって内側に収縮します。
このパラメータは、 Geometry Representation が Concave 、 Plane のどれかに設定されている時は利用不可です。
Shrink Amount
Shrink Collision Geometry によるサイズ変更の度合い。 デフォルトでは、この値は、 Collision Padding と同じなので、 衝突形状を収縮したサイズ( Collision Padding を含む)は、オブジェクトのジオメトリと同じサイズになります。
このパラメータは、 Geometry Representation が Concave 、 Plane のどれかに設定されている時は利用不可です。
Add Impact Data
有効な時、シミュレーション時に発生するImpactが Impacts または Feedback のデータ内で並べ替えられます。 このオプションを有効にすると、シミュレーション時間とメモリ使用量が増える場合があります。
Impacts と Feedback のデータは、DOPオブジェクト上にサブデータとして追加されます。 タイムステップ内で少なくとも1つのImpactが存在すれば、Detailsビュー内でそれらのデータを確認することができます。
Feedback データは、実質的には Impacts データと同じですが、別々のソルバで計算されている複数のオブジェクト間でDOPネットワーク内の相互の作用が存在する時に使用されます。 例えば、RBDオブジェクトとFLIP流体オブジェクトを相互に作用させる場合、DOPネットワークは、その相互作用を解決するために複数のフィードバックループを実行し、 Feedback データを使用して、ソルバ間で Impacts データを渡します。
Enable Sleeping
有効にすると、オブジェクトが再び動くまで、移動しないオブジェクトのシミュレーションを無効にします。 オブジェクトが移動していないかどうか判断するには、線形速度と回転速度の閾値が使われます。 Display Geometry チェックボックスをオフにすれば、Guide Geometryのカラーが Color から Deactivated Color に変化することが確認できます。
Linear Threshold
オブジェクトの線形速度の停止と見なす閾値。オブジェクトの線形速度が、時間周期に対して、この閾値よりも小さければ、オブジェクトが停止していると見なされます。
Angular Threshold
オブジェクトの回転速度の停止と見なす閾値。オブジェクトの回転速度が、時間周期に対して、この閾値よりも小さければ、オブジェクトが停止していると見なされます。
Physical ¶
Compute Mass
質量をオブジェクトのボリューム表現と接着されたサブオブジェクトから自動的に計算するかどうか決めます。
Density
オブジェクトの質量は、そのボリュームとその密度を乗算した値です。これは、 Compute Mass がオンになっている場合にのみ使われます。
Mass
オブジェクトの絶対質量。これは、 Compute Mass がオフになっている場合にのみ使われます。
Rotational Stiffness
オブジェクトがかすった時、そのオブジェクトにはスピンがかかることが多いです。 そのスピンの度合いは、オブジェクトの形や質量の分布( つまり 慣性テンソル )に依存します。 Rotational Stiffness は、それに適用されるスケール係数です。 値が高いほど、オブジェクトにスピンがかかりにくくなり、値が低いほど、スピンしやすくなります。
Bounce
オブジェクトの弾力性を指定します。 Bounceが1.0の2つのオブジェクトが衝突すると、それらのオブジェクトはエネルギーを消失せずに跳ね返ります。 Bounceが0.0の2つのオブジェクトが衝突すると、それらのオブジェクトは停止します。
Bounce Forward
オブジェクトの接線方向の弾力性。Bounce Forwardが1.0の2つのオブジェクトが衝突すると、それらの接線方向の動きは、摩擦からの影響のみを受けます。 Bounce Forwardが0.0の2つのオブジェクトが衝突すると、それらの接線方向の動きは、一致します。
Friction
オブジェクトの摩擦係数を指定します。 0の値は、摩擦なしを意味します。
これは、接線Velocityが衝突と静止接触で影響を受ける強さを制御します。
Dynamic Friction Scale
滑るオブジェクトは、静止しているオブジェクトよりも摩擦係数が低いです。このパラメータは、2つのオブジェクトに関連したスケール係数です。 これは摩擦係数ではなくて、0から1の間のスケールです。
1の値は、動摩擦と静摩擦が同じになることを意味します。0の値は、静摩擦を越えると、オブジェクトが摩擦なしで作用することを意味します。
Temperature
Temperatureはオブジェクトの温度をマークします。このパラメータは、燃料の着火ポイントまたは浮力計算のためにガスシミュレーションで使用します。
これは現実世界の温度スケールとは直接関係しないので、環境温度は通常では0と見なされます。
出力 ¶
First
このノードで作成されたRBDオブジェクトは、単一出力を通して送り出されます。
ローカル変数 ¶
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単位分移動させます。
Examples ¶
このサンプルでは、RBD Glueオブジェクトからアニメーションキーフレームデータを取り込んで、 それを立方体のシミュレーションにブレンドして、衝撃によって複数の破片に砕く方法を説明しています。
このサンプルでは、RBD Glue Objectノードを使って、 衝突で自動的に砕けるRBDオブジェクトを作成する方法を説明しています。 さらに、モデルをこのようなシミュレーションで適切に砕くテクニックも説明しています。
このサンプルでは、RBD Stateノードを使って、接着したオブジェクトの分解を制御する方法を説明しています。
たくさんの球を接着してトーラス形状を作成し、さらに、水平に移動する平面を追加しています。 この平面が通過した後の球が分解されていきます。
このサンプルでは、RBD Stateノードを使って、接着したオブジェクトの分解を制御する方法を説明しています。
平面が移動すると、破壊した円柱が分解されていきます。
See also |