(Qiitaからの転載です)
やったこと
Kinectv2を使ってモーションキャプチャをし,Unityちゃんを動かすまで.
Unityのアセットストアで公開されている有償アセットを使用します.
使用した環境
- windows 10 Pro
- CPU それなりのクアッドコア
- GPU ありきたりなグラフィックカード
- Unity 5.5.1
- Kinect v2 (Kinect SDK v2)
下準備
KinectはPCで認識された状態にする.
(下の画像のような状態だとOK)
以下のURLにアクセスしアセットを購入&ダウンロードする.
https://www.assetstore.unity3d.com/jp/#!/content/51090
ダウンロードが終わったら,Unityの3Dプロジェクトにインポートする.
(右下のImportを押せばOK)
モーションキャプチャ
インポートが終わるとプロジェクトのアセットフォルダにいくつかファイルが読み込まれる.ここのKinectMocapFbx->MocapFbxAnimatorシーンを選択する.
シーンが読み込まれたら,KinectがPCで認識されていることを確認しシーンを再生する.
ここでKinectの前に立つと,そのボーン情報が左のアバターに反映される.モーションキャプチャを開始したいときはスペースキーを押す.Kinectの音声認識が使える環境なら「Record」と発言しても開始できるらしい(未検証).
同様に,モーションキャプチャを止める時もスペースキーを押す.
記録されたアニメーションはKinectMocapFbx->Models->UChar1.fbxに保存されている.もう1度モーションキャプチャをすると,このfbxファイルにアニメーションが上書きされるので注意.
実際にほかのモデルでアニメーションを動かす
とりあえずUnityちゃんを動かしてみよう.適当にUnityちゃんのAssetをインポートする.
先ほどのUChar1のRigはGenericでUnityちゃんのRigはHumanoidなので,UChar1のRigをHumanoidに変更する.変更した後はApplyを押す必要がある.
アニメーションのファイルはfbxの中に格納されているので,取り出す必要がある.UChar1.fbxの中のKinectMocap.animが記録したアニメーションファイルに該当する.KinectMocapを選択して Ctl(Command) + D でアニメーションファイルをfbxから取り出すことができる.
取り出したアニメーションファイルをhierarchyのunitychanにドラッグアンドドロップする.すると,Animatorが自動生成され,下の画像のような状態になる.
これでシーンを再生すると先ほど記録したアニメーションが再生される.
まとめ
Kinect v2でモーションキャプチャをしたいという気持ちでアセットストアを眺めていたら良いのを見つけた.価格は$10と既存のKinectモーションキャプチャよりもかなり安く,おススメできる.
このコンテンツは,ユニティちゃんライセンス条項 のもとに提供されています.