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

             VMC Inc.           MotionSim Division

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

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

物理エンジン

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

物理エンジンとは

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

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

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

ゲーム、映画のコンピューターグラフィックの用途に使用される場合には正確性よりもスピードを重視することが多く、逆に研究・開発用途では正確性を重視することが多くなります。

他に重機、建設機械等の訓練シミュレータで使用されることがありますが、実時間以内に計算を終える「リアルタイム性」を確保することが最優先ですが、併せて正確性も要求される用途になりバランスの良い物理演算エンジンを用いる必要があります。

コンピューター、特にCPUの高速化に従って物理演算エンジンを実用的に活用できる範囲が広がっており、今後、さらに広がっていくことが想定されています。

物理演算エンジンの種類

当社では現在、Algoryx社製のAGX Dynamicsをご提案しておりますが、マーケットにはオープンソース、商用のさまざまな物理エンジンが存在します。

 

無償で提供されているものとしては、Open Dynamics Engineが代表的な存在で、2001年に公開をされました。

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

他にもBullet Physics、Physx(サービス・サポートは有償)が無償で提供されています。

無償の物理エンジンはゲームエンジン、3Dモデリングソフトにデフォルトとしてアドインされているケースもあり、例えば代表的なゲームエンジンであるUnityには、Physxが物理エンジンとして標準搭載されています。

 

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

物理法則に対する正確性が要求される研究・開発分野を中心にプロフェッショナルユースの物理演算エンジンが使用されていますが、コンピューターの高速化に従って活用範囲も広がり、スピードを要求される用途が出てきており、正確性とスピードを併せもったバランスの優れた物理エンジンの需要が出てきています。

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

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

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

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

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

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

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

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

 

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

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

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

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

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