Damage Mounts
他のマシンや環境との衝突は、我々がモデル化する必要のある唯一の側面であり、この他に考察が必要な重要な領域はダメージ結果のシミュレーションです。
前述のとおり、古いシステムはスフィアの位置を動かして圧搾に近い表現を行いました。スフィアが接触するフォースは、衝突/コリジョンとダメージエフェクトをモデル化するために、それぞれ弾力と可塑性 – 外力を受けたあと元に戻ろうとする力と変形したまま歪が残る性質 – に分けました。
これで正確に圧搾をモデル化するために変形する凸形状シェイプができたので、次はダメージ状態を追跡するための補完するメソッドが必要です。
さらに、ダメージが溜まればパーツが外れるようにしたいが、そうは言ってもそれらをマシンに繋がったままにもしておきたい。例えばボンネットフードが壊れて開いたままになっているときでも、ヒンジは止まっていてフードは上下にバタバタするでしょう。
これによってマウントが追加されました。どのマシンも複数のコリジョンシェイプに加えて、マシンの各パーツに連結するマウントの集団も持つことになります。各マウントはそのマウントパーツ自身のダメージと、ヒンジや他のアタッチメントをシミュレートする接続スプリングをもモデル化することができます。
ダメージに必要なマウントとアタッチメントはマシンのあらゆる場所に配置・定義します。各マウントはその位置と基本的な構造を表現できるよう調整するすることができます。
シェイプが衝突/コリジョンを検出すると、ふさわしいダメージを引き起こすフォースが生成され、各マウントから伝播する。各接点では徐々にダメージが蓄積されていき、コリジョンシェイプの圧搾によってマウントはやがてダメージが溜まっていき、最終的には外れてしまいます。
以下の図でマシンに配置されたマウントを小さなボックスとして見ることができます。
Removing Parts
パーツが外れたあとの正確なモデル化も必要です。各パーツの重量と慣性、それからそれらがマシンに取り付けられているときと外れてしまったときにそれぞれ車体にどのように影響するのか、決定する必要があります。
iRacing では、マシンに取り付けられたすべてのパーツがシミュレーションステップごとに外部および内部のフォースすべての動きにどのように相互に反応するのか、とても洗練されたマルチボディ解法を使って計算しています。
マルチボディシステムは、我々がマシンをモデル化する上で不可欠で、サスペンションや駆動装置やシャシーなどあらゆるジオメトリを正確な描写でビルドすることができます。
マルチボディ解法は多くの作業をリアルタイムに行う必要があるため、システムは最適なコードでプリコンパイルして 360Hz で処理できるように設計されています。残念ながらコードをプリコンパイルするためには、ボディアレンジは固定的であることが必要です。言い換えれば、マシンからボディを取り外したり付け直したりすることは簡単にはできません。
壊れたパーツが外れるためには、パフォーマンスの犠牲なしにこのシステムをやり直す必要がありました。マルチボディシステムを増強することで、シャシーとボディが切り離し可能な重量と慣性の合計を保持するようにしました。パーツが壊れたりはがれたりするかは、動的に状態をアップデートされます。
パーツが脱落したら、新しく分離されたパーツはそれ自身がコリジョンモデルとフィジクスを持ちます。つまりそのパーツ自身が路面に落ちて崩壊したり跳ね返ったりします。
ホイールも外れる必要があります。ホイールはすでにマルチボディの一部なので、外れたホイールの重量をマシンから取り除くという似たアプローチをとります。
これらすべての固有の重量が動的に考慮され、大きなクラッシュでも重量とエネルギーを正確に動かします。
以下はダメージによってパーツやホイールが外れたマシンのサンプルです。
Comments