stage3d+away3d+blender(or unity)

先日、pixiv株式会社を会場にして行われたBlener+Unity勉強会に参加してきました。
pixivは非常に面白いフロアとなっていて、勉強会の内容自体も楽しかったのですが、その報告はまた別の記事で。

今回、僕はちょうどいい機会なので、自分がこれから自作アプリあるいは会社の仕事で3Dを扱うときのための技術調査をしました。

Unityで作るなら、Unityで開発環境は完結しますし、Unityが素材作りの環境として不足するならBlenerを使えばいいだけです。
ただ、僕の自作アプリはAIRですので、stage3dを使うという仮定のもとで技術調査をしました。

その結果をまとめると以上です。
1、3D描画、物理エンジンライブラリ・・・Away3D
2、素材作り・・・Blender。UnityのAsset Storeからfxpのモデルデータだけ引っこ抜けたら引っこ抜いたり、あるいはwebに落ちている3dsやコラーダファイルをBlenderで形式変換したり手を加える。
3、モデルデータ形式・・・Away3D標準形式のAWDを使いたいところ。一番高速らしいので。Blenderにアドオン組み込めば、AWDエクスポートができる。

BlenderやUnityについてはもはや有名なので説明しません。
satge3dというのは、FlashPlayer11,AIR3.0以降で動く、Adobe製の3Dライブラリで、GPUによる高速な描画ができるのが特徴です。
Away3DオープンソースFlashAIR用の3Dライブラリですが、バージョン4.0からstage3d上で動くようになりました。
stage3Dは低レベルなライブラリなので、away3Dを使えば従来のFlash開発のレベルで3Dの開発ができます。
stage3Dに対応した3Dライブラリは他にもありますが、僕はAway3Dを選択しました。
他のライブラリとの比較はClockmakerさんのAdobeMeetup03のプレゼンに詳しいです。

以下のADCの記事に従って、実際にAway3Dのサンプルを作ってみました。
http://www.adobe.com/devnet/flashplayer/articles/creating-games-away3d.html
http://futsaltacticsboard.appspot.com/stage3dSample/GettingStartedWithAway3D.html

FP11とAIR3.0だと動くんですよね。スマホにも移植してみましたが、真っ白な画面のまま動きませんでした。
まあまだAdobeがstage3dはモバイルには対応しているとは言ってないですからね。残念。

注意点としては、stage3dを使うときはindex.htmlなら
params.wmode=direct, app.xmlならgpuが必要です。
後者はつけないとコンパイルとおりません。
あと、もしかしたらいらないかもしれないけど、コンパイルオプションに-swf-format=13をつけてください。