「物理演算エンジン」を編集中

ナビゲーションに移動 検索に移動

警告: ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。ログインまたはアカウントを作成すれば、あなたの編集はその利用者名とともに表示されるほか、その他の利点もあります。

この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。

最新版 編集中の文章
1行目: 1行目:
'''物理演算エンジン'''(読み:ぶつりえんざんエンジン、[[英語]]:physics engine)とは、質量・速度・摩擦・風といった、古典力学的な法則をシミュレーションする[[コンピュータ]]の[[ソフトウェア]]である。略して「物理演算」、「物理エンジン」、「Physics」とも呼ばれる。
+
'''物理演算エンジン'''(読み:ぶつりえんざんエンジン、[[英語]]:physics engine)とは、質量・速度・摩擦・風といった、古典力学的な法則をシミュレーションする[[コンピュータ]]の[[ソフトウェア]]であり、ほぼ[[ミドルウェア]]を指す(稀に学者向けのスタンドアロンで動くソフトウェアもある)。
  
 
==概要==
 
==概要==
[[3DCG]]の品質向上に伴い「物体の動き」も現実的な挙動が求められるようになってきた。そうした需要を満たすために登場したのが物理演算エンジンである。
+
この項目は[[MonoMac]]と[[MonoGame]]で使える物理演算エンジンを調査するために書いている。
 +
よって内容は偏っているし、大嘘も含まれる。
  
既存の3Dモデルに「重さ」や「硬さ」などのパラメーターを持たせ、物理演算エンジンに投げ込み、「何ミリ秒進む」などという命令を実行すると、その時点における物体間の衝突や移動先などを自動計算してくれるというものである。物理演算エンジンを使うだけの[[プログラマー]]は挙動について深く考える必要がなくなる。
+
物理演算エンジンとひとことでいっても、映像作品向けのリアリティを追求したものと、[[ゲーム]]向けの物理法則を無視して派手に作用するものがある。Havokなど一部のライブラリではこのような演算方式の違いは設定で切り替えられる。
  
物理演算エンジンのほとんどは[[プログラム]]などに組み込む[[ミドルウェア]]([[ライブラリ]])である。稀に[[スタンドアロン]]で動く[[ソフトウェア]]もある。スタンドアロン製品は[[ロボコン]]に出ているような[[ロボット]]の開発者なんかが設計段階の大雑把なシミュレーションに使っているらしい。
+
略して「物理演算」、「物理エンジン」、「Physics」とも呼ばれる。
 
+
[[ググる]]と[[ゲームエンジン]]系の情報は豊富にある。
=== 非リアルタイムとリアルタイム ===
+
日本語による情報は少ないため検索キーワードは[[英語]]の「physics」が捗るようだ。
物理演算エンジンとひとことでいっても、映像作品向けのリアリティを追求したものと、[[ゲーム]]向けの物理法則を無視して派手に作用するものがある。
 
 
 
前者はリアルタイム性が求められないため分散処理などへの対応が進んでいる。[[データ]]を複数の[[コンピューター]]に分散配置して一気に演算を行うため、データ分配に時間がかかるため瞬発力はないが、膨大な演算能力を割り当てることができる。いわゆる[[スーパーコンピューター]]などを使う方式だ。
 
 
 
一方、後者のゲーム向け物理演算エンジンは1フレームの処理時間(60fpsであれば16ミリ秒)の一部しか使えない。1フレーム中には物理演算以外の他の処理もあるので物理演算に割り当てられるのはせいぜい半分の8ミリ秒程度であろう。そのため大胆な近似モデル(それらしい挙動になるざっくり演算)が採用されているのが一般的である。
 
 
 
一昔前の[[ゲーム]]で多様された[[Havok]]など一部のライブラリでは放送用とゲーム用の演算方式を設定で簡単に切り替えられる。
 
 
 
== 検索キーワード ==
 
[[ググる]]と[[ゲームエンジン]]系の情報は豊富にある。日本語による情報は少ないため[[検索キーワード]]は[[英語]]の「physics」を使うと捗る。
 
  
 
==主な物理演算エンジン==
 
==主な物理演算エンジン==
===物理演算エンジン付きアプリケーション===
+
===アプリケーション===
 +
* [[Phun]]
 +
*: ドローソフト
 +
* [[RigidChips]]
 +
* [[Blender]]
 +
*: 3Dモデリングソフト。
 +
* [[Unity]]
 +
*: [[ゲームエンジン]]
  
