Kinect v2とMMDでモーションキャプチャーをする
先に書いておきますが、少なくともMMDでモーションキャプチャーをしたいのならば旧型のKinect v1を買ったほうが良いと思います。
Kinect v2でモーションキャプチャーをする
今までWebカメラとして利用したりWindows Hello用デバイスとして利用したりしていましたが、本来Kinectはモーションキャプチャーをするために作られたデバイスです。
なのでモーションキャプチャーをしましょう。
前提条件
全身をキャプチャーする場合はKinectから2m程度離れる必要がありますし、Kinectもある程度高い位置に設置する必要があります。
また、Kinectと被写体の間に障害物があるとキャプチャー品質が下がるのでどうにかしてください。
準備するソフトウェア
MikuMikuDance(DirectX9 Ver)
Kinect v2でモーションキャプチャーをして3Dモデルに反映させる方法はいくつかあるのですが、その中で私が楽だと思ったのがMMDを利用する方法なのでMMDを利用します。
32bit版のMMDでないとKinectが利用できないので32bit版のMMDを用意します。
ランタイムなりなんなりをインストールして起動できる状態にしてください。
KinectV2NUI
MMDは本来Kinect v2に対応していませんが、こちらのDLLを利用することでKinect v2とMMDの組み合わせでもモーションキャプチャーをすることができるようになります。
ダウンロードしたら展開し、中にある”DxOpenNI.dll”をMMDのDataフォルダーにコピーしてください。
MMDの利用
ということでMMDでモーションキャプチャーをしていきましょう。
MMDを起動したらモデルを読み込み、モーションキャプチャー→Kinectを選択すればOKです。
Kinectに認識されると被写体の動きがモデルに反映されます。
使ってみて
この映像はKinect v2を被写体から1m程度離れた状態でディスプレイの上に設置し、椅子に座った状態でキャプチャーした様子です。
モーションキャプチャーをするには近すぎることや照明が暗めであること、足元がキャプチャーできていない状態であることなど、条件が悪いのにも関わらずかなり善戦していると思います。
なお、今回はプレビュー画面を撮影しているためガクガクな動きになっていますが、動きを一旦キャプチャーしてモデルに反映した場合は滑らかな動きになります。
ただし、私の環境では首の動きが反映されませんでした。なぜか。
なお、Kinect自体の特性として回転動作の動きをキャプチャーすることが難しいという点があります。
手首や手のひらなどの動きも精度はそこまで良くありません。
また、今回の場合は指の開閉動作などもキャプチャーできません。
Kinect自体は指の開閉動作をキャプチャーできるらしいので頑張ってソフトウェアを開発すればキャプチャーできるかもしれませんが・・・
Kinect v2とMMDでモーションキャプチャーをしてみましたが、細かい動きをキャプチャーするには向いていないと感じました。
また、Kinect v2はKinect v1と比べてソフトウェアが充実していないので、モーションキャプチャーメインでKinectを利用したいような場合はKinect v2よりもKinect v1を利用したほうが良いと思います。
とはいえ、条件が揃った環境で正面を向いた大まかな動きの全身キャプチャーをする場合には便利だと思います。体にセンサーを取り付ける必要もありませんし、設置するセンサーもKinectのみとかなり楽です。
-
前の記事
動かないKinect v2を修理する記事 準備編 2020.04.24
-
次の記事
少女終末旅行を見ました 2020.04.26