バーチャルモーションキャプチャー(以下、VMC)を使えば、VRM形式の3DモデルをVR機器で簡単に動かせます。
さらに、今回ご紹介するEasyVirtualMotionCaptureForUnity(以下、EVMC4U)というツールを使えば、簡単にUnityを利用して高度な表現をすることができるようになります。
自前ではとても手間のかかるUnityでの環境構築も、VMCとEVMC4Uとの連携によって、かなりの部分を省略できるので、今回はこのEVMC4Uをご紹介したいと思います。
EasyVirtualMotionCaptureForUnity(EVMC4U)とは?
EVMC4Uは、簡単に言えばUnity上の3DモデルをVMCを使って制御するツールです。
3Dモデルを制御するための仕組みをVMCにすべて任せることで、Unityで必要な作業を大幅に削減することができます。 例えば、
・SteamVRとのやり取り
・ボタン入力
・MIDI入力
・VRMの諸々の処理
・トラッカーの扱いや補正
・10点トラッキングを含めた処理
・カメラ移動
・ボーンのあれこれ
これらを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をダウンロードする。
2. Unityの新しい3DプロジェクトにExternalReceiverPackをインポートする。
3. ExternalReceiverSceneを開いて、読み込みたいVRMモデルを配置する。
4. Scene ViewでExternalReceiverに、読み込んだVRMのGameObjectを「Model」に割り当てる。
5. 再生ボタンを押して実行。
6. VMCを起動して、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モデルを動かすところまでをご紹介しましたが、ここから部屋や家具のアセットを配置して、カメラや照明を整えるだけで、簡単に自分だけの配信スペースをつくることができます。
さらにサンプルスクリプトを使えば、いろいろな機能を新たに追加することができるので、工夫次第でより高度なことができるようにもなります。
さまざまな用途に使える便利なツールなので今後も記事でご紹介したいと思います。