おもちゃラボ

Unityで遊びを作ってます

UnityでPerfumeを踊らせる

BVHファイルとは

 BVHファイルとはBiovision社が開発したモーションキャプチャ用のデータフォーマットです(BioVision Hierarchyの頭文字というなんとも分かりにくい拡張子・・・)BVHファイルは無料で公開されているものもあり、カーネギーメロン大学やPerfumeも提供しているようです。


mocap.cs.cmu.edu


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」として保存します。

f:id:nn_hokuson:20160717081041p:plain


Unityで読み込み

 Blenderで出力した「aachan.blender」をUnityのプロジェクトビューにドラッグ&ドロップします。読み込んだファイルを選択し、Rigタブの「Animation Type」を「Humanoid」に変更して「Apply」ボタンを押します。

f:id:nn_hokuson:20160717082618p:plain


 プロジェクトビューの「aachan」の中にある「aachan」ファイルを選択して下さい。右下のウインドウでおっさんが踊りだしたらインポート成功です。

f:id:nn_hokuson:20160717083040p:plain


アニメーションコントローラを作成

 「aachan」のアニメーションファイルをユニティちゃんに設定します。Mechanimを使ってユニティちゃんのアニメーションを組み立てる方法はこちら。

nn-hokuson.hatenablog.com

 ユニティちゃんにPerfumeのアニメーションをつけるために、まずは「Animator Controller」を作成します。プロジェクトビューで右クリックして「Create」→「Animator Controller」を選択して「UnitychanController」という名前で保存しましょう。できたらダブルクリックして開いて下さい。

 f:id:nn_hokuson:20160717083910p:plain


 アニメータビュー内で右クリックし「Create State」→「Empty」を選択します。

 f:id:nn_hokuson:20160710091932p:plain


 作成した「New State」を選択し、インスペクタから名前を「Dance」に変更します。また、「Motion」の欄に作成した「aachan」のAnimation Clipを設定します。

f:id:nn_hokuson:20160717084416p:plain

 
 最後に、いま作成した「UnitychanController」をユニティちゃんのAnimatorコンポーネントにドラッグ&ドロップしてセットします。

 f:id:nn_hokuson:20160717084815p:plain



 実行するとユニティちゃんがPerfumeのダンスを踊り出します!Animatorコンポーネントの「Apply Root Motion」のチェックを外すと、ユニティちゃんの位置は動かずに、ダンスのアニメーションだけが再生されます。

f:id:nn_hokuson:20160717085126g:plain