コンピュータアニメーションの物理法則、あるいはゲーム物理法則とは、シミュレーションやビデオゲーム内で定義される物理法則と、これらの法則を実装するために使用されるプログラミングロジックのことです。ゲーム物理法則は、現実世界の物理法則との類似性において大きく異なります。プレイヤーや観察者にとってリアルに見えるように、ゲームの物理法則は、可能な限り現実世界の物理法則を忠実に再現するように設計される場合もあります。一方、ゲームプレイ上の目的で、意図的に実際の物理法則から逸脱する場合もあります。プラットフォームゲームにおける一般的な例としては、空中で水平方向に移動を開始したり方向転換したりできる機能や、一部のゲームに見られる二段ジャンプ機能などが挙げられます。重力の量など、物理パラメータの値を設定することも、特定のゲームの物理法則を定義する要素の一つです。
シミュレーション物理学の構成要素には、物理エンジン、環境内でニュートン力学をシミュレートするために使用されるプログラムコード、および環境内の2つ以上の物理オブジェクトが互いの経路を交差するタイミングを判定するために使用される衝突検出など、いくつかの要素があります。
物理シミュレーションには、剛体シミュレータと軟体シミュレータという2つの主要なタイプがあります。剛体シミュレーションでは、オブジェクトは相互作用の仕方に基づいてカテゴリに分類され、パフォーマンス負荷は低くなります。軟体物理では、各オブジェクトの個々の部分をシミュレートすることで、より現実的な挙動を実現します。[ 1 ]
何らかの紛争をモデル化したコンピュータゲームに共通する要素の一つに爆発があります。初期のコンピュータゲームでは、あらゆる状況で同じ爆発を繰り返すという単純な方法が用いられていました。しかし、現実世界では、爆発は地形、爆発高度、衝突する固体の種類によって変化する可能性があります。利用可能な処理能力に応じて、爆発の影響は、膨張するガスによって推進される分裂および粉砕された構成要素としてモデル化できます。これは、粒子システムシミュレーションによってモデル化されます。粒子システムモデルでは、煙、流れる水、降水など、他のさまざまな物理現象をシミュレートできます。システム内の個々の粒子は、物理シミュレーション規則の他の要素を使用してモデル化されますが、シミュレートできる粒子の数はハードウェアの計算能力によって制限されます。したがって、爆発は、より正確な多数の微粒子ではなく、少数の大きな粒子としてモデル化する必要がある場合があります。[ 2 ]
これは、キャラクターが殺されたときの動きを表示するためのプロシージャルアニメーションおよびシミュレーション技術です。キャラクターの体を、関節でヒンジで接続された一連の剛体骨として扱います。シミュレーションは、体が地面に倒れたときに何が起こるかをモデル化します。クリーチャーの動きと衝突相互作用のより高度な物理モデルには、より高いレベルの計算能力と、固体、液体、および流体力学のより正確なシミュレーションが必要です。モデル化された関節システムは、骨格、筋肉、腱、およびその他の生理学的コンポーネントの効果を再現できます。[ 3 ] BoneworksやHalf-Life 2などの一部のゲームでは、個々の関節に力を加えることで、ラグドールが完全なプロシージャルアニメーションで人間のように動き、振る舞うことができます。これにより、たとえば、敵をノックダウンしたり、個々の関節をつかんで動かしたりすることができ、物理ベースのアニメーションがそれに応じて適応します。これは、従来の方法では不可能です。この方法はアクティブラグドールと呼ばれ、逆運動学と組み合わせて使用されることがよくあります。
矢や弾丸などの投射物は、非常に高速で飛ぶことがよくあります。そのため、衝突時に問題が発生します。投射物があまりにも速く飛ぶため、薄い物体に衝突したことを検知することなく通り過ぎてしまうことがあるのです。以前は、物理的な投射物を作成する必要のないレイキャスティングでこの問題を解決していました。しかし、武器の照準方向にレイを発射するだけではあまり現実的ではないため、現代のゲームでは、重力やその他の力の影響を受ける物理的な投射物を作成することがよくあります。この投射物は、連続的な衝突検出方式を使用して、上記の問題が発生しないようにしています(ただし、このような処理を実行するにはより複雑な計算が必要となるため、パフォーマンスは低下します)。
FIFA 14のようなゲームでは、サッカーボールなどの物体の正確な投射物理演算が求められます。FIFA 14では、開発者は以前のゲームで不正確だった抗力係数に関連するコードを修正する必要があり、その結果、実際のボールのよりリアルなシミュレーションが実現しました。[ 4 ]