EVMC4UをXR Animatorで動かしてみたメモ。Unityの世界に入ってモーションキャプチャーができるだと…Σ(゚Д゚)

EVMC4U 使い方 Unity
※記事内に広告が含まれています。

バーチャル3Dクリエイター神部まゆみです(*^-^*)

この記事はEVMC4Uを動かしてみた記事です。

動かしたのはUnity2022.3.22です。

●PRスペース●
■PR■

現在、毎日割引アセットが変わる Unity Flash Deals セール(50~80%オフ)をやってるみたいです。

Unity Flash Dealsセール 最大80%オフ

欲しいアセットはこの機会に買っておくと良いかも。

〇まゆみマート|BOOTH

BOOTHでVRoidテクスチャやVRChat向けオブジェクトなどを販売しています。いいねしてくれると励みになります(*^-^*)

やりたいこと:VRoidモデルをUnity内でモーションキャプチャー(Webカメラ)して動かす

XR Animatorっていう動画でモーションキャプチャーできるアプリを使ったけど、あれをVMC Protcolって言うのを使えばUnityにモーションキャプチャー情報を送信して動かせるっぽい。

TDPTもVMC Protcolに対応してるからできると思うけど、後でやってみます。

EVMC4Uって言うのを使えば手軽にできるっぽい

EasyVirtualMotionCaptureForUnity - Top page
EVMC4U Offical Document / EVMC4U公式ページ

ちなみにVirtual Motion Captureの作者さんとは別の人らしく、VMC Protcolのメンテナンスをしている人見たいです。

VMC Protcolについてはこちら。

Virtual Motion Capture Protocol (VMCProtocol 公式ページ)
VMCProtocol - ゲーム、ツール、配信環境など、あらゆる場所で使いやすいモーションキャプチャプロトコル仕様

