ニコニコ動画やYouTubeを見ていると、MMD+Kinect でモーションキャプチャして「補正・編集を行わない状態」なのにすっごくキレイな動きをしている動画が沢山見つかる。
「むむむ。。。もしかしてMMDの方が優秀なのか?」と感じてしまい、すっげー久々にMMDをインストールして、Kinectでモーションキャプチャしてみました。
結果
モーションキャプチャしたデータは、MMDとライブアニメーション(以下LA)で、違うといえば違うし、同じと言えば同じ。微妙な所ですねえ。
- MMDとLAそれぞれ、ある程度の補正処理が入っている
- 足の接地感についてはLAの方が優秀。
MMDは若干フワフワしてる
- MMDは女の子っぽい仕草が強調され、実際の動きより若干キュートに仕上がる。LAは実際の動きの再現性が高い。
- しゃがむ⇔立つ の姿勢認識は、MMDの方が精度が高い。LAは地面との接地感が強い分、しゃがんだ姿勢を取るとポーズが破綻する。
- 腰の動きはMMDの方が上手く拾えている
- 一回転ターンなどの処理や、身体に隠れた手足の処理も、MMDの方が優れている。が、その補正処理はかなり重く、非力なマシンだと処理が追いつかないっぽい。ツール全体の作動もLAの方が軽い。
- LAは内部処理で60fps化している。素早い動きをキャプチャするならLAが向いている。
- 足の接地感についてはLAの方が優秀。
- 基本的にはキャプチャデータは同じもの
- Kinectから得られるデータは基本的に同じもの。
動きの精度は、OpenNIのドライバとライブラリによって大きく変わる。 - Kinectでモーションキャプチャする際、全身が映る距離も大事だけど、それ以外にも以下が大事。
- 部屋の横幅(壁と人体が近くても誤検出)
- 部屋の奥行き(同上)
- 床のキレイさ
(ティッシュの箱、雑誌などがあっても誤検出する場合あり) - 着ている服
赤外線を反射しやすい色(明るい色)でピッチリした服が良い。
- Kinectから得られるデータは基本的に同じもの。
Kinectを使う際に大切な事
冒頭で書いた「補正・編集を行わない状態なのにすっごくキレイな動きをしている動画」を作るためには、ツールの選択よりもドライバの選択とお部屋掃除がもの凄く大事だと解ってきた。
ガンガン動いて、全てを正確にキャプチャしようと思ったら、カメラに映る物体はすべてお掃除して、極力干渉しそうなデータを全て排除する必要がある。
・キレイに片付いた部屋でモーションキャプチャする
・後左右、すべて壁から50cm以上離れる
この2点すごく大切。
Kinectカメラの設置位置
ライブアニメーションでKinectを利用する場合
・・・Kinectカメラを60~80cmの高さに設置する
VPVPで配布されているMMD&DxOpenNI.dllを利用する場合
・・・Kinectカメラを60~80cmの高さに設置する
MoggDxOpenNI - moggprojectで配布されているDxOpenNI 改造DLL
・・・Kinectカメラを130~150cmの高さに設置する
顔や手首の動きも認識してくれる。しかし足の動きの認識は弱い。
モーションによって使い分けが必要。
Kinectカメラの高さは、高くても低くてもモーションキャプチャは出来る。しかし適切な高さにカメラを設置しないとPC内のキャラが垂直に立ってくれない。
MMD→LA→Poser
ライブアニメーションは 、VMD (MMDのモーションファイル)や BVH の入出力が可能。フリーなので持ってると便利。MMDのモーションデータはLAを介す事で簡単にPoserに持っていける事を今さらながら知った。
- 注意
初音ミクなど手足が長く肩幅の狭いキャラを使ってキャプチャすると、他ツールで使いまわしし難いデータが出来上がる。鏡音リンやMEIKOなど標準的な手足の長さを持ったキャラが使いやすい。
で、ようやくMMDに興味が沸いてきてアレコレと関連ツールを調べてみるとMMDからBVH出力できるツール(導入は凄く面倒)や、モーションキャプチャしたデータのノイズをフーリエ変換で除去するツール等、色々なツールが開発されていますね。
あと、LAはMMDのPMDデータ(キャラクタの3Dデータ)の読み込みも可能ですねえ。
MMDでモーションつけるの面倒臭い。でも初音ミクでアニメーション作りたいって場合もLAにPMDデータインポート、モーションファイルをVMD形式で出力・・・なんてやると便利かもしれません。
MMD単体ではアニメーション作るのが非常に面倒だし、版権付きデータにあまり興味がなかったので今までスルーしていましたが... 補助ツールを揃えて行くとかなり便利ですね。もっと早くから使っていれば良かった(^_^;