FlashでColladaファイル(.dae)を扱うときの備忘録
Create, Flash ·FlashでColladaファイル(.dae)を読み込んで
ボーンアニメーションを表示させようと思っていたのですが、
いろいろ躓いたので備忘録として残しておきます。
当初はAway3Dを使おうと思っていたのですが、
ボーンアニメーションが上手く再生されず、
最終的にはPV3Dを使うことになりました。
Blenderの設定
ColladaファイルのエクスポートはBlenderでやりました。
オープンソースうまい。
- バージョン
- 2.49bを使う。(最新版は2.5*ですが、うまくいかない)
- Exporter パッチを適用
- Blender2.4x COLLADA Exporter - kumaryu.net こちらから translator.pyをDLして上書きする。 Macでの場所は /Applications/blender-2.49b-OSX-10.5-py2.5-intel/blender.app/Contents/MacOS/.blender/scripts
- 参考:note.x | [Papervision3D]ボーンアニメーション模索中
- Blenderでのボーンアニメーション
- Blender初挑戦だったので初歩的なところから勉強しました。
- 参考:Blender 2.46のArmature(アーマチュア)アニメーションを使う(1) | (SCRATCHBRAIN.BLOG v2)
- Blenderで書き出すとき注意すること
- [Add Modifier]-[Armature]を適用する。 AnimationでArmatureとCube(Meshの名前?)を選択してから書きだす。
- UV Textureが無いときは新しく作る。
- Materialが無いときは新しく作る。
- Shadingパネル(F5)で、Link and Pipeline のAdd Newをクリック。
- 参考:Custom Models - Printable Version
- [File]-[Export]-[COLLADA 1.4(.dae)]の設定。
- 「Triangles」、「Only Export Selection」、「Sample Animation」を選択する。
- 参考:ちゃぶ台メモ - Blenderのアニメーション付きファイルをPapervision3Dで表示する
- 困ったときに参考になりそうなリンク:note.x | [Away3D] Collada Animation
Away3D メモ
- バージョン
- 3.6.0を使う。最新版の4.0.0 AlphaはFlash player11が必要でSDKの設定が面倒だったので諦めた。
- 基本の読み込み
- Collada.load();のパスについて
- "hoge.dae" だとうまくいかない
- "./hoge.dae" もしくはフォルダを作成して "huga/hoge.dae" だとうまくいく。
- 読み込んだモデルのMaterialを変更
- なんか複雑なのでメモ
- var model:ObjectContainer3D; で、modelを読み込んだ後に
- model.materialLibrary.getMaterial("Material").material = new ColorMaterial(0xFFA500);
- ここの"Material"は、BlenderのLink and Pipelineについている名前(たぶん)
- なんか複雑なのでメモ
- 読み込んだモデルの外枠だけ表示
- なんか複雑なのでメモ
- modelを読み込んだ後に
- var outlineMaterial:WireframeMaterial = new WireframeMaterial(0x000000);
- outlineMaterial.thickness = 4;
- Mesh(model.getChildByName("Cube")).outline = outlineMaterial;
- ここの"Cube"は、BlenderのMeshの名前(のはず)
- なんか複雑なのでメモ
- ボーンアニメーション再生
- 単純なモデルだと正しく再生しました。こんな感じになりました。
- 複雑なモデルだと上手くいかないっぽい。こんな感じになりました。
- 参考:Away3D in Flex 4 - Phase 4 - Animating the MD2 model. « Flash for the Masses
PV3D メモ
- Away3Dよりすんなりいけた。こんな感じになりました。
- Collada クラスと DAEクラスがありますが、とりあえずDAEを使ってみます。
- アニメーションの切り分け
Away3Dみたいにモデルの外枠だけ表示させたいんだけど、ちょっと調べただけでは出てこなかったので保留。
他
人体モデル
- UniHuman というのを使おうとしてます。 ポリゴン数少なくて便利。
- ただしデフォルトでついているボーンがColladaで書きだすと反映されない。。。
- 仕方ないので自分でボーン設定したら反映されて動いた。
- UniHuman というのを使おうとしてます。 ポリゴン数少なくて便利。
Away3DもBlenderも初めて触ったんですが、
原因の切り分けができなくて2日くらい消費しました・・・。 もったいない。