NasukaGgud blog

ガジェットやイラスト作成、3Dグラフィックスなどについての記事を思うがままに書きます。

Kinect V2を使ってVtuberになれるかも?(Blenderモーションキャプチャー)

目次

 

デモンストレーション

 

まえがき

最近の3Dモデルを使ったVtuberOculus RiftなどのVRヘッドセットとトラッキングセンサを使ってモーションキャプチャーを行っているのが大半ですよね。(もっとすごいの使っている人もいる...)そうなるとPC+10万円以上の出費が必要になるため3DVtuberはかなりの敷居の高さになっていると思います。そこでKinect V2を使ってPC+3万円でお安く3DVtuberになる方法を考えてみました。

使うもの

今回はMMDモデルを使ってモーションキャプチャをとることを前提に考えてみた。

 

ハードウェア類

Kinect V2 (以前は中古で8000円で売られていたが現在は値上がりしている)

Kinectアダプターfor Windows(7500円前後で売られている)

・PC(第3世代以降Core i7以上、GeforceなどのGPU搭載のPCが望ましい)

※本ブログ実行環境

Core i7 7700HQ

Geforce GTX1050

RAM 16GB

Windows 10 home

 

ソフトウェア類

Kinect SDK(無料)

blender(無料)

・NI Mate 2 blender plugin(無料)

・Autodesk Motion builder(学生は無料)

・Live Animation(無料)

・MMM(MikuMikuMoving)(無料)

 

環境構築の流れ

1.Kinect SDKインストール

2.必要アプリケーションのインストール

3.NI mate 2.0 kinect plugin インストール

4.NI mate Blender plugin インストール

5.Blender のプロジェクト設定

 

1.Kinect SDK

Kinectを使うにはまず環境を整える必要があるのでそこから説明していこう。

 

まずKinect SDKをダウンロードしてインストールする。

 

ダウンロードしたインストーラーに従ってインストールを完了させる。(要再起動)

インストールが完了するとアプリケーションが追加されるのでKinect SDK Browserを実行する。

Configuration Verifierを実行してエラーが特になければKinect V2の導入は完了です。写真ではUSB3.0を検知して警告が出ているようですが問題ないです。

 

2.必要ソフトのインストール

次に必要ソフトを粗方インストールをします。

blender▼(本ブログではバージョン2.8を使用する)

URL:https://www.blender.org/

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 インストール

blenderkinectで読み取ったモーフデータをリアルタイムで送るために必要なソフトです。

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を立ち上げウィンドウ左上から編集>設定>アドオンタブで右上のインストールを選択します。

f:id:NasukaGgud:20191125113607p:plain

 

そしてダウンロードしたアドオンを選択します。

f:id:NasukaGgud:20191125113820p:plain



ダウンロードしたパイソンファイルを選んでインストールを押すと完了です。

 

f:id:NasukaGgud:20191125113927p:plain

導入ができると右のタブに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のタブで開始ボタンを押せばトラッキング化開始されます。

 

これを記録するには下側にある録画モードボタンを押してから再生ボタンを押すと開始されます。

f:id:NasukaGgud:20191125120154p:plain



停止ボタンを押して録画を停止した後、これを焼きこむ必要があります。焼きこむときはNI mateのトラッキングを一回停止させた状態にしてオブジェクトモードにしてからスケルトンとKinectのトラックデータを選択し、アニメーションタブのアクションのベイクを選択します。

f:id:NasukaGgud:20191125125807p:plain



 

ベイクの設定は以下のとおりです。

f:id:NasukaGgud:20191125123956p:plain

 

キャプチャ時間が長いほどベイク時間も長くなります。ベイクが完了してタイムラインにキーが表示されれば成功です。

f:id:NasukaGgud:20191125124101p:plain

 

ケルトンのみを選択した状態でbvhでエクスポートします。

f:id:NasukaGgud:20191125130016p:plain

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ファイルをインポートします。

f:id:NasukaGgud:20191125132557p:plain

 

読み込んだら両手首のキーフレームを消します。(手首のキャプチャデータの精度がよくないため)

f:id:NasukaGgud:20191125132900p:plain

 

最後にゲームエンジンに持っていくので物理演算をベイクします。

f:id:NasukaGgud:20191125133019p:plain

(MMMのこの機能めっちゃ便利)

 

これでVMDを出力すればMMDで扱えるモーションキャプチャ完了です。

 

5.出来上がったモーションデータをゲームエンジン

今回はUE4へ出来上がったモーションデータを出力します。UE4MMDプラグインを使用してあらかじめモデルを読み込んでおきます。

 

今回はフランちゃんです

 

そこに作成したモーションデータをインポートすればゲームエンジン上で扱えるようになります。

 

これで完成です!!お疲れさまでした!!

 

あとがき 

この方法を考えてみて使ってみた感想なんですけど...

めちゃくちゃめんどくさい。

もっと簡単にモーションキャプチャできるような方法を考えてみようと思います。

今のところUE4Kinectプラグインが見つかったのでUE4上でそのままMMDモデルにモーションを流し込めるか模索しています。実用化できそうだったらまた記事を書こうかと思います。

それではまた...