EVMC4UでUnityとバーチャルモーションキャプチャーをつなぐ方法

バーチャルモーションキャプチャー(以下、VMC)を使えば、VRM形式の3DモデルをVR機器で簡単に動かせます。

さらに、今回ご紹介するEasyVirtualMotionCaptureForUnity(以下、EVMC4U)というツールを使えば、簡単にUnityを利用して高度な表現をすることができるようになります。

自前ではとても手間のかかるUnityでの環境構築も、VMCとEVMC4Uとの連携によって、かなりの部分を省略できるので、今回はこのEVMC4Uをご紹介したいと思います。

EasyVirtualMotionCaptureForUnity(EVMC4U)とは?

EVMC4Uは、簡単に言えばUnity上の3DモデルをVMCを使って制御するツールです。
3Dモデルを制御するための仕組みをVMCにすべて任せることで、Unityで必要な作業を大幅に削減することができます。 例えば、

・SteamVRとのやり取り
・ボタン入力
・MIDI入力
・VRMの諸々の処理
・トラッカーの扱いや補正
・10点トラッキングを含めた処理
・カメラ移動
・ボーンのあれこれ

引用元:https://qiita.com/gpsnmeajp/items/a37d29f5fc0632e32577

これらをVMCにすべて任せられるので、これらのものを自分で一から作る必要はなくなります。
技術的な部分にかけなければならなかった時間を表現や演出など、より本質的な部分にかけられるので、Vtuberなどのアーティストにとっては、非常にありがたいツールとなっています。

ライセンスはMITライセンスなので、幅広い用途で使用できます。

入手先

GitHubとboothでダウンロードできます。

GitHubでは最新版が、boothでは安定版がダウンロードできます。GitHubには詳細な説明書も掲載されています。

最新版(GitHub) https://github.com/gpsnmeajp/EasyVirtualMotionCaptureForUnity
安定版(booth) https://booth.pm/ja/items/1801535

用意するもの

EVMC4UはUnityとバーチャルモーションキャプチャーをつなぐものなので、UnityとVMCは必須です。

またOSCモーション送信機能のついたVMCが必要となりますので、古いバージョンのVMCを利用している方は新しいバージョンのVMCを用意してください。

Unity

Unity5.6.3p1 〜 Unity2019.3(beta)まで動作確認がなされているそうなので、現在使用しているUnityがあればそれを使用していただいて問題ありません。なおUnity2019.3については不具合も報告されているので、こちらで対処法をご確認ください。

▼対処法はこちら▼

https://github.com/gpsnmeajp/EasyVirtualMotionCaptureForUnity/wiki/Unity2019-3-workaround

バーチャルモーションキャプチャー(V0.42以降のもの)

EVMC4Uを利用するには、OSCモーション送信機能のついたVMCが必要です。

この機能がついているバージョンは、v0.36以降のものなので、v0.35以前のものはまったく使うことができません。また、EVMC4UのチュートリアルではV0.42以降のVMCが必須とされているので、V0.42以降のものを使うようにしてください。

なお、現在入手できるVMCはV0.42以降のものなので、常に最新のものをダウンロードしていれば問題ありません。

▼バーチャルモーションキャプチャーのダウンロードはこちらから▼
https://sh-akira.github.io/VirtualMotionCapture/download.html

VRMモデル

VMCで動かすVRMモデルと、Unityで動かすモデルはボーン情報が同じである必要があります。

VMCとUnityで同一のVRMモデルを使用すれば良いので、用意するモデルは一つだけで構いません。

VRoid hubやニコニ立体などで第三者利用が可能なVRMモデルをダウンロードしたり、boothなどで有料のモデルを購入するなど、モデルを入手する方法は色々あります。

使い方

詳細な説明書やFAQはGitHubの方に掲載されているので、ここではExternalReceiverPackを利用した方法について説明したいと思います。

1. GitHubやBoothでExternalReceiverPackをダウンロードする。

今回はGitHubでダウンロードします

2. Unityの新しい3DプロジェクトにExternalReceiverPackをインポートする。

ExternalReceiverPackをUnityにインポートする

3. ExternalReceiverSceneを開いて、読み込みたいVRMモデルを配置する。

VRMモデルを配置

4. Scene ViewでExternalReceiverに、読み込んだVRMのGameObjectを「Model」に割り当てる。

Modelに割り当てる

5. 再生ボタンを押して実行。

再生ボタンを押して実行します

6. VMCを起動して、OSCでモーション送信を有効にする。

OSCでモーション送信を有効にします

7. VMCでキャリブレーションする。

完成!

ExternalReceiverPack_v3_5aを使用している場合は、チュートリアルがUnity上に表示されるので、手順がわからない場合はそちらもご利用ください。

なお、この記事の手順とチュートリアルの手順では順番が異なりますが、どちらの順番でも問題なく動くので心配はいりません。

チュートリアルもあります

ExternalReceiverPackを利用しない場合の手順などは、GitHubの方で詳しく説明されているので、そちらをご確認ください。

▼公式による使い方の説明▼ https://github.com/gpsnmeajp/EasyVirtualMotionCaptureForUnity/wiki/How-to-use

STYLYにアップロードする

キャリブレーションした3Dモデルを、プレハブ化してSTYLYにアップロードします。
UnityからSTYLYへのアセットのアップロード方法が分からない方は、こちらのマニュアル記事をご参照ください。

UnityとバーチャルモーションキャプチャーをつなぐEasyVirtualMotionCaptureForUnityをご紹介しました。

今回はEVMC4Uを使ってVRMモデルを動かすところまでをご紹介しましたが、ここから部屋や家具のアセットを配置して、カメラや照明を整えるだけで、簡単に自分だけの配信スペースをつくることができます。

さらにサンプルスクリプトを使えば、いろいろな機能を新たに追加することができるので、工夫次第でより高度なことができるようにもなります。

さまざまな用途に使える便利なツールなので今後も記事でご紹介したいと思います。