物理演算エンジン

提供: MonoBook
物理演算から転送)
ナビゲーションに移動 検索に移動

物理演算エンジン(読み:ぶつりえんざんエンジン、英語:physics engine)とは、質量・速度・摩擦・風といった、古典力学的な法則をシミュレーションするコンピュータソフトウェアである。略して「物理演算」、「物理エンジン」、「Physics」とも呼ばれる。

概要[編集 | ソースを編集]

3DCGの品質向上に伴い「物体の動き」も現実的な挙動が求められるようになってきた。そうした需要を満たすために登場したのが物理演算エンジンである。

既存の3Dモデルに「重さ」や「硬さ」などのパラメーターを持たせ、物理演算エンジンに投げ込み、「何ミリ秒進む」などという命令を実行すると、その時点における物体間の衝突や移動先などを自動計算してくれるというものである。物理演算エンジンを使うだけのプログラマーは挙動について深く考える必要がなくなる。

物理演算エンジンのほとんどはプログラムなどに組み込むミドルウェアライブラリ)である。稀にスタンドアロンで動くソフトウェアもある。スタンドアロン製品はロボコンに出ているようなロボットの開発者なんかが設計段階の大雑把なシミュレーションに使っているらしい。

非リアルタイムとリアルタイム[編集 | ソースを編集]

物理演算エンジンとひとことでいっても、映像作品向けのリアリティを追求したものと、ゲーム向けの物理法則を無視して派手に作用するものがある。

前者はリアルタイム性が求められないため分散処理などへの対応が進んでいる。データを複数のコンピューターに分散配置して一気に演算を行うため、データ分配に時間がかかるため瞬発力はないが、膨大な演算能力を割り当てることができる。いわゆるスーパーコンピューターなどを使う方式だ。

一方、後者のゲーム向け物理演算エンジンは1フレームの処理時間(60fpsであれば16ミリ秒)の一部しか使えない。1フレーム中には物理演算以外の他の処理もあるので物理演算に割り当てられるのはせいぜい半分の8ミリ秒程度であろう。そのため大胆な近似モデル(それらしい挙動になるざっくり演算)が採用されているのが一般的である。

一昔前のゲームで多様されたHavokなど一部のライブラリでは放送用とゲーム用の演算方式を設定で簡単に切り替えられる。

検索キーワード[編集 | ソースを編集]

ググるゲームエンジン系の情報は豊富にある。日本語による情報は少ないため検索キーワード英語の「physics」を使うと捗る。

主な物理演算エンジン[編集 | ソースを編集]

物理演算エンジン付きアプリケーション[編集 | ソースを編集]

三大物理演算エンジン[編集 | ソースを編集]

三大物理演算エンジンは半導体メーカーの資金援助が色濃い。

.NET Framework向けライブラリ[編集 | ソースを編集]

この項目はXamarin.MacおよびXamarin.AndroidにおけるMonoGameで使える物理演算エンジンを調査するために書いている。よって内容は極端に偏っているし、ざっくり触った程度での大嘘も含まれる。

2D
3D

関連項目[編集 | ソースを編集]

参考文献[編集 | ソースを編集]