*[[Phun]] = 物理演算エンジン付きドローソフト。描いたイラストに物理演算(重力)が適用されてまともに描けない。
+
===ライブラリ===
*[[RigidChips]]
+
* [[PhysX]]
*[[Blender]] = 3Dモデリングソフト。
+
*: [[NVIDIA]]が買収。
*[[Unity]] = [[ゲームエンジン]]
+
* [[Havok]]
*[[Godot]] = [[ゲームエンジン]]
+
*: [[Intel]]が買収。[[Bullet]]登場以前は[[AMD]]も推奨していた。
 
+
* [[Bullet]]
===三大物理演算エンジン===
+
*: [[AMD]]が引き抜いた[[Havok]]開発者の新作。裏に[[Google]]もいる。
三大物理演算エンジンは半導体メーカーの資金援助が色濃い。
 
 
 
*[[PhysX]]
 
*:[[NVIDIA]]が買収。
 
*[[Havok]]
 
*:[[Intel]]が買収。[[Bullet]]登場以前は[[AMD]]も推奨していた。
 
*[[Bullet]]
 
*:[[AMD]]が引き抜いた[[Havok]]開発者の新作。裏に[[Google]]もいる。
 
 
 
===.NET Framework向けライブラリ===
 
この項目は[[Xamarin.Mac]]および[[Xamarin.Android]]における[[MonoGame]]で使える物理演算エンジンを調査するために書いている。よって内容は極端に偏っているし、ざっくり触った程度での大嘘も含まれる。
 
  
 +
===.NET Framework===
 
;2D
 
;2D
 
+
* [[Box2DX]]
*[[Box2DX]]
+
*: [[Box2D]]のラッパーライブラリ。
*:[[Box2D]]のラッパーライブラリ。
+
*: ラッパーライブラリなので[[Xamarin]]環境では使えない。
*:ラッパーライブラリなので[[Xamarin]]環境では使えない。
+
* [[CocosSharp Box2D]]
*[[CocosSharp Box2D]]
+
*: [[Box2D]]を[[C Sharp|C#]]で書き直した[[ピュアマネージド]]版。
*:[[Box2D]]を[[C Sharp|C#]]で書き直した[[ピュアマネージド]]版。
 
  
 
;3D
 
;3D
 
+
* [[BulletSharp]]
*[[BulletSharp]]
+
*: [[Bullet]]のラッパーライブラリ。
*:[[Bullet]]のラッパーライブラリ。
+
*: ラッパーライブラリなので[[Xamarin]]環境では使えない。
*:ラッパーライブラリなので[[Xamarin]]環境では使えない。
+
* [[Bullet-XNA]]
*[[Bullet-XNA]]
+
*: [[Bullet]]を[[C Sharp|C#]]で書き直した[[ピュアマネージド]]版。
*:[[Bullet]]を[[C Sharp|C#]]で書き直した[[ピュアマネージド]]版。
+
*: Bulletが壮大なライブラリであるため部分移植であり[[Bullet]]のすべてが使えるわけでは無い模様。
*:Bulletが壮大なライブラリであるため部分移植であり[[Bullet]]のすべてが使えるわけでは無い模様。
+
*: 調査中。最有力候補かもしれない。
*:調査中。最有力候補かもしれない。
+
* [[UrhoSharp Physics]]
*:https://code.google.com/archive/p/bullet-xna/
+
*: これも[[bullet]]ベースらしい。
*:https://github.com/Stereoarts/bullet-xna-unity - Unity移植版
+
*: 調査中
*[[UrhoSharp Physics]]
+
* [[Jitter Physics]]
*:これも[[bullet]]ベースらしい。
+
*: [[C Sharp|C#]]でで書かれたオリジナルの物理演算エンジン。
*:調査中
+
*: [[反発係数]]の指定が0〜1の範囲ではなかったり、どうやっても[[重力]]を無視してフワフワしてしまう。[[ソース]]を追う気力はない。
*[[Jitter Physics]]
 
*:[[C Sharp|C#]]でで書かれたオリジナルの物理演算エンジン。
 
*:[[反発係数]]の指定が0〜1の範囲ではなかったり、どうやっても[[重力]]を無視してフワフワしてしまう。[[ソース]]を<del>追う気力はない</del>追った結果、これに若干の手直しを入れるのが一番現実的ではないかという結論に至った。
 
*:https://github.com/mattleibow/jitterphysics
 
  
 
==関連項目==
 
==関連項目==
 
 
*[[ゲームエンジン]]
 
*[[ゲームエンジン]]
  

MonoBookへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細はMonoBook:著作権を参照)。 著作権保護されている作品は、許諾なしに投稿しないでください!

このページを編集するには、下記の確認用の質問に回答してください (詳細):

取り消し 編集の仕方 (新しいウィンドウで開きます)

このページで使用されているテンプレート:

このページは 1 個の隠しカテゴリに属しています: