Blenderのアニメーション付きファイルをPapervision3Dで表示する


 
Blenderで作ったアニメーションを、Papervision3Dで使う方法の解説です。
Flashで3Dアニメーション付きのファイルを扱う場合、3DソフトはフリーソフトのBlender、FlashはPapervision3Dのライブラリを使用するのがポピュラーみたいです。

Papervison3Dでアニメーション付きの3Dファイルを読み込む場合は、Collada形式(拡張子.dae)のファイルを使用するのですが、BlenderからPapervision3Dで使えるdaeファイルを書き出すのが、ちょっといやかなりやっかいで、この工程が作業の中で一番のポイントとなります。私もうまくいくまでほんと何度も失敗しました。
試行錯誤した結果、重要だったのは以下の2点でした。
 
・Blenderの最新安定版(12月18日現在2.48a)をインストールすること
・Python2.5.2(←最新版ではないので注意)をインストールすること
 
↑の環境以外では以下に記述するとおり作業を進めても、daeファイルをエクスポートできません。逆に言えばこの2点を押さえておけばできたも同然です。

注意:BlenderもPapervision3Dもしょっちゅうバージョンアップされるので1~2ヶ月も経てば最適な環境は変わってくると思います。気が付いた時点で追記していくつもりですが、新しいバージョンが出てる場合はそちらを試してください。

それでは以下から順を追って説明していきます。
 

Blenderのインストール

まずはBlenderとPythonのインストールです。以下のページからBlender 2.48aとPython2.5.2をダウンロードし、インストールしてください。

blender.org - Get Blender
Python 標準リリース
 
Blenderの基本的な使い方は以下のページから。
http://jp.youtube.com/profile?user=KyusanForestCreators&view=videos
Blenderチュートリアル - WBS+(Web/Blender Studio+)
 

BlenderからCollada(dae)形式にエクスポートする

Blenderをインストールしたら、適当にアニメーションを付けたファイルを用意します。

チュートリアルなんか読んでられない、とりあえず手っ取り早く動かしたいという人は、以下のサンプルファイルをダウンロード。(キューブを回転させてるだけのファイルです)

cube.blend.zip
 
daeファイルをエクスポートします。
アニメーションを付けたオブジェクトを右クリックで選択した後、
 

 
[File]-[Export]-[COLLADA 1.4(.dae)]を選択。
 

 
1. [...]を選択して書き出し先を指定。ファイル名には.daeという拡張子を忘れずに。
2. 3. 「Only Export Selection」と、「Sample Animation」を選択。
4. Exportボタンをクリック。「Export Successful」と出れば成功!!
 
解説: 「Only Export Selection」 - 選択したオブジェクトだけをエクスポートする
「Sample Animation」 - キーフレーム間の補完したアニメーションをエクスポートする
その他、書き出しパネルについては以下の記事が詳しいです。
Blender 2.48aにおけるColladaのエクスポート(アニメーション無し編) - 戸袋に手を挟まれないように
 

Papervision3DでCollada(dae)ファイルをインポート

Papervision3DはこのページのFeatured Downloadsからダウンロードできます。
Papervision3Dの基本および、アニメーションなしの(daeファイル読み込みについてはアニメーションありもなしも一緒なので記述を修正)daeファイル読み込みについては以下のブログを参考にしてください。

Papervision3Dやってみるシリーズ | [FlaTech+]WebDesign Rainyday
 
flaファイルを作ります。先ほど書き出したdaeファイルも同じ場所に置いてください。
Main.asというドキュメントクラスを作って以下のソースをコピペします。

ACTIONSCRIPT:
  1. package {
  2.     import org.papervision3d.objects.parsers.DAE;
  3.     import org.papervision3d.view.BasicView;
  4.  
  5.     public class Main extends BasicView {
  6.         private var daeObj:DAE;
  7.         public function Main() {
  8.             camera.x = 4;
  9.             camera.y = 3;
  10.             camera.z = -4;
  11.             daeObj = new DAE();
  12.             //Loopさせたい時は↑をコメントアウトして、↓のコメント外す
  13.             //daeObj = new DAE(true,null,true);
  14.             daeObj.load("cube.dae");
  15.             scene.addChild( daeObj);
  16.  
  17.             startRendering();
  18.         }
  19.     }
  20. }

 

パブリッシュしてうまく行くとこんな感じになります。
 

  
flaファイル、asファイル、daeファイルをまとめたzipファイルもアップしておきます。
cube.zip

(おわり)
 
なんかリンク貼りまくりな記事になってしまいました。リンクを貼らせていただいたページにはとてもお世話になりました。ありがとうございました。
その他、note.xさん、タロタローグさんも、かなり参考にさせていただきました。
どの記事がなくても前回のエントリーの動かすのできなかっただろうな・・・。

COMMENTS [4]

  1. 戸袋に手を挟まれないように :

    [Blender][Away3D][Collada]Blender 2.48aにおけるColladaのエクスポート(アニメーション無し編)

    ちゃぶ台メモ - Blenderのアニメーション付きファイルをPapervision3Dで表示するの方で参照されていたので、わかったところまで更新しておきます。 はじめに、ここで言うアニメーション無…

    12 月 19th, 2008 at 18:02:53
  2. S.Giri kumar :

    Sir
    Can I get an English version of your sitr?
    thanks
    giri

    2 月 25th, 2012 at 14:31:46
  3. puhzweasar :

    первое что хотел сказать о pushtiwer.ru:
    1. реально сайт не кидает;
    2. работают оперативно (днём заказал товар, вечером уже отправили заказ);
    3. что всё было точно так же как и обещенно…я имею в виду по кол-ву и по цене;
    4. дошло всё мега быстро… (пришло за 6 дней… не смотря на то что я с дв) спасибо работникам почты));
    5. и последнее то что можно отслеживать самому ход доставки товара…

    P.s. в общем молодцы, спасибо вам)) обращусь к вам и ещё не раз))

    3 月 29th, 2012 at 8:52:20
  4. chung cư vp6 linh đàm :

    дошло всё мега быстро… (пришло за 6 дней… не смотря на то что я с дв) спасибо работникам почты));

    6 月 19th, 2014 at 10:23:53

トラックバック URL :