On this page |
|
RBD Bullet Solver SOPは、Bulletシミュレーションの実行を簡素化したDOPネットワークのラッパーです。 たいていのRBD SOPsと同様に、3つの入力SOPをベースに、追加で2つの入力を受け取ります。
1番目の入力はレンダージオメトリです。 3番目の入力を接続しなかった場合は、この入力がシミュレーションジオメトリとして使用されます。
2番目の入力は拘束ジオメトリで、シミュレーションする破片間の動力学的な拘束関係を具現化するために使用します。
この拘束ジオメトリは、RBD Material Fracture SOPを使ってジオメトリを粉砕させた時に作成されます。
または、
RBD Constraints From Lines、
RBD Constraints From Curves、
RBD Constraints From Rulesなどの方法を使って明示的に作成することもできます。
これらの拘束ジオメトリには、それを各破片に繋げる
name
PointアトリビュートとConstraint Relationship系DOPのデータ名に合致したconstraint_name
Primitiveアトリビュートが必要で、シミュレーションの進行中の挙動を定義するためのPrimitiveアトリビュートを追加することができます。
他にも、RBD Constraint Properties SOPを使用することで、それらのPrimitiveアトリビュートをセットアップすることができます。
3番目の入力はプロキシジオメトリで、レンダージオメトリを簡略化した表現です。 プロキシジオメトリは、シミュレーションを高速化するのに非常に適しています。 ここに接続したジオメトリがシミュレーションジオメトリとして使用されます。
4番目の入力にはコリジョンジオメトリを接続します。
パックジオメトリが認識されるので、RBD Configure SOPを使って設定することでパックジオメトリの挙動を個々に駆動させることができます。
一部の破片をアニメーションさせ、一部の破片を変形するように設定することができると同時に、他の破片が球をジオメトリ表現として使用するように設定することができます。
5番目の入力にはガイドジオメトリを接続します。
ここには、パックジオメトリ、または、接続性から複数の部分に分割して別々の破片にパックすることができるメッシュを接続することができます。
シミュレーションジオメトリがパックされていない場合、シミュレーション用に内部的にパックフラグメントに変換されます。
RBD Configure SOPを使用することで、シミュレーションジオメトリとコリジョンジオメトリをパックしてアトリビュートを設定して、色々な
Bulletオブジェクトの挙動を駆動させることができます。
詳細は、ガイドシミュレーションのヘルプのページを参照してください。
Note
ガイドジオメトリは、個々の破片のトランスフォーム行列を使って、ガイドピースを駆動させます。
ガイドジオメトリがパックオブジェクトの場合は、Intrinsicトランスフォームが使用されます。
アンパックされたジオメトリは、キャプチャ開始フレーム時のname
アトリビュート毎(これが利用できなければ、接続性毎)にパックした後にトランスフォームされます。
そのため、ガイドジオメトリとしての1枚の変形メッシュは、ガイドが期待通りに動作する要件を満たすために、まず最初に色々なクラスタに分解する必要があります。
このソルバの中に入るとDOPノードを追加することができるので、特別なフォースや他のSOP Solver DOPを適用することができます。 これらのノードチェーンがRigid Body Solver DOPのPre-Solve入力に送られてシミュレーションの挙動がカスタマイズされ、このノードのデフォルト機能が拡張されます。
collisionignore
を使用する場合、シミュレーションジオメトリオブジェクトをrbd_object
、4番目の入力のオブジェクトをcollision_object
、生成された地面またはHeight Fieldをgroundplane
として参照することができます。
Impactを追加すると、Object Merge SOPを使ってRBD Bullet Solverの中のOUT_IMPACT_POINTS
という名前のNullを取得することで、それらのImpactポイントを利用することができます。
ほとんどのビジュアライザオプションは、シミュレーションから即座にフィードバックを得ることができ、拘束を表示させることで、分離させる閾値を調整するのに役立ちます。
さらに、ノードステートがアクティブな時にビューポート内で右クリックして、コンテキストメニューからビューポートインスペクターにアクセスすることができます。
このビューポートインスペクターは、単にマウスカーソルを置くだけで特定のプリミティブのアトリビュートを検査することができます。
ビューポートインスペクターから拘束情報を取得するには、そのコンテキストメニューの Output for View Flags でView Constraints
をクリックします。
nameアトリビュートタイプ
RBD Bullet Solver SOPが一貫して同じname
アトリビュートタイプを受け取ることは非常に重要です。
ポイントとプリミティブのname
アトリビュートを混在させてしまうと、ソルバがこの不一致を解決できる見込みはなく、完全に失敗するか、または誤った結果が得られます。
name
Primitiveアトリビュートに関しては、常に入力ジオメトリをチェック(ノード上で中クリック)してください。
name
Pointアトリビュートが表示されるのは、パックフラグメントを扱っている場合のみです。
この場合、name
Pointアトリビュートが必要です。
name
Pointアトリビュートとname
Primitiveアトリビュートを両方使用する場合、または、一部のジオメトリにname
アトリビュートがあって他のジオメトリにname
アトリビュートがない場合には注意してください。
Unpack SOPまたは
RBD Unpack SOPを使ったアンパックは、PrimitiveアトリビュートよりもPointアトリビュートが優先されます。
これらのアトリビュートタイプを混在させてマッチングさせた場合や、ポイント/プリミティブに対して一貫性なく
name
アトリビュートを付けている場合や、一部のジオメトリにname
アトリビュートがまったくない場合には、
すべてのプリミティブの名前が消えてしまって最終的には空っぽの文字列になったり、または、曖昧なデータセットになってしまう可能性があります。
RBD Bullet Solver SOPは、ポイントまたはプリミティブのどちらかで空っぽの名前が見つかれば、それとは別のタイプから名前を取得することを試みます。 とはいえ、このような状況は回避するべきです。
ビジュアライザとビューポートツール
RBD Bullet Solverには、RBDシミュレーションの調整とデバッグをするのに役立つビジュアライザがいくか用意されています。 ノードステートがアクティブな時、色々なガイドジオメトリ(Bulletジオメトリ表現、ガイドプレビューなど)を表示したり、拘束情報を最小/最大値の情報付きでヒストグラムとして表示したり、マウスカーソル下にあるプリミティブのアトリビュート値を確認できるようにビューポートインスペクターを有効にすることができます。
ビューポートインスペクター
ビューポートインスペクターは、マウスカーソル下にある出力プリミティブのアトリビュート値を表示します。
色々な出力の情報を確認するには、Bullet Solverノードのメニューの Flags の Output for View を目的の出力に切り替えます。
例えば、拘束に関する情報を確認したいのであれば、Bullet Solverノードの Output for View を"Constraint Geometry"に切り替えます。
ビューポート内で"1", "2", "3"のホットキーを使用することで、それぞれ"Geometry", "Constraint Geometry", "Proxy Geometry"に切り替えることができ、
"4"を押すと、それらのフラグ間を切り替えることができます。
DOPネットワークで生成されたアトリビュートを確認したいのであれば、まず最初にそれらのアトリビュートをジオメトリに転送する必要があります。 "Advanced"タブの"Output"セクションで、転送したいアトリビュートを選択して、 Transfer to Geometry または Transfer to Proxy Geometry のどれかを有効にします。 Visualize タブの Inspector セクションにある Attributes パラメータで表示させたい情報のアトリビュートを指定することができます。
パラメータ
Reset Simulation
シミュレーションキャッシュ全体をクリアします。
Start Frame
シミュレーションを開始するHoudiniプレイバー上のフレーム番号。
Solver
Time Scale
Bullet Solverの実質の計算時間をスケールします。 これを使用することで、Bullet Solverの物理計算がHoudiniプレイバーとは異なるレートで実行することができます。 値を2にすると、オブジェクトが2倍高速で落下し、0.1にすると10分の1の速度に低下します。
Substeps
Bulletが内部的に使用するシミュレーションステップ毎のサブステップ数。 この数を上げると、シミュレーションの精度が上がります。
Bulletのドキュメントより:
maxSubSteps = substeps + 1 fixedTimeStep = timeStep / substeps
Houdiniは、Substeps > 1の時の分割の丸め誤差を考慮して、maxSubSteps
に1を加えます。
Stepping the Worldを参照してください。
Constraint Iterations
反復回数が多いほど、拘束と衝突を制御する精度が良くなります。
上級者向けの拘束ソルバ設定を参照してください。
Bullet Object
Emits RBDs
有効にすると、現行フレームで利用可能な入力シミュレーションジオメトリと拘束ジオメトリがシミュレーションに追加されます。
それらの名前の後に"_" + int(frame * 100)
接尾辞が付きます。
例えば、フレーム1でのpiece0-1
という名前はpiece0-1_100
に変更され、フレーム2.5でのpiece0-1
という名前はpiece0-1_250
に変更されます。
Overwrite Attributes from SOP
有効にすると、フレーム毎に更新されるシミュレーションジオメトリ上のPointアトリビュートのリストを指定します。
name
Pointアトリビュートは、SOPジオメトリから該当するポイントを検索する際に使用されます。
Bullet Data
Collision Padding
形状間の安全距離。この距離は、コリジョン検出の信頼性とパフォーマンスを良くするためにBulletエンジンで使用されます。 あなたのシーンのスケールに応じて、この値をスケールする必要があります。 この距離は、コリジョン形状のサイズを大きくするので、コリジョン形状が膨張しないように Shrink Collision Geometry を有効にすることを推奨します。
このオプションは、 Plane ジオメトリ表現では利用不可です。
Linear Threshold
オブジェクトの線形速度に対するスリープ閾値。 オブジェクトの線形速度が一定の時間でこの閾値未満になると、そのオブジェクトが移動していないものとして扱われます。
Angular Threshold
オブジェクトの角速度に対するスリープ閾値。 オブジェクトの角速度が一定の時間でこの閾値未満になると、そのオブジェクトが移動していないものとして扱われます。
Physical
Density
オブジェクトの質量は、体積と密度の乗算で決まります。
Rotational Stiffness
オブジェクトは、かすった打撃を受けると、たいていの場合にはスピンします。 スピンする回転量は、オブジェクトの形状と質量分布、いわゆる 慣性テンソル によって異なります。
Rotational Stiffness は、スピンする回転量に適用されるスケール係数です。 この値が高いほどオブジェクトが回転しにくくなり、低いほど回転しやすくなります。
Bounce
オブジェクトの弾力性。Bounceが1.0の2つのオブジェクトが衝突すると、それらのオブジェクトはエネルギーを消失せずに跳ね返ります。 Bounceが0.0の2つのオブジェクトが衝突すると、それらのオブジェクトは停止します。
Friction
オブジェクトの摩擦係数。0の値は、摩擦なしを意味します。
これは、接線Velocityが衝突と静止接触で影響を受ける強さを制御します。
Collisions
Use Collisions
コリジョンオブジェクトを有効にします。
Bullet Data
Geometry Representation
Bulletエンジンがオブジェクトを表現する際に使用する形状。
Convex Hull
オブジェクトのデフォルト形状。
Bullet Solverは、ジオメトリポイントの凸ハルからコリジョン形状を作成します。
Concave
Bullet Solverは、ジオメトリをポリゴンに変換し、その結果の三角形から凹コリジョン形状を作成します。
この形状は、ドーナツ形状または中空管といった凹オブジェクトを模倣する時に役立ちます。
しかし、通常では Convex Hull の方がパフォーマンスが良いので、必要な時にのみ Concave を使用することを推奨します。
Box
オブジェクトの境界ボックス。
Capsule
オブジェクトの境界カプセル。
Cylinder
オブジェクトの境界円柱。
Compound
Bulletプリミティブ(ボックス、球、円柱)で構成した複合形状を作成します。
Bake ODE SOPを使用する必要があります。
Sphere
オブジェクトの境界球。
Plane
静的な地面。
Initial Object Type
オブジェクトの初期状態を指定します。
active
、animated
、deforming
のPointアトリビュートを使用することで、オブジェクト単位で値を可変させることができます。
アニメーションオブジェクトと変形オブジェクトに関しては、name
Pointアトリビュートを使って、 SOP Path から該当するポイントを検索することができます。
Create Active Objects
このオブジェクトはシミュレーションされ、シミュレーション内の他のオブジェクトに反応します。
Create Static Objects
このオブジェクトは動かなくなり、シミュレーション内の他のオブジェクトに反応しません。
Create Animated Static Objects
このオブジェクトのトランスフォームはタイムステップ毎に SOP Path から更新されますが、このオブジェクトはシミュレーション内の他のオブジェクトに反応しません。
Create Deforming Static Objects
このオブジェクトのコリジョン形状はタイムステップ毎に SOP Path から再構築されますが、このオブジェクトはシミュレーション内の他のオブジェクトに反応しません。
Create Deforming Active Objects
このオブジェクトはシミュレーションされ、シミュレーション内の他のオブジェクトに反応し、そのコリジョン形状もタイムステップ毎に SOP Path から再構築されます。
Collision Padding
形状間の安全距離。この距離は、コリジョン検出の信頼性とパフォーマンスを良くするためにBulletエンジンで使用されます。 あなたのシーンのスケールに応じて、この値をスケールする必要があります。 この距離は、コリジョン形状のサイズを大きくするので、コリジョン形状が膨張しないように Shrink Collision Geometry を有効にすることを推奨します。
このオプションは、 Plane ジオメトリ表現では利用不可です。
Physical
Bounce
オブジェクトの弾力性。Bounceが1.0の2つのオブジェクトが衝突すると、それらのオブジェクトはエネルギーを消失せずに跳ね返ります。 Bounceが0.0の2つのオブジェクトが衝突すると、それらのオブジェクトは停止します。
Friction
オブジェクトの摩擦係数。0の値は、摩擦なしを意味します。
これは、接線Velocityが衝突と静止接触で影響を受ける強さを制御します。
Ground
Add Ground Plane
None
地面を追加しません。
Ground Plane
シミュレーションに地面を追加します。
Height Field
シミュレーションにHeight Field静的オブジェクトを追加します。
Height Field
Height FieldジオメトリのSOPパス。
Use Deforming Geometry
変形するHeight Fieldジオメトリを有効にします。
Initial State
Ground Position
地面の中心の位置。
Rotation
地面の向き。
Physical
Bounce
オブジェクトの弾力性。Bounceが1.0の2つのオブジェクトが衝突すると、それらのオブジェクトはエネルギーを消失せずに跳ね返ります。 Bounceが0.0の2つのオブジェクトが衝突すると、それらのオブジェクトは停止します。
Friction
オブジェクトの摩擦係数。0の値は、摩擦なしを意味します。
これは、接線Velocityが衝突と静止接触で影響を受ける強さを制御します。
Dynamic Friction Scale
滑るオブジェクトは、静止しているオブジェクトよりも摩擦係数が低いです。このパラメータは、2つのオブジェクトに関連したスケール係数です。 これは摩擦係数ではなくて、0から1の間のスケールです。
1の値は、動摩擦と静摩擦が同じになることを意味します。0の値は、静摩擦を越えると、オブジェクトが摩擦なしで作用することを意味します。
Forces
Gravity
単位質量オブジェクトに適用するフォース量。 フォースは質量でスケールされるので、オブジェクトは、この加速度を受けます。
単位にメートル、秒、キログラムを使用していれば、地球の重量に適した値は-9.81です。
単位にフィート、秒、ポンドを使用していれば、地球の重量に適した値は-32です。
Add Drag
POP Drag DOPを有効にします。
Drag
Wind Velocity
これは、パーティクルが引っ張られる速度です。
ゼロにすると、パーティクルが停止します。
それ以外の値にすると、パーティクルが、この風の速度まで加速します。
Add Drag Spin
POP Drag Spin DOPを有効にします。
Drag Spin
Axis Relative to Particle’s Orientation
指定したゴール軸は、パーティクル自身のリファレンスフレームへ回転されます。 したがって、(0, 1, 0)の値は、ワールド空間ではなくパーティクルの空間の上方向になります。
Goal Axis
Rest(安定)状態になった時にパーティクルがスピンする目的の軸。
Goal Spin Speed
Rest(安定)状態になった時にパーティクルが指定した軸でスピンする速さ(度/秒)。 これをゼロにすると、スピンに抵抗を加えて停止させます。 プラスの値にすると、スピンの速さがこの値に一致するまでスピンの速さを上下させます。
Spin Resistance
パーティクルがGoal Spin Speedになるまでの速さ。
Constraints
Constraints
Glue
Glue Constraint Relationship DOPを参照してください。
Soft
Bullet Soft Constraint Relationship DOPを参照してください。
Hard
Hard Constraint Relationship DOPを参照してください。
ConeTwist
Cone Twist Constraint Relationship DOPを参照してください。
Slider
Slider Constraint Relationship DOPを参照してください。
Breaking Thresholds
Overwrite with SOP
このフラグは、設定される度にネットワークを再インポートするので、完全にアニメーションする拘束の挙動が可能です。
Breaking
Constraint Names
拘束の切断が計算される拘束名。
Note
Glue接着は、暗黙的に切断計算される唯一の拘束なので、デフォルトの拘束名には追加されていません。
Group
切断計算で評価される拘束プリミティブ。
Mode
Delete Constraints
指定した閾値よりも大きいアトリビュート値を持った拘束ジオメトリが削除されます。
Switch to Next Constraint
指定した閾値よりも大きいアトリビュート値を持った拘束ジオメトリは、あればnext_constraint_name
に切り替わり、なければ削除されます。
At Frame
指定したフレームで拘束を切断します。
From Frame
切断は、指定したフレーム以降でのみ評価されます。
Angle Threshold
この角度(単位はラジアン)を超えると拘束が切断されます。
Var
ユーザーの加減で割合を増減させることができます。 例えば、閾値を1000、Varを0.1に設定すると、その閾値は900から1100の範囲にばらつきます。 Varを1に設定すると、0から2000の範囲にばらつきます。
Scaling
指定したアトリビュート値で閾値をスケールします。
Angle Attribute
Angle Thresholdに乗算させるアトリビュートの名前。
Update from Input
入力の拘束ジオメトリからアトリビュート値を更新します。 これによって、ジオメトリアトリビュートによって閾値をもっと細かくアニメーションさせることができます。
Distance Threshold
アンカーポイント間の距離がこの距離よりも離れると拘束が切断されます。
Note
長い拘束が自動的に切断されてしまうのを回避できるようにするために、この拘束距離からrestlength
分だけ減算されます。
restlength
を基準とした距離閾値を指定したいのであれば、 Distance Threshold を1 + <factor>に設定し、 Scale by Attribute を有効にし、 Distance Attribute にrestlength
を設定してください。
例えば自然長から10%伸びた拘束を自動的に切断するには、 Distance Threshold を1.1に設定します。
Force Threshold
このフォースを超えると拘束が切断されます。
Note
Houdini 18.0以降では、Glue拘束は、拘束ジオメトリ上のforce
アトリビュートを更新します。このアトリビュートは、拘束された2つの破片間のフォースの差分に平均質量を乗算した大きさを意味します。
この強度を基準にしてフォースに応じてGlue拘束を切断するには、 Force Threshold を1に設定し、 Scale by Attribute を有効にし、 Force Attribute にstrength
を設定してください。
Impact Threshold
このImpactを超えると拘束が切断されます。
Torque Threshold
この回転モーメントを超えると拘束が切断されます。
Plastic Flow Threshold
この線形塑性流動を超えると拘束が切断されます。
Note
これは、線形塑性を有効にしたソフト拘束でのみ利用可能です。
Angular Plastic Flow Threshold
この角度塑性流動を超えると拘束が切断されます。
Note
これは、角度塑性を有効にしたソフト拘束でのみ利用可能です。
Use VEXpression
VEXコードを入力して、拘束を更新または修正することができます。
例えば、適用されたフォースに基づいてGlue拘束の強度を弱めたいのであれば、@strength = max(0, @strength - f@force);
と入力します。
Bulletパックプリミティブを2番目の入力に接続し、指定するSOPジオメトリを3番目の入力に接続します。
VEXpression SOP Path
3番目の入力を介してVEXpressionスニペットで使用するSOPジオメトリのパス。
Evaluation Node Path
ch()
などのVEX関数は、通常ではこのノードを基準にして評価します。
ここにノードパスを入力することで、検索を開始するパスを上書きすることができます。
これは、デジタルアセットに埋め込む際に、そのアセットルートから検索を開始させたい場合に役立ちます。
Impacts
Add Impact Data
Impact Analysis DOPを有効にします。
Time Threshold
記録されるインパクトポイント間の最小の時間量(秒)。値を高くするほど、インパクトポイントが少なくなり、時間のギャップが大きくなります。
Impact Threshold
記録されるインパクトポイントの最小のインパクトの強さの量。値を高くするほど、より強いインパクトに対してのみポイントを作成し、弱いインパクトを無視します。
Distance Threshold
記録されるインパクトポイント間の最小距離。値を高くするほど、インパクトポイントが少なくなり、空間のギャップが大きくなります。
Guided Simulation
Use Guides
ガイドシミュレーションを有効にします。
Use Guided Neighbors
これを有効にすると、ガイドクラスタ毎の最小数の繋がった隣接ピースを条件として使ってガイドを切断します。 これによって、そのガイドクラスタ内の直接の隣接ピースすべてが切断された時に、孤立したピースがガイドのままになるのを回避することができます。
Setup
Group
ガイドされるシミュレーションジオメトリパックプリミティブ。
Start Frame
ガイド系アトリビュートがシミュレーションジオメトリに取り込まれる参照開始フレーム。
End Frame
ガイドアニメーションの終了フレーム。
Mode
Near Point
ガイド名は、ガイドピースの重心までの近接度に基づきます。
Near Surface
ガイド名は、最近接ガイドサーフェス位置に基づきます。
Max Distance
この距離を超えると、シミュレーションジオメトリがガイドを取得しなくなります。 この値が-1の時は、最大距離は使用されません。
Strength
ガイド強度。
Distance to Strength
ガイドジオメトリまでの距離に基づいてガイド強度を乗算します。
Blend
グローバルのブレンド値と乗算されるブレンドアトリビュートをシミュレーションピースに追加します。
Ensure Neighbor
ガイドピースがそのガイドクラスタ内で何も隣接ピースを持たない時、そのガイドピースが最近接ピースのガイドターゲットを継承します。
Constraints
Remove Intra-Guide Constraints
異なるガイドクラスタに属したピース間の拘束を削除します。
Note
ガイドピースと非ガイドピース間の拘束は影響を受けません。
Group
内部ガイド拘束を削除する時に考慮される拘束ジオメトリプリミティブ。
Simulation Settings
Method
ガイドシミュレーションを行なう時に使用される線形Velocity(v
)と角速度(w
)の更新メソッド、または、ターゲットVelocity(targetv
)とターゲット角速度(targetw
)の更新メソッドを切り替えます。
Velocity
直接v
とw
を更新します。つまり、これが最も正確なガイドの方法になりますが、途中にコリジョンがあると微震を引き起こす可能性があります。
Target Velocity
targetv
とtargetw
のアトリビュートを更新します。これらのアトリビュートは、 Air Resistance パラメータと Drag パラメータを組み合わせて使用して、目的のVelocityに近くなるようにオブジェクトを動かすフォースと、目的の角速度に近くなるようにオブジェクトを回転させる回転モーメントを計算します。
これは、直接v
とw
を更新するよりも寛容的で、ピースがガイドの位置と向きから逸れることが許されているので微震の軽減に役立ちます。
これを適切に動作させるには、このソルバの Use Implicit Drag オプションが有効になっている必要があります。
Air Resistance
ターゲットVelocity(targetv
)とターゲット角速度(targetw
)に一致させる重要度を指定します。
Drag
targetv
アトリビュートとairresist
アトリビュートによってオブジェクトが抵抗を受ける時、このアトリビュートを使ってその抵抗力にさらにスケールをかけます。
Blend
ガイドの線形速度/角速度と元々のVelocity/角速度をLerp(線形補間)するブレンド量。 ブレンド量を下げると、柔らかい減衰のバネのような拘束になり、ガイドの線形速度/角速度での衝突計算で起こり得る微震を軽減することができます。
Guide Release Thresholds
Instantaneous
Linear Threshold
計算されたガイド位置とその結果のポスト計算位置との距離が Linear Threshold とガイド強度で乗算した値よりも大きい時、そのピースは非ガイドになります。
Angular Threshold
計算されたガイド方向とその結果のポスト計算方向との角度(単位は度)が Angular Threshold とガイド強度で乗算した値よりも大きい時、そのピースは非ガイドになります。
Distance Threshold
ガイドピースからBulletプリミティブまでの距離と静止時の距離の差がこの Distance Threshold とガイド強度で乗算した値よりも大きくなった時、そのピースは非ガイドになります。
Accumulated
Linear Threshold
計算されたガイド位置とその結果のポスト計算位置との累積した距離が Linear Threshold とガイド強度で乗算した値よりも大きい時、そのピースは非ガイドになります。
Angular Threshold
計算されたガイド方向とその結果のポスト計算方向との累積した角度(単位は度)が Angular Threshold とガイド強度で乗算した値よりも大きい時、そのピースは非ガイドになります。
Distance Threshold
ガイドピースからBulletプリミティブまでの距離と静止時の距離の差がこの Distance Threshold とガイド強度で乗算した値よりも大きくなった時、そのピースは非ガイドになります。
Guided Neighbors
Minimum Neighbors
同じガイドクラスタ内で繋がっている隣接ピースの数がこの数より少ない時、そのピースは非ガイドになります。 静止時にガイド隣接ピースを持たないピースは無視されます。
Post-Guide VEXpression
ガイド計算を行なった後にVEXスニペットを実行します。 これは、その結果のガイドの挙動をもっと上手く制御するために、計算されたVelocityまたはターゲットVelocityを修正することを許可します。
Use VEXpression
ポストガイドWrangleを有効にします。
VEXpression Group
Bulletパックプリミティブのグループにのみ影響を与えます。 デフォルトでは、現在ガイドされているプリミティブにのみ影響するように"__guided"グループが選択されています。
VEXpression
ガイドBulletパックプリミティブを更新または修正するためのVEXコードを入力します。
2番目の入力にガイドジオメトリを接続し、3番目の入力に入力シミュレーションジオメトリを接続します。
Evaluation Node Path
ch()
などのVEX関数は、通常ではこのノードを基準にして評価します。
ここにノードパスを入力することで、検索を開始するパスを上書きすることができます。
これは、デジタルアセットに埋め込む際に、そのアセットルートから検索を開始させたい場合に役立ちます。
Advanced
Bullet World Scale
Bulletワールドをこの数でスケールし、そして、出力されたジオメトリをこの数の逆数でスケールします。 これによって、微小なピースで起こり得る問題を解決することができます。
スケール依存のシミュレーションジオメトリアトリビュート(density
, velocity
, accelmax
, speedmin
, speedmax
, bullet_collision_margin
, bullet_shrink_amount
)は、この数でスケールされます。
スケール依存の拘束ジオメトリアトリビュート(restlength
, strength
, plasticthreshold
)は、この数でスケールされます。
フォースと閾値は、必要に応じて適時スケールされます。
Warning
Bulletワールドをスケールする時、拘束のVEXpressionsがスケールしたワールドで実行されます。 そのため、ジオメトリのルックアップには、そのスケールを考慮する必要があります。 同様に、このSOPのEditable Nodesとして設定されているサブネット内で適用したカスタムフォースもスケールを考慮する必要があります。
DOP Network
Cache Memory (MB)
このシミュレーションのキャッシュに使用可能なメモリ容量(単位はメガバイト)を指定します。 この制限を超えると、古いキャッシュのエントリーが削除されます。
Substeps
内部のDOPネットワークのTimestepパラメータのエクスプレッションは、このパラメータを使って、DOPシミュレーションがフレーム毎に実行するサブステップ数を制御します。
Bullet Solver
Sleeping Time
オブジェクトの速度が、この時間の間で線形速度と角速度の閾値未満になった時、そのオブジェクトは非活動になってスリープ状態になります。 これによって、いくつか静止オブジェクトが存在するようなシミュレーションにおいてパフォーマンスを上げることができます。
Note
そのオブジェクトがスリープ状態になると、その隣接オブジェクトやそれによって拘束されているオブジェクトもスリープ状態になります。
Contact Breaking Threshold
キャッシュ化した接触点を破棄するかどうかを判断する時にBulletエンジンが使用する距離閾値。 これはオブジェクトの境界ボックスに追加される余白に影響を与えるので、シーンスケールに応じてこの値を調整することでパフォーマンスを改善することもできます。
Use Implicit Drag
targetv
とairresist
のPointアトリビュートで表現された抵抗をそのままフォースとして適用するのではなくて、その抵抗にもっと正確な減衰を適用します。
これは、targetw
とspinresist
のアトリビュートで表現された回転の抵抗にも影響します。
Constraint Solver
Constraint Solver
Bulletが衝突と拘束を解決するために使用する拘束ソルバを指定します。 どちらのソルバも作業負荷を並列化しますが、それらのソルバがそれを行なうのに使用する手法が異なります。 Parallel Gauss-Seidel (Islands) は、小さな"島"のオブジェクトをたくさん作用させる場合(例えば、平積みされたたくさんの本)に高速なのに対して、 Parallel Gauss-Seidel (Graph Coloring) は、"島"が少なくて大きい場合(例えば、崩壊する巨大なビル)にパフォーマンスが良いです。
これらのソルバを使って得られる結果は通常では同一になりませんが、品質的な違いは少ないです。
Randomize Constraint Order
Constraint Iterations の各繰り返しの前に、拘束をランダムに並べ替えるように指定します。 これにより、安定性が改善されることがありますが、若干パフォーマンスが悪くなります。
Ensure Islands are Independent
ソルバが、相互作用させるオブジェクト(追加、削除、位置変更させるオブジェクトを含む)の島の変化によって、それらの変化がオブジェクト間に影響しない限り、他の島が異なるシミュレーション結果を生成してしまわないようにさせます。 このオプションを無効にすると、ソルバは、まったく同じ入力を使った場合でしか再シミュレーションで同じ結果を生成できません。 このオプションを有効にすれば、若干パフォーマンスが悪くなるものの、再シミュレーションしてもその結果はあまり変わらないようにすることができます。
Solve Tolerance
十分に近い解が得られた場合に Constraint Iterations の最大数に達する前に拘束ソルバを終了させることができます。 値が大きいほど、精度が悪くなる代わりにパフォーマンスが良くなります。
Constraint Force Mixing
CFM(Constraint Force Mixing)パラメータを上げると、Contact拘束が柔らかくなり、シミュレーションの安定性が良くなることがあります。 Contact拘束は、このパラメータと拘束の強化に必要なフォースの乗算に比例した量で問題になることがあります。
Error Reduction Parameter
次のシミュレーションステップ間で修復されるContact拘束に対する拘束エラーの比率を指定します。 ERP(Error Reduction Parameter)を0に設定すると、拘束されたオブジェクトは、シミュレーションが進むほど離れていきます。 ERPを1に設定すると、ソルバは、次のシミュレーションステップ間ですべての拘束エラーの修復を試みます(しかし、これは、場合によっては不安定になります)。 0.1から0.8の値が、たいていのシミュレーションで推奨します。
Split Impulse
相互に貫通したオブジェクトを(オブジェクトが爆発的に吹っ飛ぶのを回避するために)Velocityを加えずに分割しようとします。
Split Impulseを参照してください。
Penetration Threshold
Split Impulse は、オブジェクトがこの距離よりも大きく貫通している時だけ適用されます。この数値は、マイナス(オブジェクト間の距離が0未満であることを意味します)にしてください。
Split Impulseを参照してください。
Split Impulse ERP
貫通距離が Penetration Threshold の範囲内で Split Impulse が有効なContact拘束に対して Error Reduction Parameter を上書きします。
Output
Transfer Attributes
アトリビュートを出力シミュレーションポイントに転送します。
Transfer to Geometry
上記でリストしたアトリビュートを出力ジオメトリに転送します。
Transfer to Proxy Geometry
上記でリストしたアトリビュートを出力プロキシジオメトリに転送します。
Visualize
Display Visualization Geometry
ガイドジオメトリと視覚化ジオメトリの表示を有効にします。
Simulation Geometry
Show Geometry Representation
このソルバで使用されているBulletジオメトリ表現を表示します。
Note
これは、シミュレーションのパフォーマンスを劇的に重くしてしまうので、シミュレーション開始時でのデバッグ目的でのみ使用することを推奨します。
Show Active (Green)
アクティブなピースを緑色のワイヤーフレームオーバーレイで表示します。
Show Sleeping (Red)
スリープのピースを赤色のワイヤーフレームオーバーレイで表示します。
Show Guided (Blue)
ガイドのピースを青色のワイヤーフレームオーバーレイで表示します。
Show Guide Capture
ガイド(シミュレーションなし)によってトランスフォームされたガイドジオメトリを表示します。
この色相はガイドクラスタを意味し、その値はstrength
アトリビュート値を意味します。
このモードでは、ビューポートインスペクターは、ガイドに関する情報を表示します。
Guide Capture Frame
ガイドキャプチャジオメトリにタイムシフトを適用して、指定したフレームにおけるガイドの影響力を視覚化します。
Guide Capture Blend
ガイド(シミュレーションなし)によってトランスフォームされたガイドジオメトリを表示します。
この色相はガイドクラスタを意味し、その値はblend
アトリビュート値を意味します。
Show Guide Neighbor Count
赤から青までのカラーランプでガイド隣接ピースの数を表示します。 ブラックはガイド隣接ピースがないことを意味し、ホワイトは Use Guided Neighbors が無効になっていることを意味します。
Constraints
Show Constraints
拘束ジオメトリの表示を有効にします。
False Color Mode
None
拘束ジオメトリにカラーを適用しません。
Angle
ビューポートの左上に拘束ジオメトリ上の角度値の範囲を示したヒストグラムとその最小/最大値の情報を表示します。 拘束ジオメトリはそのヒストグラムに応じてカラーが塗られます。
Angular Plastic Flow
ビューポートの左上に拘束ジオメトリ上の角度塑性流動値の範囲を示したヒストグラムとその最小/最大値の情報を表示します。 拘束ジオメトリはそのヒストグラムに応じてカラーが塗られます。
Distance
ビューポートの左上に拘束ジオメトリ上の距離値の範囲を示したヒストグラムとその最小/最大値の情報を表示します。 拘束ジオメトリはそのヒストグラムに応じてカラーが塗られます。
Force
ビューポートの左上に拘束ジオメトリ上のフォース値の範囲を示したヒストグラムとその最小/最大値の情報を表示します。 拘束ジオメトリはそのヒストグラムに応じてカラーが塗られます。
Impact
ビューポートの左上に拘束ジオメトリ上のImpact値の範囲を示したヒストグラムとその最小/最大値の情報を表示します。 拘束ジオメトリはそのヒストグラムに応じてカラーが塗られます。
Plastic Flow
ビューポートの左上に拘束ジオメトリ上の塑性流動値の範囲を示したヒストグラムとその最小/最大値の情報を表示します。 拘束ジオメトリはそのヒストグラムに応じてカラーが塗られます。
Torque
ビューポートの左上に拘束ジオメトリ々の回転モーメント値の範囲を示したヒストグラムとその最小/最大値の情報を表示します。 拘束ジオメトリはそのヒストグラムに応じてカラーが塗られます。
Constraint Name
ビューポートの左上に拘束名に関する情報を表示し、constraint_name
アトリビュートを持った各プリミティブに割り当てられているカラーを表示します。
拘束ジオメトリはそのカラーが塗られます。
Custom
ビューポートの左上に拘束ジオメトリ上のユーザー定義アトリビュート値の範囲を示したヒストグラムとその最小/最大値の情報を表示します。 拘束ジオメトリはそのヒストグラムに応じてカラーが塗られます。
Attribute
ヒストグラムを表示しそれに応じて拘束ジオメトリにカラーを塗るためのfloatアトリビュートの名前を指定します。
Additional Guides
Show Impacts
Impactsが有効になっている時、そのImpactポイントを赤い球で表示します。
Show Ground
地面ジオメトリを表示します。
Show Collision
コリジョンジオメトリを表示します。
Show Collision Geometry Representation
ソルバで使用されているコリジョンジオメトリ表現を表示します。
Note
これは、シミュレーションのパフォーマンスを劇的に重くしてしまうので、シミュレーション開始時でのデバッグ目的でのみ使用することを推奨します。
Inspector
Attributes
ビューポートインスペクターで表示するアトリビュートのリストを指定します。
Examples
GuidedRBDBulletSolver Example for RBD Bullet Solver geometry node
このサンプルでは、RBD Bullet Solver SOPのガイド機能の使い方について説明しています。
KatamariDamacy Example for RBD Bullet Solver geometry node
このサンプルでは、カスタムフォースと動的拘束生成を使ったRBD Bullet Solver SOPの使い方について説明しています。
MaterialFractureTutorial Example for RBD Bullet Solver geometry node
このサンプルには、このチュートリアル(destruction/tutorials/intro_to_mbd_1)で使用されているセットアップが含まれています。
RBDBulletSolver Example for RBD Bullet Solver geometry node
このサンプルには、RBD Buller Solver SOPの色々な使い方が含まれています。
RBDBulletSolverEmission Example for RBD Bullet Solver geometry node
このサンプルでは、RBD Bullet Solver SOPの放出機能の使い方について説明しています。
See also |