リジッドボディシミュレーションの精度の設定

 
 
 

リジッドボディダイナミクスオペレータでは、リジッドボディシミュレーション環境に含まれるすべてのエレメント(RigidBodies、Forces、Constraints、Simulation Time Controls)に関するシミュレーションの計算が行われます。したがって、そのプロパティエディタのオプションを使用して、シミュレーション全体の精度を設定することができます。これは、衝突時にリジッドボディのジオメトリが互いに貫入する際に起こり得るシミュレーションの問題の解決に役立ちます。

PhysXまたはODEのどちらのダイナミクスオペレータが使用されるかは、現在の環境においてどちらのダイナミクスエンジンがアクティブであるかによって異なります(「ダイナミクス エンジンの選択」を参照)。

シミュレーションを安定させるためのその他の方法については、「リジッド ボディの作業に関するヒント」を参照してください。

PhysX対応のシミュレーション精度の設定

  1. [修正](Modify) [リジッド ボディ](Rigid Body) [シミュレーション プロパティの編集](Edit Simulation Properties)を選択して、シミュレーション環境の[PhysX Dynamics Operator]プロパティ エディタを開きます。

    また、Explorer のスコープで[現在の]環境]または[環境](Environments)を選択し、[PhysX Dynamics Operator]アイコンをクリックしてこのプロパティエディタを開きます。

  2. [シミュレーション精度]ページの[サブステップ](Substeps)に値を設定します。この値は、各フレームごとにリジッドボディシミュレーションの評価(サンプル)が実行される回数です。たとえば30フレーム/秒の場合に、この値を4に設定することは、シミュレーションが1秒あたり120回更新されることを意味します。

    サブステップ値を大きくすることで、シミュレーションの精度を上げることができます。これは特に、速い速度で移動するリジッドボディオブジェクトや複雑な形状のリジッドボディオブジェクトを含む衝突に効果的です。また、コンストレイントが少し強くなることもあります。もちろん、値が大きくなるほど、シミュレーションの計算時間も長くなります。試行錯誤が必要になるかもしれません。

    最初は低いレベルで始めて、少しずつ値を増やしてください。この値を少しずつ大きくすることで、多くの場合はシーンが安定します(少なくともトラブルシューティングには十分役立ちます)。通常は、100を超える値や4未満の値は必要ありません。

    ヒント:パラメータの詳細については、[PhysX Dynamics Operator]プロパティ エディタの「Advanced(アドバンス)」のページを参照してください。

PhysX 対応の衝突の精度の設定

シミュレーション環境内の[すべての](Adaptive Substepping)衝突するリジッドボディに[衝突精度]オプションを設定することもできます。衝突の精度レベルは、特に動きが速いリジッドボディに設定してください。

  • [PhysX Dynamics Operator]プロパティエディタの[Simulation Accuracy]ページで、[適切なサブステップ](Adaptive Substepping) [有効](Enabled)オプションを選択し、[Subdivision Depth]値を使用します。これにより、衝突が発生する前後でシミュレーションのサブステップ数が増加し、衝突の計算がより正確に行われます。

    ただし、衝突ジオメトリにバウンディングシェイプを使用している場合は、[Adaptive Substepping]オプションをオフにします。バウンディングシェイプの衝突には、適応レベルの精度を追加する必要がありますが、精度を上げると速度が落ちます(つまり、レベルを上げるとそれに伴ってより時間がかかります)。

    衝突検出の際に、現在のサブステップ数で解析できない場合は、サブステップ数を増やして再び解析します。衝突を正確に解析できなくなったり、指定した[Subdivision Depth]に達するまでは、サブステップ数は 2 倍ずつ増加します。

  • [Subdivision Depth]値を設定して、ダイナミクスオペレータによる衝突の計算の精度を指定します。

    特に、小さいリジッドボディや薄いリジッドボディを衝突させる場合は、この値を上げると衝突がより正確に仕上がります。当然ながら、この値を上げるとシミュレーションの計算時間も長くなります。最初は低いレベルで始めて、少しずつ値を増やしてください。

    注:[Substeps]の値を大きく(たとえば 100 に)する場合は、[Subdivision Depth]の値を小さく(6 以下)するようにしてください。それは、これらの 2 つの値を組み合わせると、フレームあたりの計算の量が非常に大きくなり、システムが停止してしまうことがあるからです。

ODE対応のシミュレーション精度の設定

  1. [修正](Modify) [リジッド ボディ](Rigid Body) [シミュレーション プロパティの編集](Edit Simulation Properties)を選択して、シミュレーション環境の[ODE Dynamics Operator]プロパティ エディタを開きます。

    また、Explorer のスコープで[現在の]環境]または[環境](Environments)スコープを選択し、[ODE Dynamics Operator]アイコンをクリックしてこのプロパティエディタを開きます。

  2. [Simulation Accuracy] [Sub steps]値を設定します。この値は、各フレームごとにリジッドボディシミュレーションの評価(サンプル)が実行される回数です。

ODE対応の衝突の精度の設定

[ODE Dynamics Operator]プロパティエディタで、シミュレーション環境内の[すべての]衝突リジッドボディオブジェクトについて[衝突精度](Collision Accuracy)オプションを設定します。衝突精度レベルは、動きが速いリジッドボディや、実際の形状を衝突ジオメトリとして使用するリジッドボディに対して設定してください。

  • [Dynamics Operator]プロパティエディタで、[適応レベル](Adaptive Collisions)値を使用するには、[適応衝突](Adaptive Level)オプションを選択します。これにより、衝突が発生する前後でシミュレーションのサブステップ数が増加し、衝突の計算がより正確に行われます。

    衝突検出の際に、現在のサブステップ数で解析できない場合は、サブステップ数を増やして再び解析します。衝突を正確に解析できなくなったり、指定した[適応レベル](Adaptive Level)に達するまでは、サブステップ数は 2 倍ずつ増加します。

  • [適応レベル](Adaptive Level)値を設定して、ダイナミクスオペレータによる衝突の計算の精度を指定します。

    この値を大きくすると、衝突の精度が上がります。これは特に、小さなリジッドボディや薄いリジッドボディオブジェクトを含む衝突や、衝突ジオメトリとしてオブジェクトの[実際の形状]を使用する衝突に効果的です(「衝突ジオメトリ タイプの選択」を参照)。当然ながら、この値を上げるとシミュレーションの計算時間も長くなります。最初は低いレベルで始めて、少しずつ値を増やしてください。

    注:[Substeps]の値を大きく(たとえば 100 に)する場合は、[Adaptive Level]の値を小さく(6 以下)するようにしてください。それは、これらの 2 つの値を組み合わせると、フレームあたりの計算の量が非常に大きくなり、システムが停止してしまうことがあるからです。