Since | 14.5 |
このアセットには、ラグドールの衝突ジオメトリおよびジョイント制限のセットアップ中に 使用するシンプルなBulletシミュレーションが含まれています。 これにより、ラグドールがいろいろな設定でどのような挙動をするのかすばやく観察することができます。
パラメータ ¶
Ragdoll ¶
Display Collision Layer
エージェントの現行レイヤーを、そのCollision Layerと同じになるように設定します。 これにより、ソルバによって使用される衝突ジオメトリを可視化することができます。
Number of Substeps
Bulletソルバによって使用されるサブステップの数を指定します。
Constraint Iterations
Bulletソルバによって使用されるコンストレイントソルバの反復数を指定します。
Initial Velocity
ラグドールの初期Velocity。
Initial Angular Velocity
ラグドールの初期角速度。
Enable Gravity
重力を有効化するかどうかを制御します。 重力の無効化は、エージェントがそれ自身の回転制限に最初から違反しているシミュレーションをデバッグするのに役に立ちます。
Gravity
重力による加速度を指定します。
Ground Plane Position
グラウンド平面の移動量。
Ground Plane Rotation
グラウンド平面の回転角。
Constraints ¶
Pin Root Collision Shapes
複数のルート衝突形状がある場合、それらのオブジェクトをまとめて固定するためのピン拘束が作成されます。
Pin Shapes With No Rotation Limits
回転制限が設定されていないジョイントのシェイプがある場合、そのシェイプをその親に取り付けるためのピン拘束が作成されます。
Allow Initial Violation of Limits
初期段階で回転制限が違反していた場合は、その制限を実行せずに、その回転を維持するようにします。 これによって、シミュレーションの初めに突然動くのではなく、その回転制限内でオブジェクトが自然に戻るようにさせることができます。
Softness
最大角度に Softness を掛けた値より角度が大きくなると、コンストレイントの効果が生じ始めます。 Softness の値を小さくすると、コンストレイントの境界がソフトになります。 しかし、値が小さすぎると、ほぼ回転制限値で、 Softness の閾値を超えたジョイントに対するシミュレーションの開始時に、“ポッピング”(急な変化)効果が発生することがあります。
Constraint Force Mixing
これを増加させると、コンストレイントが緩和されていき、シミュレーションの安定性が潜在的に増加します。 コンストレイントは、このパラメータを乗じた、コンストレイントの再構築に必要なフォースに比例する量により、無視されることがあります。
Bias Factor
コンストレイントが位置または向きの誤差を修正するレート。 1の値は、常にコンストレイントが順守されるようになります。バイアスは、0.2から0.5までの値にしておくことを推奨します。
Relaxation Factor
コンストレイントによって変化させる角速度のレート。 小さい値は、コンストレイントがゆっくりと速度を修正し、境界がよりソフトに見えるようにしておくという意味です。
Position CFM
この値を上げれば、拘束がより柔らかくなり、シミュレーションの安定性を良くすることができます。 拘束の位置コンポーネントは、拘束の再構築に必要なフォースとこのパラメータを乗算した値に比例して、不安定になる場合があります。
Position ERP
次のシミュレーションステップで訂正される位置誤差の割合を指定します。 ほとんどのシミュレーションでは、0.1から0.8の間にするのを推奨します。
Stiffness ¶
Stiffness (section)
有効にすると、Stiffness(剛性)は、ソルバがジョイントを現在の向きから(アニメーションまたはシミュレーションした)“ターゲット”の向きに動かそうとした時に特定の抵抗を追加します。
Group
硬くさせるジョイントを指定した名前の付いたトランスフォームグループ。 Agent Transform Group SOPを使用することで、エージェントセットアップネットワーク内にジョイントグループを作成することができます。
Stiffness Value
Constant に設定すると、このステートの間はStiffness(剛性)は一定です。 Ramp に設定すると、エージェントがこのステートにいる期間に基づいたランプに応じて剛性を変化させることができます。
Stiffness
Stiffness Value が Constant に設定されている場合、ここには、現在のジョイントの回転の変化に対する抵抗力を指定します。
0.2
(デフォルト)から0.5
の間の値は、“硬いけれども硬すぎない”ものとして扱われます。1
以上の値は非常に硬くなります。
Time Range
Stiffness Value が Ramp に設定されている場合、開始と終了の時間(秒)は、このランプの開始と終了に相当します。
例えば、 Time Range に0.0
と5.0
を設定すると、このランプは、エージェントがこのステートになった時の最初の5秒間に対するStiffness(剛性)を制御することができます。
この範囲外では、このランプは、最初と最後の値を延長します。
Stiffness Scale
Stiffness Value が Ramp に設定されている場合、これは、 Stiffness Ramp の値に対するスケールです。
Stiffness Ramp
Stiffness Value が Ramp に設定されている場合、これは、 Time Range 内の各ポイントのStiffness(剛性)を設定します。 この範囲外では、このランプは、最初と最後の値を延長します。
Constraint Force Mixing
この値を上げると、拘束のモーターコンポーネントがより柔らかくなります。 プラスの小さい値ほど、シミュレーションの安定性を良くすることができます。
Simulation ¶
Reset Simulation
全体のシミュレーションキャッシュをクリアします。
Sub Steps
DOPシミュレーションがフレーム毎に実行するサブステップ数を指定します。
Start Frame
シミュレーションがクックを開始するフレームを指定します。
Scale Time
このDOPネットワーク用にグローバル時間をシミュレーション時間に関連付けるスケール係数を指定します。
Bullet Solver ¶
Sleeping Time
オブジェクトの速度が、この時間の間で線形速度と角速度の閾値未満になった時、そのオブジェクトは非活動になってスリープ状態になります。 これによって、いくつか静止オブジェクトが存在するようなシミュレーションにおいてパフォーマンスを上げることができます。
Note
そのオブジェクトがスリープ状態になると、その隣接オブジェクトやそれによって拘束されているオブジェクトもスリープ状態になります。
Contact Breaking Threshold
キャッシュ化した接触点を破棄するかどうかを判断する時にBulletエンジンが使用する距離閾値。 これはオブジェクトの境界ボックスに追加される余白に影響を与えるので、シーンスケールに応じてこの値を調整することでパフォーマンスを改善することもできます。
Use Implicit Drag
targetv
とairresist
のPointアトリビュートで表現された抵抗をそのままフォースとして適用するのではなくて、その抵抗にもっと正確な減衰を適用します。
これは、targetw
とspinresist
のアトリビュートで表現された回転の抵抗にも影響します。
Constraint Solver
Bulletが衝突と拘束を解決するために使用する拘束ソルバを指定します。 どちらのソルバも作業負荷を並列化しますが、それらのソルバがそれを行なうのに使用する手法が異なります。 Parallel Gauss-Seidel (Islands) は、小さな“島”のオブジェクトをたくさん作用させる場合(例えば、平積みされたたくさんの本)に高速なのに対して、 Parallel Gauss-Seidel (Graph Coloring) は、“島”が少なくて大きい場合(例えば、崩壊する巨大なビル)にパフォーマンスが良いです。
これらのソルバを使って得られる結果は通常では同一になりませんが、品質的な違いは少ないです。
Solve Tolerance
十分に近い解が得られた場合に Constraint Iterations の最大数に達する前に拘束ソルバを終了させることができます。 値が大きいほど、精度が悪くなる代わりにパフォーマンスが良くなります。
Randomize Constraint Order
Constraint Iterations の各繰り返しの前に、拘束をランダムに並べ替えるように指定します。 これにより、安定性が改善されることがありますが、若干パフォーマンスが悪くなります。
Ensure Islands are Independent
ソルバが、相互作用させるオブジェクト(追加、削除、位置変更させるオブジェクトを含む)の島の変化によって、それらの変化がオブジェクト間に影響しない限り、他の島が異なるシミュレーション結果を生成してしまわないようにさせます。 このオプションを無効にすると、ソルバは、まったく同じ入力を使った場合でしか再シミュレーションで同じ結果を生成できません。 このオプションを有効にすれば、若干パフォーマンスが悪くなるものの、再シミュレーションしてもその結果はあまり変わらないようにすることができます。
Contact CFM
CFM(Constraint Force Mixing)パラメータを上げると、Contact拘束が柔らかくなり、シミュレーションの安定性が良くなることがあります。 Contact拘束は、このパラメータと拘束の強化に必要なフォースの乗算に比例した量で問題になることがあります。
Contact ERP
次のシミュレーションステップ間で修復されるContact拘束に対する拘束エラーの比率を指定します。
ERP(Error Reduction Parameter)を0
に設定すると、拘束されたオブジェクトは、シミュレーションが進むほど離れていきます。
ERPを1
に設定すると、ソルバは、次のシミュレーションステップ間ですべての拘束エラーの修復を試みます(しかし、これは、場合によっては不安定になります)。
0.1から0.8の値が、たいていのシミュレーションで推奨します。
Split Impulse
相互に貫通したオブジェクトを(オブジェクトが爆発的に吹っ飛ぶのを回避するために)Velocityを加えずに分割しようとします。
位置拘束とVelocity拘束を計算した際の誤差によって、システムに余分なエネルギーを引き起こす可能性があります。 このオプションはその余分なエネルギーのほとんどを除去しますが、特に安定したスタッキング(累積)に関しては若干品質の低下を招きます。
Penetration Threshold
Split Impulse は、オブジェクトがこの距離よりも大きく貫通している時だけ適用されます。この数値は、マイナス(オブジェクト間の距離が0未満であることを意味します)にしてください。
Split Impulse ERP
貫通距離が Penetration Threshold の範囲内で Split Impulse が有効なContact拘束に対して Error Reduction Parameter を上書きします。
See also |