リジッド ボディの作業に関するヒント

 
 
 

リジッド ボディを使った作業を簡潔化したり、問題を回避するために役立つヒントは、次のとおりです。

ゴースティングによるシミュレーションをプレビューする

アニメーション ゴースティング(オニオン スキンとも呼ぶ)を使用すると、現在のフレームの前後の数フレームでアニメートされたオブジェクトの一連のスナップショットを表示できます。現在のフレームより後のフレームを表示するようにゴースティングを設定すると、オブジェクトのリジッド ボディ プロパティやオブジェクトの初期状態を変更したときにそのシミュレーション結果をプレビューできます(シミュレーションを実行する必要はありません)。 これにより、さまざまなシナリオをテストする際に時間を節約できます。

   
ヒント:リジッド ボディ シミュレーションでゴースティングを使用するには、まずシミュレーションをキャッシュしてください(「ICE シミュレーション環境キャッシュ ファイルを作成する」(「データ交換」)を参照)。

詳細については、「アニメートされたオブジェクトのゴースティング」(「アニメーション」)を参照してください。

時間を節約するためのヒント

  • 1 つのシーンに数多くのリジッド ボディを作成する場合は、まずリジッド ボディを 1 つ作成し、その後にクローンを作成して手間を省きます。各クローンには、個別に設定できる独自のリジッド ボディ プロパティが含まれます。

  • 計算時間を節約するためには、常にすべてのリジッドボディをアクティブにすることをお勧めします。たとえば、1000 個の煉瓦でできた壁を鉄球で壊す場面を作成する場合は、壊される前の状態の壁をシミュレートする必要はありません。鉄球が壁に当たる前のフレームまですべての煉瓦をパッシブにしてから、残りのフレームをアクティブにします。

    [パッシブ]および[ミュート]オプションを適切に使ってアニメートを行うと、複雑なシミュレーションでも大幅に時間を節約することができます。詳細については、「アクティブ リジッド ボディとパッシブ リジッド ボディ」を参照してください。

うまく衝突させるためのヒント

  • 衝突させるオブジェクトが極端に薄い場合は、衝突がうまく表現されません。グリッドの使用は、一般には適切ではありません。それよりも、地面やテーブルで作成するような、いくらか厚みのある平坦な立方体を使用してください。

  • リジッド ボディの衝突は片面で発生します。両面で衝突させるには、リジッド ボディのジオメトリを複製し、それを反転させます。

  • 最良の結果を得るためには、シミュレーションの最初のフレーム(初期状態)でリジッド ボディのジオメトリが貫入しないようにリジッド ボディを設定する必要があります。わずかな貫入であれば問題ありませんが、極端な場合は貫入を解決しようとしてシミュレーションが不安定になる可能性があります。

    このような貫入を防ぐには、リジッド ボディ同士をわずかに離してからシミュレーションを実行します。操作が順調であれば、停止状態をすべてのリジッド ボディで新しい初期状態として保存します。

  • ジオメトリ タイプにはなるべく単純な衝突バウンディング シェイプ(ボックスや球など)を使用するようにします。これにより、最も安定したシェイプが最も短時間で作成できます。凸面ハルは、[実際の形状]ジオメトリの次に速く、安定した衝突タイプです。詳細については、「衝突ジオメトリ タイプの選択」を参照してください。

  • [実際の形状]タイプの衝突を使用する場合は、「実際の形状 - PhysX」で詳細とヒントを参照してください。

  • 衝突の後の回転で生じるエネルギーに気をつけてください。リジッド ボディの[速度 - 角速度制限](Velocity - Limit Angular)[リニア速度制限](Linear Limit)の値を下げてみます(「リジッドボディの速度と加速度の制限の設定」を参照)。

Elasticity and Friction(弾性と摩擦)

  • すべてのリジッド ボディの[摩擦](Friction)パラメータと[弾性](Elasticity)パラメータの値は、相互に掛け合わせられます。関係を単純化するには、衝突オブジェクトの値を一度に 1 つずつ設定し、その結果をテストします。

  • [弾性](Elasticity)値を 1 より大きくすると、オブジェクトのエネルギーは衝突のたびに増加することになります。さらに、弾性の値を高くするほど、シミュレーションが不安定になる可能性があります。

  • 衝突オブジェクトを箱や部屋のような密閉空間の中であちこちに跳ね返らせる場合は、衝突オブジェクトの[弾性](Elasticity)値を低くします。

シミュレーションを安定させるためのヒント

  • 空間で物理的に別れているリジッドボディシステムは、個別に評価されるため、この方法で安定したリジッドボディシステムを作成します。

  • 通常は、シミュレーションが不安定な場合、ジョイントがソフトすぎる場合、または貫入の量が多すぎる場合は、[サブステップ](Substeps)の値を上げます(「リジッドボディシミュレーションの精度の設定」を参照)。ただし、実際のシェイプ オブジェクトが高速でぶつかっているシミュレーション以外は、100 を超える値を指定する必要はありません。値を100にしてもシミュレーションが成功しない場合は、問題は別のところにある可能性があります。

  • 衝突の安定化を図るには、[適応衝突](Adaptive Collisions)[適応レベル](Adaptive Level)の値を調整します(「PhysX 対応の衝突の精度の設定」を参照)。

    ただし、衝突ジオメトリにバウンディング シェイプを使用している場合は、[適応レベル](Adaptive Collisions)オプションをオフにします。バウンディング シェイプの衝突には、適応レベルの精度を追加する必要はありませんが、精度を上げると速度が落ちます(つまり、サブステップの値を上げるとそれに伴ってより時間がかかります)。通常、実際の形状の衝突ジオメトリでは、適応レベルがより便利です。

  • シミュレーションが少し揺れる場合や不安定な場合は、非表示になっているリジッド ボディやリジッド ボディのコンストレイント オブジェクトがないかを Explorer で確認します。非表示のリジッド ボディおよびコンストレイント オブジェクトは、Softimage のその他の非表示のオブジェクトと同様に、単に表示されていないだけで、リジッド ボディ シミュレーションに存在します。

    コンストレイント オブジェクトを保持したまま、シミュレーションで影響が出ないようにするには、非表示のコンストレイント オブジェクトをミュートにしてください。

PhysX エンジンの活用

リジッド ボディを作成してゲーム用エンジンに書き出す場合は、[PhysX Dynamics Operator]プロパティ エディタの[アドバンス]ページのパラメータを確認します(「[PhysX Dynamics Operator]プロパティ エディタ」(「プロパティ リファレンス」)を参照)。