Blender で作ったものを Flash で表示する(マテリアルとかテクスチャとかも)
の続きです。
Blender で作ったアニメーションデータを Away3D で使うことが出来たので記録しておきます。今回は主に Blender の話です。
対象環境
- Blender 2.61
- Away3D 4.0.0 Beta
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 のオブジェクト作成周りの課題が片付いたので、ようやくゲームを作れます!
今回使ったファイル