Blender で作ったものを Flash で表示する(アニメーション)
Blender で作ったものを Flash で表示する(マテリアルとかテクスチャとかも) の続きです。
Blender で作ったアニメーションデータを Away3D で使うことが出来たので記録しておきます。今回は主に Blender の話です。
対象環境
1. Blender へ exporter 追加 今回は MD5 形式で Blender と Away3D を連携します。Blender 2.61 は標準で MD5 形式でのエクスポートが出来ないため、アドオンをインストールします。 Blender 2.6 系で使える MD5 exporter は以下にあります。 [MD5] EXPORT for Blender 2.6x (OPEN):
インストール方法や使用方法は以下のページに書いてありますが、ひと通りやってみます。 [MD5] export for Blender 2.5 series:
1.1 MD5 exporter ダウンロード 上記ページの
For Blender 2.57 (OK for 2.60+/-)
をダウンロードしておきます。
1.2 Blender へインストール 「File > User Preferences…」クリック Addons タブの「Install Add-On…」ボタンをクリック ファイルダイアログが開くので、ダウンロードした「io_export_md5.py」を指定します。
1.3 MD5 exporter 有効化 以下のようなアドオンが追加されているので、チェックして有効化します。 これで MD5 形式でエクスポートできるようになりました。
2. アニメーションデータ作成 上記でインストールした MD5 exporter は、適当にメッシュデータを作ってサッとエクスポート・・・というように手軽には使えないようです。(実行したらエラーメッセージ出まくり・・・) 上記ページの説明を試してみたところ、
- メッシュ作成
- Armature 作成
- Action 作成
が必要なようです。
2.2 Armature 作成 Armature はこんな感じです。メッシュにも適用済みです。
2.3 Action 作成 「DopeSheet」画面を開き、「Action Editor」モードにします。 右下の「New」ボタンを押して、Action を作成します。 Blender での一般的な Action の利用方法はよく分かっていませんが、利用されない Action は保存されない?(Blender を閉じたら Action が消えてたことがあった。)みたいです。右下の「F」ボタンを押しておくとどうやらデータが保存されるようです。 必要な動作分、「+」ボタンで Action を作成しておきます。
2.4 エクスポート まず、エクスポート対象のメッシュと Armature を選択しておきます。 エクスポート対象の Action をアクティブにします。 「DopeSheet」の以下 “Shot” の左にあるボタンを押すと、アクティブにする Action を選択できます。 アクティブにした Action のフレーム数に合うよう、タイムラインの「End」を設定します。 上記で選択している “Shot” Action は、0 ~ 13 までフレームを設定しているので、タイムラインの設定は以下のようにしました。
ここで先程インストールした MD5 exporter でデータをエクスポートします。 メッシュデータは md5mesh ファイル、アニメーションデータは md5anim ファイルで出力されます。
あとは出力したい Action の数だけ、Action を切り替えてタイムライン設定、エクスポート・・・を繰り返します。 エクスポートダイアログでは、初回だけ「Mesh & Anim」、あとは「Anim only.」連打で良いかと思います。
3. Flash で表示 Away3D 4.0.0 Beta になり、外部 MD5 形式のモデルデータを取り込んでアニメーションを行うサンプルが追加されていました。特に特殊なことは無くそのまま使えます。 src/Intermediate_MD5Animation.as at master from away3d/away3d-examples-fp11 - GitHub:
終わりに 他に気になった点は以下でしょうか。
- フレームが 1 つだけの場合、Away3D に読み込ませてアニメーションを再生すると例外が発生する。
- MD5 形式の場合、Blender で設定したテクスチャデータは、Away3D 側で TextureMaterial として設定する必要がある。
アニメーションの無い単純なメッシュデータなら、3DS 形式、アニメーション有りなら MD5 形式という感じで使い分けていけば良いかと思います。 これでおおよそ 3D のオブジェクト作成周りの課題が片付いたので、ようやくゲームを作れます!
今回使ったファイル