TMARelay:VRChatのデスクトップモード/スマホ版で手を動かす奴
- 0 JPY
腕にトラッカーつけてVRChatのデスクトップモードで腕を動かせるようにするWindowsソフトを作りました! わたしの場合、SlimeVRトラッカー(オープンソースでDIYできるやつ)を4つ(Lower Arm/Upper Armの左右)つけて動画のように動かせています。 VMC ProtocolでBoneのモーションを送信できるものでも使えると思います。また、ばもきゃ(先行配信版)にデータを渡してばもきゃからモーションをTMARelayに送るよう設定できればだいたい使えるはずです。(Uni-motionやmocopiでも使えるはず)(HMDの装着または偽装が必要ですが、VIVE Trackerでも使えます) PC上でこのアプリを使いOSCの送信先をandroidスマホに設定して、スマホ版で手を動かすこともできます。
仕組み
VMC Protocolで姿勢の情報を受け取りVRMモデルに反映した後、 ボーンの曲がり具合(muscle値)をVRChatにOSCで送ってExpression Parameterに設定して、 VRChat側では Animation で腕を曲げています。 SlimeVRは、トラッキング/モーション情報をVMC Protocolで送出できるので、トラッカーで検出した動きをデスクトップモードのアバターに反映できています。 (Tracking info → Muscle(Motion)→ Animation とつなぐので、 TMA Relay という名前になっています)
SlimeVRでの使い方
今のところ、SlimeVR利用者用説明のみになります。 SlimeVRトラッカーでの使い方は TMARelay_v0.2.MA.ZIP に入っている、 TMARelay_ユーザー向け説明β.txt を参照してください。 仕組みを見たい方は、 TMARelay_v0.2_Build.ZIP のほうを見てください。 TMARelay.exe をビルドするための情報やソースコードが入っています。
スマホをトラッカーがわりにする使い方
owoTrack というスマホ用アプリを入れるとスマホを SlimeVR用トラッカーとして使用できます(動画のとおり) これの設定方法の解説はブログのほうに書きました。 https://tbbsakura.fc2.net/blog-entry-19.html
ライセンス
TMARelay は MITライセンスでソースコード等公開しています。 また、以下の MITライセンスのソフトウェアを同梱しています。 UnityWindowsFileDrag&Drop Copyright (c) 2018 Markus Göbel (Bunny83) https://github.com/Bunny83/UnityWindowsFileDrag-Drop uOSC Copyright (c) 2017 hecomi https://github.com/hecomi/uOSC EVMCP4U (Eazy Virtual Motion Capture for Unity), External Receiver Pack Copyright (c) 2019-2020 gpsnmeajp https://booth.pm/ja/items/1801535 UniVRM - UniVRM, UniGLTF, UniHumanoid, MToon Copyright (c) 2020 VRM Consortium Copyright (c) 2018 Masataka SUMI for MToon https://github.com/vrm-c/UniVRM
更新履歴
2023/8/31 v0.1 公開 2023/8/31 v0.1b 読み込んだVRMの目の表示を改善(致命的ではないので更新しなくても大丈夫です) 2023/9/1 v0.1c ・Standard や Unlit シェーダーを含むVRM のロードに失敗するのを修正しました。 ・ステータスメッセージの種類をふやしました。 ・SpringBoneを無効にするようにしました。 (直したつもりの目のバグ、まだあるかも?) 2023/9/5 v2.0 目のボーン情報を受信しないオプションをつけた(目がおかしいのはそのせいだったので) 送信するmuscle値を増やしたり ExParam名をカスタマイズできる Expert modeを実装(あまり役に立たないことが判明しています…) 2024/1/6 v2.0.MA Modular Avatarで簡単にアバターセットアップできるプレハブ・スクリプトを用意しました。 2024/1/15 v2.0.1.MA Modular Avatarセットアップが、Gesture Layerがデフォルトのときうまくいかないのを修正(MA用パッケージ以外はv2.0と同じ)
余談
muscle値は95個ありますが、ExParam95個用意するのは現状無理なので、動かしたい部位を増やしたい場合は、IK等を使う(たとえば、手の位置からLower/UpperArmの曲を推定すれば、手の分の ExParamで肘も扱える)ほうがやり方としては良いと思います。 また、頭の方向を視線方向と違う向きにするようなことも、この方法だと難しいので、腕以外を動かしたい方は別の方のものを使うほうが良いと思います。 デスクトップフルトラアプリ 【VMCProtcol用】 https://kirisamenanoha.booth.pm/items/5030353 デスクトップフルトラシステム【mocopi用】 https://booth.pm/ja/items/4507191
対応バージョン等
Unity 2019.4.31f1、Unity 2022.3.6f1で動作確認しています。 Unity 2019.4.31f1で作成したアセットを利用して、Unity 2022.3.6f1とVRCSDK3.5.0以降でアバターアップロードするのでも動作することを確認しています。 ModularAvatar用プレハブでのセットアップはUnity 2022.3.6f1でのみ確認済みです。