さて、前回は 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 へインポートする
このとき UniVRM も一緒にインポートされます。既にインポート済みの UniVRM は削除しておいたほうが良いっぽいです。
VRM ファイル を準備する
VRM ファイルも Unity へインポートする
こちらの記事同様 VRoid の Sample キャラクター を使わせていただきます。
この記事も参考にしてね!
シーンの設定をする
シーンにプレハブを追加する
必要なプレハブは「VRM キャラクター」と「EVMC4U の Receiver」になります。
ExternalReceiver プレハブの設定をする
VRM モデルの GameObject
に VRM のプレハブを設定します。
ThreeDPoseTracker の設定
- Send & Receive 画面を開く
- Send VMC Protocol にチェックを入れる
これで VMC Protocol を送信するようになります
実行してみる
Unity をプレイ状態にしたまま、ThreeDPoseTracker も START します。
私の弱々 PC では 10 fps も出ないのでモーションはカクカクですが、ちゃんと Unity に反映しました
まとめ
VMCProtocol があれば Unity に簡単に反映できることがわかりました。