物理ベース アニメーションは、インタラクティブな速度で物理的に妥当な動作をシミュレートするコンピュータグラフィックスの分野です。物理ベース アニメーションの進歩は、ビデオ ゲーム、インタラクティブシミュレーション、映画に物理的にインスピレーションを得た複雑な動作を含める必要性から生まれることがよくあります。物理ベース アニメーションで研究されている問題のほとんどすべてを解決するオフライン シミュレーション方法が存在しますが、これらの方法は、物理的な精度と低速で詳細な計算を必要とするアプリケーション向けです。オフライン シミュレーションで一般的な方法とは対照的に、物理ベース アニメーションの技法は、物理的な精度よりも、物理的な妥当性、数値的安定性、視覚的な魅力を重視しています。物理ベース アニメーションは、インタラクティブ アプリケーションによって課される厳しい時間制約のため、物理的動作の大まかな近似に限定されることがよくあります。ゲームやシミュレーションなどのインタラクティブ アプリケーションのターゲットフレーム レートは、多くの場合 25 ~ 60ヘルツで、個々のフレームに割り当てられた時間のごく一部だけが物理シミュレーションに使用されます。物理的動作の簡略化されたモデルは、より効率的で、加速が容易(事前計算、巧妙なデータ構造、またはSIMD / GPGPU を介して)であるか、望ましい数学的特性(軟体が変形するときの無条件の安定性や体積保存など)を満たす場合に一般的に好まれます。視覚化の最も重要な目標が美的魅力やプレイヤーの没入感の維持である場合、細かい詳細は重要ではありません。なぜなら、これらの詳細は人間が気付くのが難しい場合や、人間のスケールでは区別できないことが多いためです。[1]
歴史
物理ベースのアニメーションは、現在では映画やビデオゲームで一般的になっていますが、多くの手法は、初期の特殊効果シーンやゲームエンジンの開発中に開拓されました。『スタートレックII カーンの逆襲』では、ジェネシスの爆発シーンでパーティクルシステムを使用して、惑星を飲み込む炎の衝撃波の視覚効果を生み出したことで有名です。[2]物理エンジンがゲームで一般的な機能になる前にリリースされたにもかかわらず、 System Shockはエンジンに剛体物理を組み込み、この機能とそれがプレイヤーに提供する新しいインタラクション感覚により革新的であると広く考えられました。Valveは後にHalf-Lifeを開発し、剛体物理を使用して、箱を積み重ねなければ到達できない障害物など、プレイヤーのための環境パズルを作成しました。Half -Life 2では、これらの機能を披露するために、滑車やレバーなどの制約システムを組み込んだより高度な物理エンジンと、より多くの環境パズルを採用しました。物理エンジンは現在、ゲームではるかに一般的になっており、その頻繁な登場は、 Nvidiaなどの企業による物理ベースアニメーションの研究を促進しました。
ゲームやシミュレーションにおける物理ベースのアニメーション
物理ベースのアニメーションは、ユーザーが環境とインタラクションすることが期待されるゲームやシミュレーションでは一般的です。Havok、PhysX、Bulletなどの物理エンジンは、ライセンス供与されてゲームに組み込まれる別個に開発された製品として存在します。 Angry BirdsやWorld of Gooなどのゲームでは、物理ベースのアニメーション自体が主要なゲームメカニクスであり、プレイヤーは目標を達成するために物理的にシミュレートされたシステムと対話したり作成したりすることが期待されます。 物理パズルゲームの側面は、他のジャンルに属していても物理ベースのシミュレーションを特徴とする多くのゲームに存在します。 物理ベースのアニメーションを通じて環境と物理的にインタラクションできるようにすることで、プレイヤーによるパズルの非線形な解決が促進され、レベルデザイナーが意図的に含めなかったゲームで提示された問題の解決につながることがあります。 軍事シミュレーションなど、娯楽以外の目的で使用されるシミュレーションでも、物理ベースのアニメーションを使用して現実的な状況を描写し、ユーザーの没入感を維持します。物理ベース アニメーションの多くのテクニックは、GPGPU 実装を念頭に置いて設計されているか、グラフィックス ハードウェアのメリットを享受できるように拡張できます。グラフィックス ハードウェアを使用すると、ゲームに十分な速度で物理ベース シミュレーションを実行できます。ただし、GPU 時間はレンダリング用に予約されることが多く、ホストとデバイス間の頻繁なデータ転送はパフォーマンスのボトルネックになりやすくなります。
映画における物理ベースのアニメーション
映画の特殊効果の開発では、シミュレーションはオフライン (つまり、表示時以外) で実行できます。したがって、特殊効果の制作では速度は厳密には必須ではありませんが、適度に応答性の高いフィードバックを得るには速度が望ましいです。また、低速な方法に必要なハードウェアは高価です。ただし、低速で精度の高い方法はコストがかかり、制限があるため、物理ベースのアニメーションが依然として好まれます。特殊効果の細部の物理的精度は、視覚的な魅力には影響せず、アーティストやディレクターが動作に対して及ぼす制御の範囲を制限し、結果を達成するために必要な金銭的コストと時間を増加させます。望ましい芸術的方向性を達成するには、映画で物理的にインスピレーションを受けた効果の高レベルの動作を指示できることが必要ですが、流体、煙、または多数の個別のオブジェクトが関係する場合、細部のレベルで物理的な動作をスクリプト化することは不可能な場合があります。物理ベースのアニメーションでは、通常、アーティストがシミュレートされた結果の外観をより細かく制御でき、望ましい効果が物理法則を曲げたり無視したりする可能性がある場合にも便利です。
サブトピック
剛体シミュレーション
簡略化された剛体物理学は比較的安価で実装が容易であるため、インタラクティブ ゲームやシミュレーションでは他のほとんどの手法よりも早く登場しました。剛体はシミュレーション中に変形しないものと想定されるため、時間ステップ間の剛体の動きは、従来は4x4 行列として格納されたアフィン変換を使用して、平行移動と回転として記述できます。または、クォータニオンを使用して回転を格納し、ベクトルを使用してオブジェクトの原点からのオフセットを格納することができます。剛体ダイナミクスで最も計算コストが高いのは、衝突検出、物体と環境の相互貫通の修正、静止接触の処理です。剛体は一般的に反復的にシミュレートされ、より小さな時間ステップを使用してエラーを修正するためにバックトラッキングが行われます。複数の剛体間の静止接触 (剛体が山のように落ちたり積み重ねられたりする場合など) は、効率的に処理するのが特に難しく、インパルス ベースの方法を使用して解決するために複雑な接触および衝撃伝播グラフが必要になる場合があります。多数の剛体をシミュレートする場合、衝突の検出と応答を目的として、簡略化されたジオメトリまたは凸包を使用して剛体の境界を表すことがよくあります (これが一般にシミュレーションのボトルネックとなるため)。
ソフトボディシミュレーション
ソフトボディは、スプリングメッシュシステムを使用して簡単に実装できます。スプリングメッシュシステムは、個別にシミュレートされた粒子で構成され、これらの粒子はシミュレートされたスプリング力によって互いに引き寄せられ、シミュレートされたダンパーからの抵抗を受けます。任意のジオメトリは、ラティスのノードにスプリング力とダンパー力を適用し、ラティスを使用してオブジェクトを変形することで、より簡単にシミュレートできます。ただし、これらのシステムの明示的なソリューションは数値的にあまり安定しておらず、スプリングパラメータを通じて動作を制御するのは非常に困難です。物理的に妥当で視覚的に魅力的なソフトボディを可能にし、数値的に安定しており、アーティストが適切に構成できる手法は、初期のゲームの歴史では非常に高価であったため、ソフトボディはリジッドボディほど一般的ではありませんでした。ルンゲクッタ法を使用した積分を使用して、スプリングメッシュなどの不安定な手法の数値的安定性を高めることができます。または、より細かい時間ステップを使用してシミュレーションを行うこともできます (ただし、これはコストが高く、任意の大きな力に対してスプリングメッシュを安定させることはできません)。形状マッチングや位置ベースダイナミクスなどの技術は、インタラクティブなゲームやシミュレーションを念頭に置いてこれらの問題に対処します。位置ベースダイナミクスは、Bullet(ソフトウェア)、Havok、PhysXなどの主流のゲームエンジンで使用されています。[3] [4]無条件の安定性と構成の容易さは、ソフトボディシミュレーションの特に望ましい特性であり、スプリングメッシュシステムでは実現が難しい場合がありますが、そのシンプルさとスピードのためにゲームでは今でもよく使用されています。
流体シミュレーション
計算流体力学はコストがかかることがあり、複数の流体体間の相互作用や外部の物体/力との相互作用を評価するには複雑なロジックが必要になることがあります。ビデオゲームでの流体シミュレーションは一般に、水の高さのみをシミュレートして波、さざ波、その他の表面特徴の効果を作成することで実現されます。比較的自由な液体の場合、粒子を流体の有限要素(または物理的特性のキャリア)として扱い、ナビエ-ストークス方程式を近似することでシミュレーションを高速化するために、ラグランジュ法またはセミラグランジュ法がよく使用されます 。[5] [6]ゲームで流体体をシミュレートすることは一般的ではありませんが、同様の方法を使用して表面特徴をシミュレートしたり、流体シミュレーションを使用してテクスチャや高さフィールドを生成し、リアルタイムシミュレーションなしで水をリアルタイムでレンダリングしたりすることはあります(これはゲーム内の大きな水体でよく行われます)。流体シミュレーションはGPGPUを介して市販のグラフィックスハードウェアを使用して計算することができ、格子ボルツマン法を使用して波のような動作をもたらす高さフィールドを効率的に計算することができます。[7]あるいは、表面の特徴と波を粒子としてシミュレートし、シミュレートされた粒子から高さフィールドをリアルタイムで生成することもできます。これにより、流体と浮遊物体間の効率的な双方向の相互作用も可能になります。[8]
パーティクルシステム
パーティクル システムは、実装の容易さ、効率性、拡張性、アーティストによる制御性から、映画やゲームで視覚効果を作成するための非常に一般的な手法です。パーティクル システムの更新サイクルは通常、生成、シミュレーション、消滅の 3 つのフェーズで構成されます。これらのフェーズはそれぞれ、新しいパーティクルの導入、次のタイムステップでのそれらのシミュレーション、寿命を超えたパーティクルの削除で構成されます。パーティクルの物理的および視覚的属性は通常、生成時にランダム化され、属性の範囲と分布はアーティストによって制御されます。パーティクル システムはさらに、より複雑で動的な効果を作成するためにパーティクル システム自体を生成するようにすることができ、その高レベルの動作は、標準的な Sims 論文 [9]にあるように、演算子のフレームワークを通じて振り付けることができます。 パーティクル システムをレンダリングした初期のゲームでは、パーティクルが環境内のジオメトリと部分的に交差するとクリッピング アーティファクトが発生し、このアーティファクトは特に大きなパーティクル (煙の代わりに使用されることが多い) で顕著でした。ソフト パーティクルは、パーティクルが表面に近づくにつれて透明度が増すように、パーティクルの透明度を慎重にシェーディングして操作することで、これらのアーティファクトに対処します。
群れ
物理ベースアニメーションにおいて、群集とは、仮想的な力を用いて鳥、魚の群れ、昆虫の大群の複雑な行動をモデル化する手法を指す。これらの仮想的な力は、群れが速度を集中させ、衝突や混雑を避け、グループに向かって移動する傾向をシミュレートする。これらのシミュレーションでは、群れの個々のメンバー(バードオイドの略でボイドと呼ばれることもある)は、仲間の位置と速度に関する情報のみを使用して協力することなく行動し、同期したグループ行動の錯覚を効率的に作り出す。[10]群集は人間の群衆の行動を効率的に近似するためにも使用でき、群集に基づく方法はゲーム内のNPCの群衆によく使用される。UnrealとHalf-Lifeは、屋外レベルに存在する鳥や飛行生物の行動をモデル化するために使用された群集を実装した最初のゲームの1つであった。
物理ベースのキャラクターアニメーション
ゲームやシミュレーションのキャラクターは、従来、キーフレームなどの方法でアニメーション化され、より複雑な動作を伝えるために順序付けられたより小さな静的な動きの合成を通じてアニメーションが定義されます。視覚的には、これらの静的な方法では、環境との複雑な相互作用を簡単に伝えることができず、リアルなキャラクターの動きを実現することが困難です。物理ベースのキャラクターアニメーションのテクニックは、エネルギー最小化などの物理ベースの制約を与えられた特定の目標に向かって動きを最適化することにより、ユーザーの操作、外部イベント、および環境に応答する動的なアニメーションを実現します。[11]より静的な方法とは対照的に、物理ベースのキャラクターアニメーションの採用は、その使用に関連するコストと複雑さの増加のため、ゲーム業界では遅々としています。物理ベースのキャラクターアニメーションは、ビデオゲームのスケートシリーズや、独立して開発された一人称シューティングゲームStarForgeで使用されています。
参考文献
- ^ Baraff、Witkin (1999)。「物理ベースモデリングコースノート」。SIGGRAPH 。コース 36。
- ^ Reeves, W. 「パーティクル システム - ファジー オブジェクトのクラスをモデリングする手法」(PDF)。ACM Transactions on Graphics。
- ^ Müller, M.; B. Heidelberger; M. Hennix; J. Ratcliff (2006). 「位置ベースのダイナミクス」(PDF)。仮想現実インタラクションおよび物理シミュレーション (VRIPhys) の議事録。
- ^ Müller, M.; B. Heidelberger; M. Teschner; M. Gross (2005). 「形状マッチングに基づくメッシュレス変形」ACM Transactions on Graphics . 24 (3): 471–478. doi :10.1145/1073204.1073216.
- ^ Foster; Metaxas (1996). 「液体のリアルなアニメーション」(PDF) .グラフィカルモデルと画像処理. 58 (5): 471–483. doi :10.1006/gmip.1996.0039.
- ^ Stam, J. (1999). 「安定した流体」(PDF) . SIGGRAPH .
- ^ Geist, Robert; Christopher Corsi; Jerry Tessendorf; James Westall (2010). 「格子ボルツマン水波」(PDF) . ISVC .[リンク切れ ]
- ^ Yuksel, Cem; Donald House; John Keyser (2007). 「波動粒子」(PDF) . ACM Transactions on Graphics . 26 (3): 99. doi :10.1145/1276377.1276501.
- ^ Sims, Karl (1990 年 8 月). 「データ並列計算を使用したパーティクルアニメーションとレンダリング」(PDF) .コンピュータグラフィックス. 4. 24 (4): 405–413. doi :10.1145/97880.97923.
- ^ Reynolds, C. (1989). 「群れ、群れ、そして群れ群:分散行動モデル」SIGGRAPH。
- ^ Geijtenbeek, T.; N. Pronost ; A. Egges; および MH Overmars (2011). 「シミュレートされた物理法則を使用したインタラクティブなキャラクターアニメーション」(PDF)。Eurographics 。
