リジッド ボディのダイナミクス シミュレーションの全体的な精度と衝突の精度を設定します。
表示するには:[Simulate]ツールバーで[修正](Modify) [リジッド ボディ](Rigid Body) [シミュレーションプロパティの編集](Edit Simulation Properties)を選択するか、Explorer で、現在のリジッド ボディ シミュレーション環境に対する[オペレータ]フォルダを開いて、[Dynamics Operator]アイコンをクリックします。
[ODE Dynamics Operator]プロパティ エディタのパラメータについては、「[ODE Dynamics Operator]プロパティ エディタ」を参照してください。
詳細については、「リジッドボディシミュレーションの精度の設定」(「 シミュレーションとエフェクト」)を参照してください。
サブステップ(Substeps) |
リジッド ボディ シミュレーションを各フレームで評価する回数。特に、動きが速いリジッド ボディ オブジェクトや形状が複雑なリジッド ボディ オブジェクトに関係した衝突の場合は、この値を増やすとシミュレーションが正確になります。 |
シミュレーション環境で衝突しているすべてのリジッド ボディに衝突精度を設定します。衝突精度レベルは、動きが速いリジッド ボディや、実際の形状を衝突ジオメトリとして使用するリジッド ボディに対して設定してください(特に ODE ダイナミクス エンジンの場合)。
詳細については、「PhysX 対応の衝突の精度の設定」(「 シミュレーションとエフェクト」)を参照してください。
このページのパラメータの設定は、PhysX エンジンを上級レベルで使用しているユーザを対象としています。たとえば、ゲーム開発で、使用しているゲーム エンジンと同じ設定にする場合などです。
リジッド ボディが一定の期間動かない場合、リジッド ボディは外部フォースの状態が変わるまで動かないとみなされます。この状態を「スリーピング」と呼びます。 スリーピングとは、計算時間を節約するために、リジッド ボディがシミュレートされない状態を指します。
スリーピングによって、安定性の問題を解決することもできます。たとえば、緩く積み重ねてあるレンガの壁があった場合、車が壁にぶつかる前にレンガが動いてしまうことがありますが、シミュレーションの冒頭部分でレンガをスリープ状態にすれば、それを防ぐことができます。
リジッド ボディをスリープ状態にできるかを簡単に確認するには、リニアおよび角度の速度しきい値を設定します。リジッド ボディをスリープ状態にするには、リニア速度が[Sleeping] [Squared Linear Velocity Threshold]の値よりも低く、角速度が[Sleeping] [Squared Angular Velocity Threshold]の値よりも低くなっている必要があります。
連続衝突検出は、動きの速いオブジェクトに役立ちます。従来の衝突検出では、動きの速いオブジェクトが単一のタイム ステップで別のオブジェクトを通り抜けてしまう場合がありました。薄い金属製プレートを貫通する弾丸を想像してみてください。最初のタイム ステップでは弾丸がプレートの片側に位置し、次のタイム ステップでは反対側に位置します。PhysX エンジンでは、衝突を検出しないため、弾丸の動きに変更が必要かどうかは判断できません。
この問題を解決するには、[Continuous Collision]オプションを選択することができます。衝突を離れた位置でテストする代わりに、タイム ステップ全体でオブジェクトの動きを表現する、押し出されたボリュームをテストします。衝突が検出されると、そのときの衝撃の時間が計算され、オブジェクトの動きが適切に変更されます。
リジッド ボディを重ねるときに、リジッド ボディ同士がわずかに貫通し合うように PhysX エンジンにより正確さが調整されます。シーン レベルで許容される貫通量は、[Skin Width]の値を設定して決定できます。貫通量が多すぎると衝突が不自然になりますが、少なすぎるとさらに不自然な結果となります。オブジェクト同士が互いに離れた位置で押し返し、以降のタイム フレームで互いに後退する可能性があります。これによりジッターが発生します。
シーンに最も適した貫通量は、オブジェクトのサイズやシミュレーションの安定性などさまざまな要因により異なります。安定性は通常、重力とタイム ステップのサイズによって決定されます。重力とタイム ステップをより小さく設定すると、シミュレーションがより安定します。
[Dynamic Friction Scaling]および[Static Friction Scaling]のパラメータを使用して、シーン内のすべてのリジッド ボディの静摩擦と動摩擦の大きさをスケーリングできます。
静摩擦は、リジッド ボディの状態が静止から運動に変更されるのに逆らう力です。たとえば、勾配面にボールを置くと、ボールがどれくらい簡単に平面を初めて滑り込み始める、または転がり落ち始めるかが静摩擦によって決定されます。オブジェクトが動き始めてからの静摩擦の影響は非常にわずかになるか、まったくなくなります。
動摩擦(または「キネティック」)は、ある動いているリジッド ボディが他のリジッド ボディのサーフェイスの動きにどの程度抵抗するかを決定します。これはリジッド ボディの動きを遅くする力です。一般的に、この力はリジッド ボディに適用されているすべての力に対して均等に働きます。つまり、リジッド ボディに適用されている力に対する摩擦力の比率として考えることができます。
これらの 2 つのパラメータを設定すると、シミュレーション内のすべてのマテリアルに存在する静摩擦と動摩擦の値が半減されます(両方の既定値は 1)。このスケーリングの具体的な使用例として、レース ゲームを想像してください。地面が濡れていたり凍っている場合は、すべてのリジッド ボディを徐々に滑りやすくし、地面が正常な状態に戻ったらまた徐々に既定値に戻すことができます。