2013年1月25日金曜日

Import multiple BVH file to Blender, Export as one FBX file and Import to Unity as multiple Animations (ネットに転がってるVBHをUnityで使えるようにする)

使用ツール
・Blender 2.56
・Unity 3.5

ここのサイトで色々なbvhを落とせるので適当なものを落とす
https://sites.google.com/a/cgspeed.com/cgspeed/motion-capture/daz-friendly-release

こっちが何が何の動きかリスト(リスト見てもよくわからない)
https://sites.google.com/a/cgspeed.com/cgspeed/motion-capture/cmu-bvh-conversion/bvh-conversion-release---motions-list

適当なbvhをblenderにインポートする。Armatureとして。値はデフォルト




AnimationつきのArmatureオブジェクトとしてインポートされる



適当なモデル(裸のオッサン)を用意して、
ArmatrueをObjモードで適当な裸のオッサンの位置にざっとあわせ
ArmatureのEdit Modeに入って各Boneの位置をなんとなく裸のオッサンにあわせる

この位置あわせの時に注意すべき点は、各BoneのAxesは絶対にRoll回転させないこと。




こういうことすると動かしたときになんかねじれてキモイことになる。
(とにかくRollには注意。いじる機会ないと思うけど)


で、Boneをなんとか正しく当てましょう。




ところで、ArmatureはBone構造が同じなら
ほかのArmatureに適用されているAnimationを適用できますよね。
(Bone名が同じなら同じ動きする)













なので、このBVHのインポート後のデフォルトArmatureを
キャラに適用できれば、後からインポートしたBVHのAnimationデータをいくらでも使える。
今回はrun, walk, danceの3つのBVHをインポートした。

さっきのBVHの素材サイトは番号だけ振られてて何が何だかよくわからねーけどここで探す。

https://sites.google.com/a/cgspeed.com/cgspeed/motion-capture/cmu-bvh-conversion/bvh-conversion-release---motions-list



これをfbxとしてエクスポートする。
たぶん、Shift押しながらキャラクタと、Armatureを選択して


FBX Export
Selected Only にチェック入れる以外はデフォルト。
Selected Onlyしないと余計なもんが入るから。




それでExport したFBXをUnity3.5のProjectペインの適当なフォルダにドラッグ&ドロップしてインポートする。

とりあえずAnimationごとインポートされて











Unity上で動いた
(下はUnityのSceneウィンドウ上。
上の画像のInspectorのAnimationの中の「dance1」を再生しているところ)





スクリプト側からも当然呼び出せる。
やったね!

これをうまく使えばクオリティの高い動きが実現できると思うんだけど
Mecanimでどう使うのかは未検証なのでいつかやる。やらなきゃいけないね。


0 件のコメント:

コメントを投稿