Kinect v2で簡易モーションキャプチャした話


(Qiitaからの転載です)

やったこと

Kinectv2を使ってモーションキャプチャをし,Unityちゃんを動かすまで.
Unityのアセットストアで公開されている有償アセットを使用します.

使用した環境

  • windows 10 Pro
  • CPU それなりのクアッドコア
  • GPU ありきたりなグラフィックカード
  • Unity 5.5.1
  • Kinect v2 (Kinect SDK v2)

下準備

KinectはPCで認識された状態にする.
(下の画像のような状態だとOK)

qii01.PNG

以下のURLにアクセスしアセットを購入&ダウンロードする.
https://www.assetstore.unity3d.com/jp/#!/content/51090

ダウンロードが終わったら,Unityの3Dプロジェクトにインポートする.
qii02.PNG
(右下のImportを押せばOK)

モーションキャプチャ

インポートが終わるとプロジェクトのアセットフォルダにいくつかファイルが読み込まれる.ここのKinectMocapFbx->MocapFbxAnimatorシーンを選択する.
qii03.PNG

シーンが読み込まれたら,KinectがPCで認識されていることを確認しシーンを再生する.

qii04.PNG

ここでKinectの前に立つと,そのボーン情報が左のアバターに反映される.モーションキャプチャを開始したいときはスペースキーを押す.Kinectの音声認識が使える環境なら「Record」と発言しても開始できるらしい(未検証).

同様に,モーションキャプチャを止める時もスペースキーを押す.

記録されたアニメーションはKinectMocapFbx->Models->UChar1.fbxに保存されている.もう1度モーションキャプチャをすると,このfbxファイルにアニメーションが上書きされるので注意.

qii05.PNG

実際にほかのモデルでアニメーションを動かす

とりあえずUnityちゃんを動かしてみよう.適当にUnityちゃんのAssetをインポートする.

先ほどのUChar1のRigはGenericでUnityちゃんのRigはHumanoidなので,UChar1のRigをHumanoidに変更する.変更した後はApplyを押す必要がある.

qii06.PNG

アニメーションのファイルはfbxの中に格納されているので,取り出す必要がある.UChar1.fbxの中のKinectMocap.animが記録したアニメーションファイルに該当する.KinectMocapを選択して Ctl(Command) + D でアニメーションファイルをfbxから取り出すことができる.

qii07.PNG

取り出したアニメーションファイルをhierarchyのunitychanにドラッグアンドドロップする.すると,Animatorが自動生成され,下の画像のような状態になる.

qii08.PNG

これでシーンを再生すると先ほど記録したアニメーションが再生される.

qii09.PNG

まとめ

Kinect v2でモーションキャプチャをしたいという気持ちでアセットストアを眺めていたら良いのを見つけた.価格は$10と既存のKinectモーションキャプチャよりもかなり安く,おススメできる.

このコンテンツは,ユニティちゃんライセンス条項 のもとに提供されています.

imageLicenseLogo.png