リアルタイム3D開発プラットフォームであるUnityの大きな特徴は物理演算エンジン(物理エンジン)を搭載していることです。これにより三次元空間におけるニュートン力学に沿った物理現象をインタラクティブなコンテンツとして簡単に再現することができます。ここでは、Unityにおける物理エンジンについて説明し、ゲーム以外の活用法について見ていきます。
[toc]物理エンジンとは?
物理エンジンは、当初は戦争の時の弾道計算のために用いられ、その後コンピューターの発達とともに航空機の設計などにおけるシミュレーションに用いられるようになりました。もともとは科学技術計算のために発達したものでしたが、コンピューターの性能が上がるととも3DCGの製作やゲームにおけるCG作成にも用いられるようになりました。特に、PS3 / Xbox360世代のゲーム機では「物理エンジン」がキーワードとなっていたくらいで、物理エンジンが一気に身近なものになっていきました。
物理エンジンを用いた3DCG作成やシミュレーション作成をするためのソフトウェアはもともとは高価で個人で扱えるようなものではありませんでしたが、こちらも無料で入手できるものも増えてきて、現在では物理エンジンを使った3DCGやシミュレーションも身近なものになりつつあります。
主な物理エンジン・ライブラリと対応するソフトウェア
物理エンジンのライブラリとしてはBulletやPhysXが有名です。物理エンジンのライブラリを単独で用いることも可能ですが、それぞれBulletは3DCG作成ソフトであるBlenderに、PhysXはリアルタイム3D開発プラットフォームであるUnityに組み込まれているので、それらのツールを用いて開発することが一般的です。
Blender – Bullet
Blenderはオープンソースの3Dモデリングソフトです。BulletもBlenderと同様にオープンソースで開発されており無料で使用することができ、Blenderと組み合わせてプロレベルのクォリティーの高い3DCGアニメーションを作成することが可能です。
以前のバージョンのBlenderではゲームエンジンも付属しており、インタラクティブなコンテンツを作成することも可能でしたが、現在はゲームエンジンは使用できずゲームやシミュレーションなどのインタラクティブなコンテンツの製作には向いていません(将来のバージョンでゲームエンジンが追加される予定はあるようです)。
Unity – PhysX
Unityは3Dゲーム開発などに用いられる商用ソフトウェアですが、Personal版は無料で使用することができ、Personal版を使って有料のソフトウェアの開発も可能です。組み込まれている物理エンジンのPhysXはNVIDIAが開発・提供しているものですが、現在ではオープンソース化されています。
Unityはゲームエンジンとして知られていますが、ゲーム以外にもリアルタイムでインタラクティブな3Dコンテンツを作成することができ、Unityのホームページでもリアルタイム3D開発プラットフォームとして紹介されています。
ただし、Unityは3Dモデリングされたものを組み合わせてゲームやシミュレーションなどを作っていくためのツールなので、3Dモデリングを行うときはBlenderなどと連携して行うとよいでしょう。
Unityの物理エンジンを用いた例
Unityは様々なゲーム開発に使用されていますが、ゲーム以外でもその物理エンジンを活かして活躍の場を広げています。例えば、物理エンジンを使っていろいろな検証をするYouTubeチャンネルでも、用いられているのは(おそらく)Unityです。
物理エンジンくん
こーじ
このように、Unityの物理エンジンを使えば、バーチャル空間で簡単に物理シミュレーションを行うことができます。
リアルタイム3D開発プラットフォームとしてのUnity
ゲーム以外の活用事例についてはこちらにまとめられていました。
UnityによるVR空間を用いて車のデザイン設計に活用したり、
Unityを用いて医療現場における手術のシミュレーションに活用したり、
あるいは、MicrosoftのHololensと組み合わせたり、
その活躍はゲームにとどまらないことがよくわかります。
まとめ
以上のようにUnityはリアルタイム3D開発プラットフォームとして、ゲームにとどまらず様々なところで活用できる可能性を秘めています。それに加えて、強力な物理エンジンも備えていることから、その可能性は無限大ですね!
このサイトでは主にUnityを用いたエージェントベース・シミュレーションを行っていきたいと考えています。
コメント