On this page |
|
Since | 18.0 |
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 パラメータで表示させたい情報のアトリビュートを指定することができます。
パラメータ ¶
Setup ¶
Reset Simulation
シミュレーションキャッシュ全体をクリアします。
Start Frame
シミュレーションを開始するHoudiniプレイバー上のフレーム番号。
General ¶
Bullet World Scale
Bulletワールドをこの数でスケールし、そして、出力されたジオメトリをこの数の逆数でスケールします。 これによって、微小なピースで起こり得る問題を解決することができます。
スケール依存のシミュレーションジオメトリアトリビュート(density
, velocity
, accelmax
, speedmin
, speedmax
, bullet_collision_margin
, bullet_shrink_amount
)は、この数でスケールされます。
スケール依存の拘束ジオメトリアトリビュート(restlength
, strength
, plasticthreshold
)は、この数でスケールされます。
フォースと閾値は、必要に応じて適時スケールされます。
Warning
Bulletワールドをスケールする時、拘束のVEXpressionsがスケールしたワールドで実行されます。 そのため、ジオメトリのルックアップには、そのスケールを考慮する必要があります。 同様に、このSOPのEditable Nodesとして設定されているサブネット内で適用したカスタムフォースもスケールを考慮する必要があります。
Time Scale
Bullet Solverの実質の計算時間をスケールします。 これを使用することで、バレットタイムのような効果を出すことができて、Bullet Solverの物理計算がHoudiniプレイバーとは異なるレートで実行することができます。 値を2にすると、オブジェクトが2倍高速で落下し、0.1にすると10分の1の速度に低下します。
Simulation ¶
Global Substeps
Bullet固有のサブステップとは対照的に、シミュレーションレベル全体のサブステップを制御します。 サブステップレベルでジオメトリをエクスポートする必要がある場合には、 Global Substeps が適しています。 これは、フレーム毎にメモリをたくさん使用しますが、各フレームの最終値だけでなく、すべてのサブステップが保持されるようになります。
-
(Dive Target内の)独自のソルバをサブステップさせたい場合には、 Global Substeps の数を上げると役に立ちます。
-
Bullet Substeps はグローバルサブステップ毎に実行されるので、 Global Substeps の数を上げる時には Bullet Substeps の総数も増えてしまわないように Bullet Substeps の数を下げると良いでしょう。
-
もっと多く Bullet Substeps を実行したいだけであれば、 Global Substeps を1にして Bullet Substeps の数を上げる方が効率的です。
Bullet Substeps
Bulletが内部的に使用するシミュレーションステップ毎のサブステップ数。 この数を上げると、シミュレーションの精度が上がります。
高速に移動するオブジェクトが検出されないコリジョン問題の修復に役立つ1つの方法は、このサブステップ数を上げることです。
Constraint Iterations
反復回数が多いほど、拘束と衝突を制御する精度が良くなります。
Solve on Creation Frame
シミュレーション開始フレームで計算します。
Emit RBDs
このチェックボックスを有効にすると、現行フレームで利用可能な入力シミュレーションジオメトリと拘束ジオメトリがシミュレーションに追加されます。
それらの名前の後に"_" + int(frame * 100)
接尾辞が付きます。
例えば、フレーム1
でのpiece0-1
という名前はpiece0-1_100
に変更され、フレーム2.5
でのpiece0-1
という名前はpiece0-1_250
に変更されます。
Cache Memory (MB)
このシミュレーションのキャッシュに使用可能なメモリ容量(単位はメガバイト)を指定します。 この制限を超えると、古いキャッシュのエントリーが削除されます。
Properties ¶
Pieces ¶
Collision Padding
形状間の安全距離。この距離は、コリジョン検出の信頼性とパフォーマンスを良くするためにBulletエンジンで使用されます。 あなたのシーンのスケールに応じて、この値をスケールする必要があります。 この距離は、コリジョン形状のサイズを大きくするので、コリジョン形状が膨張しないように Shrink Collision Geometry を有効にすることを推奨します。
このオプションは、 Plane ジオメトリ表現では利用不可です。
Density
オブジェクトの質量は、体積と密度の乗算で決まります。
Rotational Stiffness
オブジェクトは、かすった打撃を受けると、たいていの場合にはスピンします。 スピンする回転量は、オブジェクトの形状と質量分布、いわゆる 慣性テンソル によって異なります。
Rotational Stiffness は、スピンする回転量に適用されるスケール係数です。 この値が高いほどオブジェクトが回転しにくくなり、低いほど回転しやすくなります。
Bounce
オブジェクトの弾力性。Bounceが1.0の2つのオブジェクトが衝突すると、それらのオブジェクトはエネルギーを消失せずに跳ね返ります。 Bounceが0.0の2つのオブジェクトが衝突すると、それらのオブジェクトは停止します。
Friction
オブジェクトの摩擦係数。0の値は、摩擦なしを意味します。 これは、接線Velocityが衝突と静止接触で影響を受ける強さを制御します。
Attributes
入力ジオメトリ上の指定したPointアトリビュートが各フレームのシミュレーションジオメトリにコピーされます。
これは、SOPレベルでactive
などのアトリビュートをアニメーションさせて、特定のフレームでピースをアクティブにするのに役立ちます。
Sleeping ¶
Linear Threshold
オブジェクトの線形速度に対するスリープ閾値。 オブジェクトの線形速度が一定の時間でこの閾値未満になると、そのオブジェクトが動いていないものとして扱われます。
Angular Threshold
オブジェクトの角速度に対するスリープ閾値。 オブジェクトの角速度が一定の時間でこの閾値未満になると、そのオブジェクトが動いていないものとして扱われます。
Collision ¶
Collision Geometry ¶
Collision Geometry
コリジョンオブジェクトを有効にします。
Collision Type
コリジョンオブジェクトがアニメーションするのか、変形するのか、または静的なのかどうかを指定します。
Static
静的オブジェクトは移動も変形もしません。この質量は無限大とみなされます。
Animated
これは、キーフレームが打たれたオブジェクトに適したモードです。
Deforming
変形オブジェクト(例えば、布やソフトボディ)はポイントレベルでアニメーションします。
Collision Shape
Bulletエンジンがオブジェクトを表現する際に使用する形状。
Convex Hull
オブジェクトのデフォルト形状。 RBD Bullet Solverは、ジオメトリポイントの凸ハルからコリジョン形状を作成します。
Concave
RBD Bullet Solverは、ジオメトリをポリゴンに変換し、その結果の三角形から凹コリジョン形状を作成します。 この形状は、ドーナツ形状または中空管といった凹オブジェクトを模倣する時に役立ちます。 しかし、通常では Convex Hull の方がパフォーマンスが良いので、必要な時にのみ Concave を使用することを推奨します。
Box
オブジェクトの境界ボックス。
Capsule
オブジェクトの境界カプセル。
Cylinder
オブジェクトの境界円柱。
Compound
Bulletプリミティブ(ボックス、球、円柱)で構成した複合形状を作成します。 Bake ODE SOPを使用する必要があります。
Sphere
オブジェクトの境界球。
Plane
静的な地面。
Bounce
オブジェクトの弾力性。Bounceが1.0の2つのオブジェクトが衝突すると、それらのオブジェクトはエネルギーを消失せずに跳ね返ります。 Bounceが0.0の2つのオブジェクトが衝突すると、それらのオブジェクトは停止します。
Friction
オブジェクトの摩擦係数。0の値は、摩擦なしを意味します。
これは、接線Velocityが衝突と静止接触で影響を受ける強さを制御します。
Attributes
指定したPointアトリビュートがこのソルバノードの4番目の入力に呼応します。
入力ジオメトリ上のこれらのアトリビュートが各フレームのシミュレーションジオメトリにコピーされます。
これは、SOPレベルでactive
などのアトリビュートをアニメーションさせて、特定のフレームでピースをアクティブにするのに役立ちます。
Ground Collision ¶
Ground Type
使用したい地面コリジョンのタイプを選択します。
None
地面を追加しません。
Ground Plane
シミュレーションに地面を追加します。
Height Field
シミュレーションにHeight Field静的オブジェクトを追加します。
Height Field
Height FieldジオメトリのSOPパス。
Use Deforming Geometry
変形するHeight Fieldジオメトリを有効にします。
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 ¶
Gravity
このチェックボックスを有効にすると、シミュレーションに重力が使用されます。
Force
単位質量オブジェクトに適用するフォース量。 フォースは質量でスケールされるので、オブジェクトは、この加速度を受けます。
単位にメートル、秒、キログラムを使用していれば、地球の重量に適した値は-9.81
です。
単位にフィート、秒、ポンドを使用していれば、地球の重量に適した値は-32
です。
Drag ¶
Drag
このチェックボックスを有効にすると、シミュレーションに抵抗が使用されます。 抵抗は、空気摩擦と同様に動作し、移動するオブジェクトを減速させることができます。
Add Drag
POP Drag DOPを有効にします。
Air Resistance
パーティクルに対する影響力の強さ。 値が高いほど、Wind Velocityにより速く一致するようになります。 これは、競合する風が同じパーティクルに適用された時のウェイトの平均化にも使われます。
Wind Velocity
パーティクルが引っ張られる速度。 ゼロにすると、パーティクルが停止します。 それ以外の値にすると、パーティクルが、この風の速度まで加速します。
Ignore Mass
RBDピース上のmass
を無視します。
フォースは、accel
(加速度)ではなくforce
として保存されるので、これは、force
とmass
のアトリビュートを乗算することで行なわれます。
これは、ソルバで取り消されます。
airresist
も同様に乗算されます。
Ignore Mass を有効にすると、RBDオブジェクトの小さな破片が大きな破片と同じ速度で移動します。 これは、より制御可能なシミュレーションに役に立ちます。
Use VEXpressions
VEXエクスプレッションを使用してDrag系パラメータを修正します。
Drag Spin ¶
Drag Spin
このチェックボックスを有効にすると、シミュレーションに抵抗スピンが使用されます。 抵抗スピンは、空気摩擦と同様に動作し、回転するオブジェクトを減速させることができます。
Spin Resistance
パーティクルがGoal Spin Speedになるまでの早さ。
Goal Axis
Rest(安定)状態になった時にパーティクルがスピンする目的の軸。
Goal Spin Speed
Rest(安定)状態になった時にパーティクルが指定した軸でスピンする速さ(度/秒)。 これをゼロにすると、スピンに抵抗を加えて停止させます。 プラスの値にすると、スピンの速さがこの値に一致するまでスピンの速さを上下させます。
Axis Relative to Particle’s Orientation
指定したゴール軸は、パーティクル自身のリファレンスフレームへ回転されます。 したがって、(0, 1, 0)の値は、ワールド空間ではなくパーティクルの空間の上方向になります。
Use VEXpressions
VEXエクスプレッションを使用してDrag Spin系パラメータを修正します。
Constraints ¶
Break Thresholds ¶
Break Thresholds
このオプションを有効にすると、ソルバレベルで切断閾値を有効にすることができます。
Number of Breaks
これは、様々な拘束グループに対して実行できる切断条件の数を制御します。 +と-のボタンをクリックすることで、切断の追加と削除ができます。 Clear を押すと、一度にすべての切断を削除することができます。
Constraint Names
拘束の切断が計算される拘束名。
Note
Glue接着は、暗黙的に切断計算される唯一の拘束なので、デフォルトの拘束名には追加されていません。
Group
切断計算で評価される拘束プリミティブ。
Mode
Delete Constraints
指定した閾値よりも大きいアトリビュート値を持った拘束ジオメトリが削除されます。
Switch to Next Constraint
指定した閾値よりも大きいアトリビュート値を持った拘束ジオメトリは、あればnext_constraint_name
に切り替わり、なければ削除されます。
At Frame
指定したフレームで拘束を切断します。
From Frame
切断は、指定したフレーム以降でのみ評価されます。
Angle Threshold
この角度(単位はラジアン)を超えると拘束が切断されます。
Angle Attribute
Angle Thresholdに乗算させるアトリビュートの名前。
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 VEX Snippet
有効にすると、VEXスニペットを使って拘束ジオメトリプリミティブを制御することができます。 これは、Dive Target内にGeometry Wrangle DOPを追加することと同じです。
VEX Snippet SOP Path
拘束ジオメトリプリミティブの制御に使用したいVEXスニペットのSOPパス。
Enable Attribute Updates from SOPs
有効にすると、入力ジオメトリ(ソルバの2番目の入力)からコピーされるPointアトリビュートを指定することができます。
Attributes
入力ジオメトリ(ソルバの2番目の入力)上の指定されたPointアトリビュートが各フレームのアニメーション拘束ジオメトリにコピーされます。
これは、SOPレベルでactive
などのアトリビュートをアニメーションさせて、特定のフレームでピースをアクティブにするのに役立ちます。
Export Broken Constraints
デフォルトでは、ソルバで切断される拘束が拘束ジオメトリから削除されます。
このオプションは、拘束ジオメトリ内のそれらの拘束をbroken
という名前のプリミティブグループに残します。
これは、どの拘束が切断されたのかに基づいてセカンダリエフェクトを駆動させるのに役立ちます。
Guide ¶
=== Enable Guides ==
Enable Guides
シミュレーションガイドを有効にします。
Guide Method
ガイドを行なう時に使用される線形Velocity(v
)と角速度(w
)の更新メソッド、または、ターゲットVelocity(targetv
)とターゲット角速度(targetw
)の更新メソッドを切り替えます。
Velocity
直接v
とw
を更新します。つまり、これが最も正確なガイドの方法になりますが、途中にコリジョンがあると微震を引き起こす可能性があります。
Target Velocity
targetv
とtargetw
のアトリビュートを更新します。これらのアトリビュートは、 Air Resistance パラメータと Drag パラメータを組み合わせて使用して、目的のVelocityに近くなるようにオブジェクトを動かすフォースと、目的の角速度に近くなるようにオブジェクトを回転させる回転モーメントを計算します。
これは、直接v
とw
を更新するよりも寛容的で、ピースがガイドの位置と向きから逸れることが許されているので微震の軽減に役立ちます。
これを適切に動作させるには、このソルバの Use Implicit Drag オプションが有効になっている必要があります。
Blend
ガイドの線形速度/角速度と元々のVelocity/角速度をLerp(線形補間)するブレンド量。 ブレンド量を下げると、柔らかい減衰のバネのような拘束になり、ガイドの線形速度/角速度での衝突計算で起こり得る微震を軽減することができます。
Release Thresholds ¶
Linear Threshold
計算されたガイド位置とその結果のポスト計算位置との距離が Linear Threshold とガイド強度で乗算した値よりも大きい時、そのピースは非ガイドになります。
Angular Threshold
計算されたガイド方向とその結果のポスト計算方向との角度(単位は度)が Angular Threshold とガイド強度で乗算した値よりも大きい時、そのピースは非ガイドになります。
Distance Threshold
ガイドピースからBulletプリミティブまでの距離と静止時の距離の差がこの Distance Threshold とガイド強度で乗算した値よりも大きくなった時、そのピースは非ガイドになります。
Linear Threshold
計算されたガイド位置とその結果のポスト計算位置との累積した距離が Linear Threshold とガイド強度で乗算した値よりも大きい時、そのピースは非ガイドになります。
Angular Threshold
計算されたガイド方向とその結果のポスト計算方向との累積した角度(単位は度)が Angular Threshold とガイド強度で乗算した値よりも大きい時、そのピースは非ガイドになります。
Distance Threshold
ガイドピースからBulletプリミティブまでの距離と静止時の距離の差がこの Distance Threshold とガイド強度で乗算した値よりも大きくなった時、そのピースは非ガイドになります。
Remove Intra-Guided Constraints ¶
Remove Intra-Guide Constraints
異なるガイドクラスタに属したピース間の拘束を削除します。
Note
ガイドピースと非ガイドピース間の拘束は影響を受けません。
Constraint Group
Intra-Guide拘束を削除する際に考慮される拘束ジオメトリプリミティブ。
Show Collision Shape
このオプションを有効にすると、コリジョンジオメトリが表示されます。
Post-Guide VEXpression ¶
Post-Guide VEXpression
ガイド計算を行なった後にVEXスニペットを実行します。 これは、その結果のガイドの挙動をもっと上手く制御するために、計算されたVelocityまたはターゲットVelocityを修正することを許可します。
VEXpression Group
Bulletパックプリミティブのグループにのみ影響を与えます。 デフォルトでは、現在ガイドされているプリミティブにのみ影響するように guided グループが選択されています。
Visualization ¶
Visualize Geometry ¶
Visualize Geometry
このソルバで使用されているBulletジオメトリ表現を表示します。
Note
これは、シミュレーションのパフォーマンスを劇的に重くしてしまうので、シミュレーション開始時でのデバッグ目的でのみ使用することを推奨します。
Show Active (Green)
アクティブなピースを緑色のワイヤーフレームオーバーレイで表示します。
Show Sleeping (Red)
スリープのピースを赤色のワイヤーフレームオーバーレイで表示します。
Ground ¶
Ground
このオプションを有効にすると、コリジョン用の無限大の地面が作成されます。
Show Ground as
地面を Wireframe または Shaded のどちらかで表示します。
Collision Geometry ¶
Show Geometry
有効にすると、ソルバの4番目の入力に接続されたオブジェクトのジオメトリが表示されます。 Color で表示カラーを変更することができます。
Show Collision Shape
このチェックボックスを有効にすると、ソルバの4番目の入力に接続されたオブジェクトが平坦なシェーディング表現で表示されます。
Color
ピッカーからカラーを選択したり、RGB値を定義して、コリジョンジオメトリに色を付けます。
Constraint Geometry ¶
Constraint Geometry
有効にすると、拘束ジオメトリが表示されます。
False Color Mode
None
拘束ジオメトリにカラーを適用しません。
Angle
ビューポートの左上に拘束ジオメトリ上の角度値の範囲を示したヒストグラムとその最小/最大値の情報を表示します。 拘束ジオメトリはそのヒストグラムに応じてカラーが塗られます。
Angular Plastic Flow
ビューポートの左上に拘束ジオメトリ上の角度塑性流動値の範囲を示したヒストグラムとその最小/最大値の情報を表示します。 拘束ジオメトリはそのヒストグラムに応じてカラーが塗られます。
Distance
ビューポートの左上に拘束ジオメトリ上の距離値の範囲を示したヒストグラムとその最小/最大値の情報を表示します。 拘束ジオメトリはそのヒストグラムに応じてカラーが塗られます。
Force
ビューポートの左上に拘束ジオメトリ上のフォース値の範囲を示したヒストグラムとその最小/最大値の情報を表示します。 拘束ジオメトリはそのヒストグラムに応じてカラーが塗られます。
Impact
ビューポートの左上に拘束ジオメトリ上のImpact値の範囲を示したヒストグラムとその最小/最大値の情報を表示します。 拘束ジオメトリはそのヒストグラムに応じてカラーが塗られます。
Plastic Flow
ビューポートの左上に拘束ジオメトリ上の塑性流動値の範囲を示したヒストグラムとその最小/最大値の情報を表示します。 拘束ジオメトリはそのヒストグラムに応じてカラーが塗られます。
Torque
ビューポートの左上に拘束ジオメトリ々の回転モーメント値の範囲を示したヒストグラムとその最小/最大値の情報を表示します。 拘束ジオメトリはそのヒストグラムに応じてカラーが塗られます。
Constraint Name
ビューポートの左上に拘束名に関する情報を表示し、constraint_name
アトリビュートを持った各プリミティブに割り当てられているカラーを表示します。
拘束ジオメトリはそのカラーが塗られます。
Custom
ビューポートの左上に拘束ジオメトリ上のユーザー定義アトリビュート値の範囲を示したヒストグラムとその最小/最大値の情報を表示します。 拘束ジオメトリはそのヒストグラムに応じてカラーが塗られます。
Show Guides
(例えば、Constraint Network DOPで見かけるものと同じ)拘束を表現したガイドジオメトリを表示します。 これは、拘束タイプに応じて異なるジオメトリを表示します。 例えば、ソフト拘束は、各アンカーの位置を向きを示したジオメトリを表示します。
Show Object Links
各拘束アンカーがその取付先のオブジェクトと接続されたガイドジオメトリを表示します。
Guide Radius
ガイドジオメトリのサイズをスケールします。
Guide ¶
Show Guided (Blue)
ガイドのピースを青色のワイヤーフレームオーバーレイで表示します。
Show Guide Capture
ガイド(シミュレーションなし)によってトランスフォームされたガイドジオメトリを表示します。
この色相はガイドクラスタを意味し、その値はstrength
アトリビュート値を意味します。
このモードでは、ビューポートインスペクターは、ガイドに関する情報を表示します。
Guide Capture Frame
ガイドキャプチャジオメトリにタイムシフトを適用して、指定したフレームにおけるガイドの影響力を視覚化します。
Guide Capture Blend
ガイド(シミュレーションなし)によってトランスフォームされたガイドジオメトリを表示します。
この色相はガイドクラスタを意味し、その値はblend
アトリビュート値を意味します。
Show Guide Neighbor Count
赤から青までのカラーランプでガイド隣接ピースの数を表示します。 ブラックはガイド隣接ピースがないことを意味し、ホワイトは Guided Neighbors が無効になっていることを意味します。
Impact Data ¶
Impact Data
Impact Data分析パラメータを有効にします。
Time Threshold
記録されるインパクトポイント間の最小の時間量(秒)。値を高くするほど、インパクトポイントが少なくなり、時間のギャップが大きくなります。
Impact Threshold
記録されるインパクトポイントの最小のインパクトの強さの量。値を高くするほど、より強いインパクトに対してのみポイントを作成し、弱いインパクトを無視します。
Distance Threshold
記録されるインパクトポイント間の最小距離。値を高くするほど、インパクトポイントが少なくなり、空間のギャップが大きくなります。
Force Impact Object
このDOPオブジェクトとの衝突のみに対してインパクトポイントを作成します。
Fetch Impacts
インパクトポイントを取り込むためのObject Merge SOPを作成します。
Inspector ¶
Attributes
ビューポートインスペクターで表示するアトリビュートのリストを指定します。
Font Size
インスペクターテキストのフォントサイズを指定します。
Float Precision
アトリビュート値の表示に使用する浮動小数点精度を指定します。
Advanced ¶
Bullet Solver ¶
Sleeping Time
オブジェクトの速度が、この時間の間で線形速度と角速度の閾値未満になった時、そのオブジェクトは非活動になってスリープ状態になります。 これによって、いくつか静止オブジェクトが存在するようなシミュレーションにおいてパフォーマンスを上げることができます。
Note
そのオブジェクトがスリープ状態になると、その隣接オブジェクトやそれによって拘束されているオブジェクトもスリープ状態になります。
Contact Breaking Threshold
キャッシュ化した接触点を破棄するかどうかを判断する時にBulletエンジンが使用する距離閾値。 これはオブジェクトの境界ボックスに追加される余白に影響を与えるので、シーンスケールに応じてこの値を調整することでパフォーマンスを改善することもできます。
Use Implicit Drag
targetv
とairresist
のPointアトリビュートで表現された抵抗をそのままフォースとして適用するのではなくて、その抵抗にもっと正確な減衰を適用します。
これは、targetw
とspinresist
のアトリビュートで表現された回転の抵抗にも影響します。
Split Impulse
相互に貫通したオブジェクトを(オブジェクトが爆発的に吹っ飛ぶのを回避するために)Velocityを加えずに分割しようとします。
位置拘束とVelocity拘束を計算した際の誤差によって、システムに余分なエネルギーを引き起こす可能性があります。 このオプションはその余分なエネルギーのほとんどを除去しますが、特に安定したスタッキング(累積)に関しては若干品質の低下を招きます。
Penetration Threshold
Split Impulse は、オブジェクトがこの距離よりも大きく貫通している時だけ適用されます。この数値は、マイナス(オブジェクト間の距離が0未満であることを意味します)にしてください。
Split Impulse ERP
貫通距離が Penetration Threshold の範囲内で Split Impulse が有効なContact拘束に対して Error Reduction Parameter を上書きします。
Constraint Solver ¶
Constraint Solver
Bulletが衝突と拘束を解決するために使用する拘束ソルバを指定します。 どちらのソルバも作業負荷を並列化しますが、それらのソルバがそれを行なうのに使用する手法が異なります。 Parallel Gauss-Seidel (Islands) は、小さな“島”のオブジェクトをたくさん作用させる場合(例えば、平積みされたたくさんの本)に高速なのに対して、 Parallel Gauss-Seidel (Graph Coloring) は、“島”が少なくて大きい場合(例えば、崩壊する巨大なビル)にパフォーマンスが良いです。
これらのソルバを使って得られる結果は通常では同一になりませんが、品質的な違いは少ないです。
Solve Tolerance
十分に近い解が得られた場合に Constraint Iterations の最大数に達する前に拘束ソルバを終了させることができます。 値が大きいほど、精度が悪くなる代わりにパフォーマンスが良くなります。
Contact CFM
CFM(Constraint Force Mixing)パラメータを上げると、Contact拘束が柔らかくなり、シミュレーションの安定性が良くなることがあります。 Contact拘束は、このパラメータと拘束の強化に必要なフォースの乗算に比例した量で問題になることがあります。
Contact ERP
次のシミュレーションステップ間で修復されるContact拘束に対する拘束エラーの比率を指定します。
ERP(Error Reduction Parameter)を0
に設定すると、拘束されたオブジェクトは、シミュレーションが進むほど離れていきます。
ERPを1
に設定すると、ソルバは、次のシミュレーションステップ間ですべての拘束エラーの修復を試みます(しかし、これは、場合によっては不安定になります)。
0.1から0.8の値が、たいていのシミュレーションで推奨します。
Randomize Constraint Order
Constraint Iterations の各繰り返しの前に、拘束をランダムに並べ替えるように指定します。 これにより、安定性が改善されることがありますが、若干パフォーマンスが悪くなります。
Ensure Islands are Independent
ソルバが、相互作用させるオブジェクト(追加、削除、位置変更させるオブジェクトを含む)の島の変化によって、それらの変化がオブジェクト間に影響しない限り、他の島が異なるシミュレーション結果を生成してしまわないようにさせます。 このオプションを無効にすると、ソルバは、まったく同じ入力を使った場合でしか再シミュレーションで同じ結果を生成できません。 このオプションを有効にすれば、若干パフォーマンスが悪くなるものの、再シミュレーションしてもその結果はあまり変わらないようにすることができます。
Emission Solver ¶
Emission Cache Memory (MB)
このシミュレーションのキャッシュに使用可能なメモリ容量(単位はメガバイト)を指定します。 この制限を超えると、古いキャッシュのエントリーが削除されます。
Collision ¶
Solve on Creation Frame
シミュレーション開始フレームで計算します。
Constraints ¶
Overwrite with SOP
このフラグは、設定される度にネットワークを再インポートするので、完全にアニメーションする拘束の挙動が可能です。
Glue Constraint Relationship DOPを参照してください。
Bullet Soft Constraint Relationship DOPを参照してください。
Hard Constraint Relationship DOPを参照してください。
Cone Twist Constraint Relationship DOPを参照してください。
Slider Constraint Relationship DOPを参照してください。
Guide ¶
Use Pre-Configured Setup
RBD Guide Setup SOPを使用して、このRBD Bullet Solver外でガイドをセットアップすることができます。
Group
ガイドされるシミュレーションジオメトリパックプリミティブ。
Start Frame
ガイド系アトリビュートがシミュレーションジオメトリに取り込まれる参照開始フレーム。
End Frame
ガイドアニメーションの終了フレーム。
Release on End Frame
End Frame に到達すると、すべてのピースがガイドから開放されます。
Mode
Near Point
ガイド名は、ガイドピースの重心までの近接度に基づきます。
Near Surface
ガイド名は、最近接ガイドサーフェス位置に基づきます。
Max Distance
この距離を超えると、シミュレーションジオメトリがガイドを取得しなくなります。
この値が-1
の時は、最大距離は使用されません。
Strength
ガイド強度。
Distance to Strength
ガイドジオメトリまでの距離に基づいてガイド強度を乗算します。
Distance
Strength Multiplier の最小距離と最大距離を指定します。
Strength Multiplier
ガイドピースまでの距離が Distance の最小距離から最大距離の範囲にある時に使用する強度乗数。
Blend
グローバルのブレンド値と乗算されるブレンドアトリビュートをシミュレーションピースに追加します。
Transfer Attributes
ガイドピースからRBDピースへ転送するアトリビュート。
Use VEXpressions
VEXエクスプレッションを使用して、ガイド強度とブレンドアトリビュートを修正することができます。
Guided Neighbors ¶
Guided Neighbors
ガイドピースがそのガイドクラスタ内で何も隣接ピースを持たない時、そのガイドピースが最近接ピースのガイドターゲットを継承します。
Points per Area
隣接ピースが見つかると、まず最初にすべてのオブジェクトのサーフェス上にポイントがばら撒かれます。 近くにあるポイントは、近くにあるサーフェスを検出できるほど十分な数がなければなりません。 これは、ジオメトリサイズの2乗でスケールを下げてください。 例えば、ジオメトリが10倍大きくなれば、 Points per Area を1/100倍にしてください。
Search Radius
隣接ポイントを検索する際の最大許容距離を指定します。
Max Search Points
検索可能な隣接ポイント数の上限を指定します。 数を下げればパフォーマンスが良くなりますが、隣接ピース上のポイントよりも同じピース上のポイントのみが検知されてしまう危険性があり、隣接ポイントが取得できなくなってしまいます。
Max Connections
各ばら撒きポイントが接続できるピース数の上限を指定します。 これによって、サーフェスポイントが隣接ピースを検出する精度を上げることができます。 ただし、この数を上げるとパフォーマンスが悪くなります。
Ensure Neighbor
ガイドピースがそのガイドクラスタ内で何も隣接ピースを持たない時、そのガイドピースが最近接ピースのガイドターゲットを継承します。
Minimum Neighbors
同じガイドクラスタ内で繋がっている隣接ピースの数がこの数より少ない時、そのピースは非ガイドになります。 静止時にガイド隣接ピースを持たないピースは無視されます。
Output ¶
Impact Data ¶
Impact Data
Impact Data分析パラメータを有効にします。
Time Threshold
記録されるインパクトポイント間の最小の時間量(秒)。値を高くするほど、インパクトポイントが少なくなり、時間のギャップが大きくなります。
Impact Threshold
記録されるインパクトポイントの最小のインパクトの強さの量。値を高くするほど、より強いインパクトに対してのみポイントを作成し、弱いインパクトを無視します。
Distance Threshold
記録されるインパクトポイント間の最小距離。値を高くするほど、インパクトポイントが少なくなり、空間のギャップが大きくなります。
Force Impact Object
このDOPオブジェクトとの衝突のみに対してインパクトポイントを作成します。
Fetch Impacts
インパクトポイントを取り込むためのObject Merge SOPを作成します。
Attributes ¶
Age Attribute
オブジェクトにage
Pointアトリビュートを追加します。
このアトリビュートは、そのオブジェクトがシミュレーションに追加されてからの経過時間を追跡します。
拘束プリミティブにもage
アトリビュートが追加されます。
このアトリビュートは、カスタムフォースを駆動したり、数秒後にオブジェクトを削除したりするのに役立ちます。
Transfer Attributes
アトリビュートを出力シミュレーションポイントに転送します。
Transfer to Geometry
上記でリストしたアトリビュートを出力ジオメトリに転送します。
Transfer to Proxy Geometry
上記でリストしたアトリビュートを出力プロキシジオメトリに転送します。
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)で使用されているセットアップが含まれています。
RBDAgeExample Example for RBD Bullet Solver geometry node
このサンプルには、(Age RBDsの機能による)ageアトリビュートを利用したセットアップが含まれています。
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 |