「物理演算エンジン」の版間の差分

提供:MonoBook
imported>Administrator
編集の要約なし
 
(同じ利用者による、間の2版が非表示)
2行目: 2行目:


==概要==
==概要==
この項目は[[Xamarin.Mac]]および[[Xamarin.Android]]における[[MonoGame]]で使える物理演算エンジンを調査するために書いている。よって内容は極端に偏っているし、ざっくり触った程度での大嘘も含まれる。
[[3DCG]]の品質向上に伴い「物体の動き」も現実的な挙動が求められるようになってきた。そうした需要を満たすために登場したのが物理演算エンジンである。
 
既存の3Dモデルに「重さ」や「硬さ」などのパラメーターを持たせ、物理演算エンジンに投げ込み、「何ミリ秒進む」などという命令を実行すると、その時点における物体間の衝突や移動先などを自動計算してくれるというものである。物理演算エンジンを使うだけの[[プログラマー]]は挙動について深く考える必要がなくなる。
 
物理演算エンジンのほとんどは[[プログラム]]などに組み込む[[ミドルウェア]]([[ライブラリ]])である。稀に[[スタンドアロン]]で動く[[ソフトウェア]]もある。スタンドアロン製品は[[ロボコン]]に出ているような[[ロボット]]の開発者なんかが設計段階の大雑把なシミュレーションに使っているらしい。
 
=== 非リアルタイムとリアルタイム ===
物理演算エンジンとひとことでいっても、映像作品向けのリアリティを追求したものと、[[ゲーム]]向けの物理法則を無視して派手に作用するものがある。
 
前者はリアルタイム性が求められないため分散処理などへの対応が進んでいる。[[データ]]を複数の[[コンピューター]]に分散配置して一気に演算を行うため、データ分配に時間がかかるため瞬発力はないが、膨大な演算能力を割り当てることができる。いわゆる[[スーパーコンピューター]]などを使う方式だ。


物理演算エンジンのほとんどは[[プログラム]]などに組み込む[[ミドルウェア]]([[ライブラリ]])である。稀にスタンドアロンで動くソフトウェアもある。スタンドアロン製品は[[ロボコン]]に出ているような[[ロボット]]の開発者なんかが設計段階の大雑把なシミュレーションに使っているらしい。
一方、後者のゲーム向け物理演算エンジンは1フレームの処理時間(60fpsであれば16ミリ秒)の一部しか使えない。1フレーム中には物理演算以外の他の処理もあるので物理演算に割り当てられるのはせいぜい半分の8ミリ秒程度であろう。そのため大胆な近似モデル(それらしい挙動になるざっくり演算)が採用されているのが一般的である。


物理演算エンジンとひとことでいっても、映像作品向けのリアリティを追求したものと、[[ゲーム]]向けの物理法則を無視して派手に作用するものがある。一昔前のゲームで多様された[[Havok]]など一部のライブラリでは放送用とゲーム用の演算方式を設定で簡単に切り替えられる。
一昔前の[[ゲーム]]で多様された[[Havok]]など一部のライブラリでは放送用とゲーム用の演算方式を設定で簡単に切り替えられる。


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


==主な物理演算エンジン==
==主な物理演算エンジン==
21行目: 31行目:
===三大物理演算エンジン===
===三大物理演算エンジン===
三大物理演算エンジンは半導体メーカーの資金援助が色濃い。
三大物理演算エンジンは半導体メーカーの資金援助が色濃い。


*[[PhysX]]
*[[PhysX]]
31行目: 40行目:


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


;2D
;2D
63行目: 73行目:
*[[ゲームエンジン]]
*[[ゲームエンジン]]


==参考文献==
[[category: 物理演算エンジン]]
{{reflist}}
 
{{stub}}

2025年3月17日 (月) 01:54時点における最新版

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2D
3D

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