書き物

技術とか作った物の話とか愚痴文句感想など

Blender で作ったものを Flash で表示する(アニメーション)

Blender で作ったものを Flash で表示する(マテリアルとかテクスチャとかも) の続きです。

Blender で作ったアニメーションデータを Away3D で使うことが出来たので記録しておきます。今回は主に Blender の話です。

対象環境

1. Blender へ exporter 追加 今回は MD5 形式で BlenderAway3D を連携します。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…」クリック File > User Preferences... Addons タブの「Install Add-On…」ボタンをクリック Install Add-On... ファイルダイアログが開くので、ダウンロードした「io_export_md5.py」を指定します。

1.3 MD5 exporter 有効化 以下のようなアドオンが追加されているので、チェックして有効化します。 MD5 exporter 有効化 これで MD5 形式でエクスポートできるようになりました。 MD5 exporter 有効化結果

2. アニメーションデータ作成 上記でインストールした MD5 exporter は、適当にメッシュデータを作ってサッとエクスポート・・・というように手軽には使えないようです。(実行したらエラーメッセージ出まくり・・・) 上記ページの説明を試してみたところ、

  • メッシュ作成
  • Armature 作成
  • Action 作成

が必要なようです。

2.1 メッシュ作成 今回はこんなものを作りました。 メッシュ

2.2 Armature 作成 Armature はこんな感じです。メッシュにも適用済みです。 Armature

2.3 Action 作成 「DopeSheet」画面を開き、「Action Editor」モードにします。 DopeSheet 右下の「New」ボタンを押して、Action を作成します。 Blender での一般的な Action の利用方法はよく分かっていませんが、利用されない Action は保存されない?(Blender を閉じたら Action が消えてたことがあった。)みたいです。右下の「F」ボタンを押しておくとどうやらデータが保存されるようです。 Action 必要な動作分、「+」ボタンで Action を作成しておきます。

2.4 エクスポート まず、エクスポート対象のメッシュと Armature を選択しておきます。 メッシュ Armature 選択 エクスポート対象の Action をアクティブにします。 「DopeSheet」の以下 “Shot” の左にあるボタンを押すと、アクティブにする Action を選択できます。 Action をアクティブに アクティブにした Action のフレーム数に合うよう、タイムラインの「End」を設定します。 上記で選択している “Shot” Action は、0 ~ 13 までフレームを設定しているので、タイムラインの設定は以下のようにしました。 タイムライン設定

ここで先程インストールした MD5 exporter でデータをエクスポートします。 メッシュデータは md5mesh ファイル、アニメーションデータは md5anim ファイルで出力されます。

あとは出力したい Action の数だけ、Action を切り替えてタイムライン設定、エクスポート・・・を繰り返します。 エクスポートダイアログでは、初回だけ「Mesh & Anim」、あとは「Anim only.」連打で良いかと思います。 MD5 エクスポートダイアログ

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 のオブジェクト作成周りの課題が片付いたので、ようやくゲームを作れます!

今回使ったファイル