シミュレーションを実行する

 
 
 

Bullet の物理シミュレーションは Maya のタイムラインによって駆動されます。シミュレーションを実行するには、ソルバの開始フレームからアニメーションを再生します。これは既定では Maya のタイムラインのフレーム 1 です。シミュレーションの時間を長くするには、タイムラインの長さを増やします。

Bullet は時間(秒)で動作し、固定レートでシミュレーションの各手順を行います。Bullet のソルバは、時間単位としてフレームを使用しません。固定レートにより、シミュレーションの解像度が決まり、ソルバの内部の固定フレーム レート(Internal Fixed Frame Rate)アトリビュートによって指定されます。これは既定で毎秒 60 ステップに設定されています。

注:これを 120 Hz に変更してソルバ処理精度を向上させることもできます。手順は、アトリビュート エディタ > 内部の固定フレーム レート(Attribute Editor > Internal Fixed Frame Rate)です。

たとえば、Maya が 30 fps で再生するように設定されている場合、フレームごとに 2 Bullet サブステップになります。この設計の実装のほうが、フレームごとの描画および計算の時間がほぼ一定になるリアルタイム ゲーム アプリケーションのサポートに適しています。ソルバが任意の 2 つの描画フレーム間にかかるシミュレーションのステップ数を変えられるようにすると、ソルバが一定の描画速度を維持する必要があるケースでは不利になります。

また、このソルバは、Bullet ソルバがシミュレーションの各ステップの時間を一定にするための別の方法として、明示的なアルゴリズムではなく、反復解法アルゴリズムを用いて動的連立方程式を解いています。反復解法では、まず解の近似値を求めてから、これらの値を方程式に戻してより正確な解を出します。ソルバが解の近似値を求めるために必要な時間は一定であり、方程式の数にのみ依存します。 

1 回の反復での解の変動が数イプシロン未満になったときに、その時点で解が得られたとみなします。シミュレーションによっては、その解にさらに何度か反復を実行しないと解に収束しない場合があります。このソルバの最大反復回数(Max Num Iterations)アトリビュートでは、連立方程式を反復する回数の最大値を設定します。その回数に到達したら計算が停止し、その時の近似解が最終の解として使用されます。したがって、シミュレーション ステップの合計時間の上限を設定できます。この方法の欠点は、最終解の精度がより明示的なソルバーを使用した場合ほど良くならない可能性があることです。ゲームやムービーのほとんどのアプリケーションでは、このソルバの精度で十分です。

シミュレーションをベイク処理する方法についての詳細は、「Bullet リジッド ボディのシミュレーションをベイク処理する」を参照してください。