3D物理演算ライブラリであるOimoPhysics、つい先日公開された3Dエフェクト作成ツールAwayEffect、そしてそれらのライブラリを用いたFlashのStage3Dサンプルコンテンツを制作しましたのでご紹介します。

物理演算ライブラリ「OimoPhysics」

oimo3

高くつまれた箱に魔◯光殺砲みたいなビーム砲をあてて撃ち落とす、ゲームなどでありがちなサンプルコンテンツです。OimoPhysicsとAway3Dを連携した際に、どの程度パフォーマンスが出るのか知りたかったので作成してみました。よほど箱の数を増やさない限り(数万オブジェクト単位)、実用に耐えうるコンテンツができると思います。アトラクションコンテンツなどで使う機会があれば使ってみたいと考えています。

oimo2

こちらは、物理演算エンジンのテストでよくあるボール転がし系のサンプルコンテンツ。十字キーでボールを転がし、キャラクターを吹き飛ばして遊びます。このような衝突判定系のコンテンツを作る際、境界ボックスと呼ばれるオブジェクトの境界線を決める必要がありますが、本サンプルではキャラクターの細部まで衝突判定せず、キャラクターを包み込む箱を定義することで計算負荷を軽くしています。キャラクターがプラモデルの箱に入ったようなイメージです。キーボードのBキーで境界が見えるようにしてあります。 また、Away3Dでキャラクターを複数体表示した際のテストも兼ねています。複数のモーション(待機、走る、ジャンプなど)が定義された3Dモデル(AWDファイル)を、読み込み後に複製し、異なるタイムライン(別々に制御可能)を割り当てています。全キャラクターに固有のタイムラインを割り当てると、その分計算負荷が増加してしまうので、いくつかは共有のタイムラインとすることで、計算負荷を下げています

oimo4

3Dエフェクト作成ツール「AwayEffect」

editor_all

AwayEffectは、エフェクトを作成するエディターと、Webへの公開機能(wonderflのような専用のギャラリーサイトへの投稿機能)が合わさったフリーのサービスです。専用のエディターをダウンロードすれば、簡単なエフェクトならすぐに作成できると思います。 このサービスの一番のおすすめポイントは、自分や他の人が作成したエフェクトをAway3Dコンテンツ内に取り込んで使用できるという点です。専用のパーサーを使えばすぐに利用できます。 このツールでは、パーティクル(光の粒)を重ね合わせることで、光の線や、渦、波動などを作成します。色んな種類の動きを合わせることで、特徴的なエフェクトを作ることも可能です。今回のサンプルでは↓のような3つのエフェクトを混ぜあわせて作成しています。

effect2

effect3

effect1

 まとめ

OimoPhysics はとても楽しいライブラリなので今後に超期待ということ、次回はよりゲームらしいものを作成してみたいと思っています。 ※Away3Dへの適用方法は公式には用意されていないと思いますが(投稿時現在)、気になる方はこちらにコードを掲載しましたのでご覧くださいませ。