Kinect V2を使ってVtuberになれるかも?(Blenderモーションキャプチャー)
目次
デモンストレーション
まえがき
最近の3Dモデルを使ったVtuberはOculus RiftなどのVRヘッドセットとトラッキングセンサを使ってモーションキャプチャーを行っているのが大半ですよね。(もっとすごいの使っている人もいる...)そうなるとPC+10万円以上の出費が必要になるため3DVtuberはかなりの敷居の高さになっていると思います。そこでKinect V2を使ってPC+3万円でお安く3DVtuberになる方法を考えてみました。
使うもの
今回はMMDモデルを使ってモーションキャプチャをとることを前提に考えてみた。
ハードウェア類
・Kinect V2 (以前は中古で8000円で売られていたが現在は値上がりしている)
・PC(第3世代以降Core i7以上、GeforceなどのGPU搭載のPCが望ましい)
※本ブログ実行環境
Core i7 7700HQ
Geforce GTX1050
RAM 16GB
Windows 10 home
ソフトウェア類
・blender(無料)
・NI Mate 2 blender plugin(無料)
・Autodesk Motion builder(学生は無料)
・Live Animation(無料)
・MMM(MikuMikuMoving)(無料)
環境構築の流れ
2.必要アプリケーションのインストール
3.NI mate 2.0 kinect plugin インストール
4.NI mate Blender plugin インストール
5.Blender のプロジェクト設定
1.Kinect SDK
Kinectを使うにはまず環境を整える必要があるのでそこから説明していこう。
ダウンロードしたインストーラーに従ってインストールを完了させる。(要再起動)
インストールが完了するとアプリケーションが追加されるのでKinect SDK Browserを実行する。
Configuration Verifierを実行してエラーが特になければKinect V2の導入は完了です。写真ではUSB3.0を検知して警告が出ているようですが問題ないです。
2.必要ソフトのインストール
次に必要ソフトを粗方インストールをします。
blender▼(本ブログではバージョン2.8を使用する)
Motion builder▼
URL:https://area.autodesk.jp/product/motionbuilder/
Live animation▼
URL:http://www.drf.co.jp/liveanimation/
MMD▼
URL:https://sites.google.com/view/vpvp/
※インストール方法、細かい操作はggってくたさい。
3.NI mate 2.0 kinect plugin インストール
blenderにkinectで読み取ったモーフデータをリアルタイムで送るために必要なソフトです。
URL:https://ni-mate.com/download/
Windows版とOfficial plugin のBlender版の2つをダウンロードしてきます。
ダウンロードしてきた2つのファイルのうちインストーラーの方を動かしNI mateをインストールします。
インストールする項目でkinect のドライバのチェックを忘れずつけてインストールします。
NI mate を起動するとタスクバーのインジゲーターに格納されるのでそこからNI mate のアイコンを右クリックしてコントロールインターフェースを開く
Kinectを接続した状態でKinect for windows のタブで自分をトラッキングできていれば導入完了です。
4.NI mate Blender plugin インストール
先ほどダウンロードした"animation_delicode_ni_mate_tools.py"をここで使います。まずblenderを立ち上げウィンドウ左上から編集>設定>アドオンタブで右上のインストールを選択します。
そしてダウンロードしたアドオンを選択します。
ダウンロードしたパイソンファイルを選んでインストールを押すと完了です。
導入ができると右のタブにNI mateの項目が増えます。
5.Blender のプロジェクト設定
次はNI mateのデータをblenderのボーンとリンクさせる必要があります。(VMD変換をしやすくするため)
最初にNI mateのblender用プロジェクトをダウンロードしてきます。
ダウンロード先のプロジェクトファイルはすべて設定が終わっている状態ですので、手順を知る必要ない人は読み飛ばしてください。
DL:https://drive.google.com/file/d/1C6Pdibbmx5hadFyfZfbf5xpW2CR0U1BE/view?usp=sharing
以下手順(プロジェクト作成時blender 2.79)
そのプロジェクトを開いて4つ目のレイヤに人型のボーンを作成します。
shift+Aで作成したテンプレートでは無駄なボーンが多いので写真のような構造になるように単純化します。
スケルトンができたらレイヤ1とボーンコンストレイントをして同期させます。Hipsボーンだけ回転コピーと位置コピーをします。
他のボーンも同じように回転コピーだけ対応するCapture Armatureを選択して登録します。(※この時両肩の登録は行わない)
モーションキャプチャの方法
1.blenderで体の動きを記録する。
2.体の動きをMotion builderへインポート&編集。
3.Live Animationを使用して体の動きをvmdに変換
4.MMDで物理演算モーフを焼き付ける
5.出来上がったモーションデータをお好きなゲームエンジンへ(オプション)
1.blenderで体の動きを記録する
まずblenderでNI mateを使うためにNI mateを開き、skeleton trackingにチェックを入れます。(忘れずに)
そしてblenderのNI mateのタブで開始ボタンを押せばトラッキング化開始されます。
これを記録するには下側にある録画モードボタンを押してから再生ボタンを押すと開始されます。
停止ボタンを押して録画を停止した後、これを焼きこむ必要があります。焼きこむときはNI mateのトラッキングを一回停止させた状態にしてオブジェクトモードにしてからスケルトンとKinectのトラックデータを選択し、アニメーションタブのアクションのベイクを選択します。
ベイクの設定は以下のとおりです。
キャプチャ時間が長いほどベイク時間も長くなります。ベイクが完了してタイムラインにキーが表示されれば成功です。
スケルトンのみを選択した状態でbvhでエクスポートします。
blenderでの工程はこれで終わりです。
2.体の動きをMotion builderへインポート&編集
Motion builderを起動して先ほどエクスポートしたbvhをインポートします。インポートしたら左下のScene>BVH:reference>BVH:Hipsまで開いてBVH:referenceを消去します。
次に右のアセットブラウザからキャラクターをドラッグしてBVH:Hipsの上にドロップします。この時警告文が出るので"Biped"を選択します。
そして最後にBVHでエクスポートします。エクスポート設定のチェックはキーフレームが少ない方のチェックを外してエクスポートします。
3.Live Animationを使用して体の動きをvmdに変換
Live Animationを起動してMotion builder で作成したbvhをインポートしてvmdでエクスポートします。
4.MMMで物理演算モーフを焼き付ける
MMDを起動して好きなモデルを読み込んでIKをすべて切った状態で登録します。その後に先ほど作成したVMDファイルをインポートします。
読み込んだら両手首のキーフレームを消します。(手首のキャプチャデータの精度がよくないため)
最後にゲームエンジンに持っていくので物理演算をベイクします。
(MMMのこの機能めっちゃ便利)
これでVMDを出力すればMMDで扱えるモーションキャプチャ完了です。
5.出来上がったモーションデータをゲームエンジンへ
今回はUE4へ出来上がったモーションデータを出力します。UE4のMMDプラグインを使用してあらかじめモデルを読み込んでおきます。
今回はフランちゃんです
そこに作成したモーションデータをインポートすればゲームエンジン上で扱えるようになります。
これで完成です!!お疲れさまでした!!
あとがき
この方法を考えてみて使ってみた感想なんですけど...
めちゃくちゃめんどくさい。
もっと簡単にモーションキャプチャできるような方法を考えてみようと思います。
今のところUE4でKinectのプラグインが見つかったのでUE4上でそのままMMDモデルにモーションを流し込めるか模索しています。実用化できそうだったらまた記事を書こうかと思います。
それではまた...