BVHファイルとは
BVHファイルとはBiovision社が開発したモーションキャプチャ用のデータフォーマットです(BioVision Hierarchyの頭文字というなんとも分かりにくい拡張子・・・)BVHファイルは無料で公開されているものもあり、カーネギーメロン大学やPerfumeも提供しているようです。
http://perfume-global.com/project.htmlperfume-global.com
今回はPerfumeのモーションデータを使ってユニティちゃんを踊らせてみます。
BVHファイルをFBXファイルに変換
BVHファイルはそのままではUnityに読み込めません。そこで、Unityでも読み込める.belnderまたは.fbx形式に変換します。ここではBlenderを使って.blend形式に変換しました。(Blender2.72を使って.fbxファイルを書き出すと、アニメーションが壊れてしまいます。)
ダウンロードした「aachan.bvh」ファイルをブレンダーにインポートします。ボーンのサイズが大きいですが、気にせずこのまま「aachan.blender」として保存します。
Unityで読み込み
Blenderで出力した「aachan.blender」をUnityのプロジェクトビューにドラッグ&ドロップします。読み込んだファイルを選択し、Rigタブの「Animation Type」を「Humanoid」に変更して「Apply」ボタンを押します。
プロジェクトビューの「aachan」の中にある「aachan」ファイルを選択して下さい。右下のウインドウでおっさんが踊りだしたらインポート成功です。
アニメーションコントローラを作成
「aachan」のアニメーションファイルをユニティちゃんに設定します。Mechanimを使ってユニティちゃんのアニメーションを組み立てる方法はこちら。
ユニティちゃんにPerfumeのアニメーションをつけるために、まずは「Animator Controller」を作成します。プロジェクトビューで右クリックして「Create」→「Animator Controller」を選択して「UnitychanController」という名前で保存しましょう。できたらダブルクリックして開いて下さい。
アニメータビュー内で右クリックし「Create State」→「Empty」を選択します。
作成した「New State」を選択し、インスペクタから名前を「Dance」に変更します。また、「Motion」の欄に作成した「aachan」のAnimation Clipを設定します。
最後に、いま作成した「UnitychanController」をユニティちゃんのAnimatorコンポーネントにドラッグ&ドロップしてセットします。
実行するとユニティちゃんがPerfumeのダンスを踊り出します!Animatorコンポーネントの「Apply Root Motion」のチェックを外すと、ユニティちゃんの位置は動かずに、ダンスのアニメーションだけが再生されます。