Blenderで作成したモデルをvvvvで使う

Pocket

これはvvvv Advent Calendar 2014の16日目の記事です。


Blenderでモデリングしたオブジェクトをvvvvで動かしたい。
できるならアニメーション付きで。
音にあわせて人形が踊ったりしたら絶対面白い。

3DCG関連はもっと詳しくなりたいと思いながらも日々は無常に過ぎていく。。。
自分は3DCG業界の人間ではないしこの辺りは趣味として独学でやっているので、
もし他のもっとスマートな方法があったり、間違っている説明があったら、コメントなど頂けると有難い。

※vvvvおよびBlenderのインストールや操作方法は理解している前提で書くので、
細かい操作方法などは割愛させていただきますm(__)m

ColladaFileノード

vvvvはいくつかの3DCGフォーマットに対応している。
今回はCOLLADAというフォーマットを使用してみる。

※COLLADAって?
COLLADA DOMを使った3Dモデルデータの読み込み
Wikipedia COLLADA

ColladaFileというノードがあるのでヘルプパッチを見てみると、
AstroBoyというキャラクターが回転しているパッチが出てくる。

アニメーション付きのサンプルが見たければ、Mesh(DX9 Geometry Collada)というノードのヘルプパッチが参考になる。
このヘルプパッチを開くとずんずんと歩きつづけるAstroBoy君を見ることができる。

Blenderとvvvvの連携

以下の様な流れでBlenderで作成したモデルをvvvvに取り込んでみる。

  1. Blenderでモデリングする
  2. Blenderでモデルにアニメーションを設定する
  3. BlenderでCOLLADA形式のファイルをエクスポート
  4. vvvvで3でエクスポートしたCOLLADA形式のファイルを取り込むパッチを作成

BlenderでCOLLADAファイルのエクスポート

Blenderで以下のようなモデルを作成してみた。
蝶

アニメーションの設定はBlenderでは(それ以外でも?)一般的なArmatureにメッシュを割り当てるという方法。
Skinningというらしく、vvvvでもSkinningと言うノードを使うことになる。
Armatureにキーフレームを設定してアニメートさせる。

keyframes

これをFileメニューからCOLLADA形式でエクスポートする。
COLLADA_Export_Menu

以下は今回知ったハマリどころというかノウハウというか。。。
ただ、申し訳ないことに、今回のこれはトライアンドエラーしまくっているので、
自分でも何が何だかわからないけど一応エクスポート出来てるっぽいという感じである。。
なので、どんなモデルやアニメーション設定でも以下の様な設定をすればいいとは言えないと思うが、
少しなりとも参考になればと思いメモ程度に記載しておく。
いつか機会があれば詳しい人に色々聞いてみたいm(__)m

モデルは大きく作りすぎないこと
大きすぎるとvvvvにインポートしたときにカメラに収まりきらないなど扱いが難しくなる。
このくらいが良い↓
サイズ感

テクスチャはUVテクスチャにする
でないとうまくエクスポートできなかった。

ルートオブジェクトは1つの方がよい
そのルートオブジェクトはArmatureがよい。
Outlinerはこの様な感じ。
Outliner

全てのメッシュにWeight設定しておく
ArmatureにWeight設定されていないVertexGroupはエクスポートされない。なので可動させない部分も何かしらのArmatureにWeight設定しておく。

アクションについてNLA Editorでは何もしないこと

エクスポート時の設定
エクスポート時の設定は以下の通り。
COLLADA_Export_Options

BlenderでCOLLADAファイルをエクスポートする際のオプションの説明などはこちらに詳しく書かれている。

Blender COLLADAのインポートとエクスポート

vvvvにBlenderでエクスポートしたCOLLADAファイルをインポート

vvvvでCOLLADAファイルを読み込むパッチを作成。
殆どMesh(DX9 Geometry Collada)のヘルプパッチと同じ。

patch

以下は注意点。
RendererのFullscreen Depthbuffer Format/Windowed Depthbuffer Formatに注意。
D16かD24X8を選択すること。
これらはデフォルトでNONEになっているしInspectorで見ないと表示されない。
ColladaFileノードの設定にも注意が必要。
Blenderでは右手系座標系、vvvvは左手系座標なのでInspectorでColladaFileノードの、
Coordinate system of sourceをRightHanded、
Coordinate system of targetをLeftHandedにする。

なんとか動かせたものがこちら。

今回はここまで。
腑に落ちていない点が沢山あるのでもっと勉強が必要だ^^;

参考サイト一覧

vvvv documentation COLLADA
Collada animations
Collada animation bug
Blender 2.48aにおけるColladaのエクスポート(アニメーションあり編)※試行錯誤中
Blender COLLADAのインポートとエクスポート
第21回:キャラクタースキニングを知る~ジョイントこそ命!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください