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