しかしBOOTHでご支援版もなく寄付とかも受け付けてないっぽい?ので、いつ公開終了になっても文句は言えないかな?(;^_^A

有能なエンジニアの方は今は仕事に困らないため、まぁ感謝しつつ使わせてもらうことにしますw

実際に導入してみる

とりあえずノリで導入してみます。

ダウンロードする

安定版はBOOTHに置いてあるけど、最新版はGithubに置いてあるのでこちらを入れてみます。

Releases · gpsnmeajp/EasyVirtualMotionCaptureForUnity
VMCProtocol Receiver asset for Unity. Easy to use! / バーチャルモーションキャプチャーなどVMCProtocolを受信してUnityに反映するスクリプトです。 - gpsnmeajp/Ea...
EVMC4U 使い方

新規にプロジェクト作ってインポートする

Unity Hubで新規にプロジェクトを作っていきます。

既存のプロジェクトでもいいけど、unitypackageにUniVRMのファイルが入っているため、既にUniVRMが導入されていると重複でエラーになるので新規に作った方が良いかも。

EVMC4U unity モーションキャプチャー

GithubのほうはVRM1にも対応してるっぽいのでURPでもいけそうだけど、今回はBIRPでやってみます。

EVMC4U unity モーションキャプチャー

プロジェクトを作れたらunitypackageをインポートします。

導入すると説明や使い方のウィンドウなどが出てきますが、公式サイトが開く感じなので消してしまってOKです。

マニュアルはコチラ。

EasyVirtualMotionCaptureForUnity - 使い方 / How to use
EVMC4U Offical Document / EVMC4U公式ページ

VRM関連のファイルが同梱されてるので注意

これデフォルトでVRM関連のファイルが同梱されてるみたいなので、既にUniVRMを入れたプロジェクトだとエラーが出た。

重複すると消す必要があるので、新規にプロジェクトを作ってまっさらな状態で入れたほうが良いかも。

EVMC4U unity モーションキャプチャー

動かすモデルを読み込む

今回はVRoidモデル(VRM0)を読み込んでおきます。

ExternalReceiverシーンを開いてモデルを配置する

これがセットアップ済みのサンプルシーンみたいな感じっぽいです。

ExternalReceiverコンポーネントの設定をする

設定項目は色々あるけど、とりあえず「VRMモデルのGameObject」とモーションキャプチャーアプリのポートを指定すればOK。

今回はXR Animatorを使うため、ポートを確認しておいて一致させます。

EVMC4U 使い方
EVMC4U 使い方

Unityに配置したモデルとXR Animatorのモデルを一致させる

これ別のモデルでも動きはしたけど、メッシュの表示がめっちゃおかしくなってバイオハザードの新しいクリーチャーみたいになりましたね…(~_~;)とても見せられないっすw

全く同じモデルを使った方が良いと思います。

XR AnimatorでVMC ProtcolをONにする

ここをONにしないとモーションキャプチャーデータがUnityに送信されないので動きません。

EVMC4U 使い方

モーションキャプチャーを起動し、Unityで再生ボタンを押す

モーションキャプチャーの動作テストをしてからUnityで再生ボタンを押せば動かせます!

こんな感じで動いた!

うおお…これでUnityの世界に入れたぞΣ(゚Д゚) 凄い時代になったもんだなァ…。

BVH Toolsでモーション録画もできた

BVHだからブレンドシェイプとかは保持されてないけど、BVH Toolsを使うと録画できます。

BVH Tools – Unity Assets Store

あと古いヤツだけど、EasyMotionRecorderだとanimファイルで録画できた気がする。

GitHub - neon-izm/EasyMotionRecorder: Unityエディタ上でVRIKなどのモーションキャプチャをしたHumanoidキャラクターのモーションを記録, 再生をするスクリプト
Unityエディタ上でVRIKなどのモーションキャプチャをしたHumanoidキャラクターのモーションを記録, 再生をするスクリプト - neon-izm/EasyMotionRecorder

まぁ動画で使うならどうせモーション修正すると思うので、表情とかは後付けで編集すればいいと思う。

スクリプトも併用できそう?

Unity上で動作するわけだからスクリプトと併用もできると思う。

XR Animator側の表情トラッキングはオフにしておいて、リモコン型のキーボードとかでブレンドシェイプをスクリプトで手動で切り替えるのもいいかも?

結構色々使えるかもしれない。

別のシーンでも使ってみる

External Receiverさえシーンに配置すれば動くみたいなので、自作や販売アセットのシーンを開いて動かせそうです。

EVMC4U 使い方

これで動いた…けど向きがおかしいΣ(゚Д゚)

ルート回転反映のチェックを外したら良い感じに動いた

ここのチェックを外したら大丈夫だった。他にも調整したければここの設定いじれば良さそう。

EVMC4U 使い方

あれ、でも高さはダメだな…強引にトランスフォームいじったら調整できたけど、どこかいじらないとダメかも。

まぁだいたい動いたから良いかな。

しかしこれアニメとかも作れそうだな…。

スクリプトが使えるからカメラ動かしたり、他の人物モデルを配置して動かしたりも出来そう。

追記:uLipSyncと併用もできたので、事前に音声を作っておいて動かせそう

uLipSyncっていう口パクを実装するアセットと併用することもできました。

uLipSyncっていうのはこれね。

でも入れる時にちょこっとエラーが出たので解決する必要はあったけど、すぐ解決しました。

事前にVOICEVOXやCOEIROINKとかで音声を作っておいて切り替えれば、モデルを動かしながら動画作ったりできそう。

オーディオクリップをスクリプトで切り替えれば、事前に作った音声を切り替えられます。

おわりに

手軽にUnityの世界に入れて良かった。

これならVR端末もモーションキャプチャー機材も不要で、ゲーミングPCとウェブカメラさえあれば使えるから比較的ハードルは低めな気がする。

シーンに他にモデルを配置して動かしておけば、それに合わせて動いたりできるかもしれない。

スクリプトも併用すれば色々使えそうかも?

まぁもう少しいじってみます(*^-^*)

タイトルとURLをコピーしました