Stage3D対応のAway3D – 物理演算とStarling連携

年末・年始の休みに、Stage3D対応のフレームワークAway3D 4.1 alphaと物理演算エンジンAwayPhysicsと2DフレームワークStarling 1.2を使ったデモを作ってみました。回転する箱のなかで数個の球体がハネたりする感じのものです。

  • Demo (要Flash Player 11.5)
  • Source (ZIPファイル/Flash Builder 4.6用アーカイブファイル)

AwayPhysicsについて

AwayPhysicsは以前ブログの記事で紹介しましたが、3Dの物理演算ができるFlasCC製のライブラリです。C++で作られたBulletエンジンをFlasCCを使ってコンパイルしているので、ActionScriptで3Dライブラリを作るよりも高速に動作すると考えられます。

StarlingとAway3Dの連携について

またAway3D 4.0 GOLDからは2DフレームワークのStarlingと連携できるようになっているので、Starlingとの組み合わせを試してみました。3D空間内の球体のプロジェクション座標を2DのStarling側に送信してパーティクルを表示させています。パーティクルは3D空間上に表示されているように見えるかもしれませんが、実際は3Dの描画プレーンの上に重ねられた2Dの描画プレーンにパーティクルを表現しています。

Away3DとAwayPhysicsのシンプルなデモ

もう一つデモを紹介します。上述のデモのプロトタイプですが、Starlingのパーティクルを使わずAway3D 4.0 GOLDとAwayPhysicsを組み合わせたものです。シンプルなのでソースコードが読みやすいと思います。

  • Demo (要Flash Player 11.5)
  • Source (FlashBuilder用アーカイブファイル)

3D空間上のパーティクルエフェクトを3D上で表現すると

3D空間上のオブジェクトから発生するパーティクルを2D上で表現したのは演出が良いためで、3D上でそれを表現すると正確すぎて面白みのない仕上がりとなりました。必ずしも3Dで表現することが正しいわけではなく、特にStarlingのパーティクルエフェクトが優れているので、これと組み合わせほうが見栄えがよかったという感想です。

ただ、Away3D 4.1 alphaに搭載されたパーティクルエフェクトが実に優れているので、次回のブログ記事ではパーティクル機能を紹介したいと思います。

投稿者 : 池田 泰延

BookMark

ブックマークはこちらからどうぞ。

このエントリーをはてなブックマークに追加