ジャコ Lab

プログラミング関連のメモ帳的ブログです

【ThreeDPoseTracker】リアルタイムで Unity にモーションを反映してみる

さて、前回は ThreeDPoseTracker 単体で VRM ファイルを読み込み、アバターを追加しました。本日は ThreeDPoseTracker と Unity を連携します。

前に使った UniVRM も使うよ!

はじめに

こちらの記事で VRM を Unity のインポートしました。
今回は UniVRM がもともと入っていると動かなくなる可能性があるので、新規プロジェクトで実施します。

Unity 環境について

  • Unity 2022.3.44f1
  • Built-in RP

EVMC4U を準備する

EVMC4U とは?

VMCProtocol を Unity で受信できるようにするスクリプト だそうです

度々、用語は出てきていましたが VMCProtocol さえ送信できれば、この EVMC4U でモーションデータが Unity に受信できるということですね。

EVMC4U をダウンロードする

安定版は BOOTH に置いてくださっているようです。ExternalReceiverPack_v4_1.zip をダウンロードします。

解凍すると以下のようなフォルダ構成になっており unitypackage が1つあるようです

ExternalReceiverPack_v4_1/
└─ExternalReceiverPack_v4_1.unitypackage

Unity へインポートする

ExternalReceiverPack_v4_1 をインポートする
ExternalReceiverPack_v4_1 をインポートする

このとき UniVRM も一緒にインポートされます。既にインポート済みの UniVRM は削除しておいたほうが良いっぽいです。

VRM ファイル を準備する

VRM ファイルも Unity へインポートする

こちらの記事同様 VRoid の Sample キャラクター を使わせていただきます。

この記事も参考にしてね!

シーンの設定をする

シーンにプレハブを追加する

必要なプレハブは「VRM キャラクター」と「EVMC4U の Receiver」になります。

Receiver
Receiver

VRM キャラクター
VRM キャラクター

ExternalReceiver プレハブの設定をする

VRM モデルの GameObject を設定する
VRM モデルの GameObject を設定する

VRM モデルの GameObjectVRM のプレハブを設定します。

ThreeDPoseTracker の設定

Send VMC Protocol の設定をする
Send VMC Protocol の設定をする

  1. Send & Receive 画面を開く
  2. Send VMC Protocol にチェックを入れる
これで VMC Protocol を送信するようになります

実行してみる

Unity をプレイ状態にしたまま、ThreeDPoseTracker も START します。

実行デモ
実行デモ

私の弱々 PC では 10 fps も出ないのでモーションはカクカクですが、ちゃんと Unity に反映しました

まとめ

VMCProtocol があれば Unity に簡単に反映できることがわかりました。