物理演算エンジン(物理エンジン)、運動シミュレーションソフトをご提案します

             VMC Inc.           MotionSim Division

      株式会社ブイエムシー MotionSim事業部

運動シミュレーションソフトの性能は物理エンジンのパフォーマンスに左右されます。
真に使える運動シミュレーションソフトのためのプロフェッショナルユースの物理エンジンをご提案します。

物理エンジン

物理エンジンに関する情報をまとめています。

物理エンジンとは

物理エンジンとは、コンピューター上で物体の動きを、衝突、摩擦、重力などの物理運動法則に従って計算するツール(ミドルウェア)です。

運動方程式の解を省略、簡素化し、「それらしい」動きを再現するものもあれば、スーパーコンピュターなどの高性能コンピュータを用い、高度な数学、コンピュータサイエンスをベースとした正確性を追求したものまで存在し、それぞれの用途の要求に応じて使い分けられています。

一般的に、物理的な正確性を追求すると計算量の増加に伴い計算コスト(計算結果を表示するのに要する時間)が高く(長く)なる傾向があり、正確性とスピードは相反関係にあります。

ゲームや訓練シミュレータなどの用途では、正確性よりもスピードが、、研究、開発などの用途では正確性を重視することが多くなり、それぞれ物理エンジンに求められる役割も変わります。

コンピューター、特にCPUの高速化、GPUを活用した並列処理の使用が拡がっていくに従って物理エンジンを実用的に活用できる範囲が、今後さらに広がっていくことが想定されています。

物理エンジンの種類

無償で提供されている物理エンジンでは、Open Dynamics Engineが代表的な存在で、2001年に公開されました。

数多くのゲームや映像制作で使用され、また、後に続く物理エンジンも、このOpen Dynamics Engineをベースにして開発されたものもある物理エンジンとして草分け的な存在です。

他にもBullet Physics、Physx(サービス・サポートは有償)などがオープンソースで提供されている一般的な物理エンジンです。

日本でも大学研究室や一部企業では、自身が構築するシミュレータに活用するため自身の物理エンジンを作られていることがあります。

例えば、東京工業大学の長谷川研究室では、ぬいぐるみの動きの再現や、ハプティックス技術開発を目的にSpring Head (http://haselab.net/project_springhead)を開発されており、一般にも公開されています。

 

一方で、有償で提供される物理エンジンとしては、映画、コンピュータグラフィック用途に広く使用されているHavok、訓練シミュレータ用途や研究開発分野で使用されるAGX Dynamicsや、Vortexがあります。

オープンソースのエンジンとの違いは、それぞれのエンジンでありますが、オープンソースエンジンは最もユーザーが多いゲーム製作を目的としているケースが多く、ソルバーを反復法をベースとした簡略なものが多く、スピード重視の傾向が強くなっています。

それに対して商用エンジンは、それぞれの目的に特化してソルバーが独自に開発されており、オープンソースエンジンで出来ないことができ、また、高速化、安定化されていることが多くなっています。

商用物理エンジンの活用は、2010年頃からビジネスの世界でも本格化していると考えられ、近年では自社のシミュレータに外部開発の商用物理エンジンを実装して使用する例が増えてきています。

物理演算エンジンを使った実例集

AGX Dynamicsを中心に物理演算エンジンを使った動画のご紹介をします。

物理演算エンジンの使い分け

市場にはいくつかの物理演算エンジンが存在します。

どの分野・用途に、どのような基準で選ぶと良いのか、お話ししたいと思います。

物理演算エンジンは現在、主には、ゲーム、映画・映像制作、研究・開発、訓練シミュレータの分野で活用をされています。

また、それぞれの物理演算エンジンの特徴は、スピードと正確性によって定義付けられます。(他にも評価軸はありますが、一つの大きな評価軸であるコストを除くと、スピード、正確性の2点から把握することが、それぞれの物理演算エンジンの特徴を的確につかめるように思います)

それぞれの用途の要求する特性を縦軸に正確性、横軸に計算スピードをとったグラフに表示すると下のようになります。

 

プレイヤーがコントローラで操作するゲームは、事前にシナリオを作ることができず、プレイヤー操作に対して物理運動の解析を都度行う必要が出てくる、もっともスピードが重視されるカテゴリーになります。

逆に、研究・開発用途では正確性が重視されるケースが多く、高性能コンピュータや並列コンピュータを使い1週間以上かけて行うシミュレーションも多く存在します。

訓練シミュレータは、人間操作が入るという点ではゲームと同様であり、かつ、正確性を欠くと訓練そのものの目的を達することができないため、正確性も要求される、物理演算エンジンの性能の良し悪しが顕著に出るカテゴリーになります。

また、研究・開発分野においても、モデルベース開発の浸透によって、開発スピードの短縮を図る動きが進んでおり、コンピュータ上で行うことができるシミュレーションの精度、正確性が大きなファクターとして取り上げられることが増えてきており、特に設計等の開発分野ではスピードに対する要望も高まってきています。

用途に応じて、特長の合った物理演算エンジンを選択することが、シミュレーションソフトウェアの性能を向上させる上で重要であると言えます。