Virtual Desktop(Quest) + HaritoraX Wireless(足、膝のみ)+SlimeVRで快適11点フルトラになる
皆さんどうもごきげんよう、お久しぶりです、シェルベージュです♪
先日 Virtual Desktopに待望のIOBT(上半身トラッキング)機能が搭載されました。これにより、いままでHaritoraXやUni-motionに代表されるIMU方式によるフルトラのズレがかなり抑えられるようになりました!今回はその設定方法を紹介しようと思います。
(この方法は非公式の方法です。この方法によって発生したいかなる損害も保証しません。自己責任で実施してください)
これはなんの記事
Virtual Desktop(Quest) + HaritoraX Wireless(4点:足、膝のみ)+SlimeVRを使って11点フルトラする方法の紹介です。メリットは「Haritoraが4つだけ」「仮想胸、腰を基準とした足、膝トラで座りの精度が上がる」ことです。ちなみにHaritoraXだけでなくUni-motionでも同じようなことができます。ついでに先日のアップデートで有線Haritoraでもできるようになりました。気になる実際の動きに関してはこの記事の後ろにXのリンクがあるのでそちらを確認してください。
「SlimeVRいらなくね?Haritora Configuratorで胸と腰をオフればいいじゃん」という人は実際に試すとわかりますが、単にConfiguratorで不要なトラッカーをオフにしただけでは背骨が2本あるような動きになり、不自然ですし、相変わらずトラッカーを6点付ける必要がありイマイチです。
それでは説明していきます。細かい部分は省略していますので、自力で頑張ってください。
Virtual Desktopでできるようになったこと
コントローラー置き換えによる指トラ
仮想Viveトラッカーによる肘トラ
仮想Viveトラッカーによる、胸、腰トラ
AI推定による下半身トラッカー(おまけ程度で実際には使い物にならない)
特に胸、腰トラはフルトラのズレに大きく影響してきます。以前まではHaritoraX Wirelessで胸、腰をトラッキングしていましたが、IMU方式の宿命で椅子に座る動作が苦手で大きくずれが発生していました。ここを今回追加された仮想 胸、腰トラで置き換えることでズレやドリフトを大幅に抑えたフルトラを実現します。
ちなみにこの仮想Viveトラッカー機能はQuestシリーズすべてで可能です。ただし精度が異なります。(残念ながらPico4は現状できません、というかこんな面倒なことするよりPico motion Trackerをさっさと購入してください。)
Quest 3 → HMD下のカメラからの実際の上半身を見て推定(精度:高)
Quest 2,初代 → コントローラ位置からの上半身の位置を計算で推定(精度:低)
Quest Pro → コントローラ位置から上半身の位置を計算で推定、ただしコントローラの位置精度が高い(精度:中)
(ちなみにQuest3の上半身トラッキングは肘と胸が実際の位置を見ており、腰の位置はそれらのデータからの推定になります)
導入方法
導入方法はミスターのXの投稿を参照してください。
Virtual Desktopの仮想トラッカーのOn/Offの仕方
肘、胸、腰のみトラッカーをOnにします。仮想トラッカーのon/offは有志が作成したVirtual_Desktop_Body_Tracking_Configurator
(https://github.com/DenTechs/Virtual_Desktop_Body_Tracking_Configurator/releases)を使うと楽です。ちなみに「Elbows Only」を押すと肘のみONにすることもできます。これ以外にもSteamVRのトラッカー管理より仮想トラッカーを「ハンドヘルド」に設定するとそのトラッカーのみOFFにできます。
追記:Virtual_Desktop_Body_Tracking_Configuratorが使えない場合は"C:\Program Files (x86)\Steam\config\steamvr.vrsettings”に以下を追加してください。下半身のトラッカーがoffになるはずです。追加する前にバックアップを取ってね!(また、終わりに追加する場合は末尾の「,」はいりません)
"driver_VirtualDesktop" : {
"left_foot_transverse_joint_enabled" : false,
"left_lower_leg_joint_enabled" : false,
"right_foot_transverse_joint_enabled" : false,
"right_lower_leg_joint_enabled" : false
},
方法
(0)注意
本方法は既にHaritoraXを接続し動作させている人かUni-motionを動作させている人が対象です。GX2/GX6/有線ハリトラでもできます。
(1)SlimeVR-Serverを導入する
SlimeVRを使ってIMU方式のトラッカーをSteamVRのトラッカーに接続します。次からインストールしましょう。
SlimeVR-Server(https://github.com/SlimeVR/SlimeVR-Server)
(2)HaritoraX をSlimeVRに接続する
HaritoraXは通常付属のソフト(Haritora Configurator)でSteamVRに接続しますが、それを使うと仮想 胸、腰トラを基準としたIKの計算ができません。そのため、付属のソフトではなくSlimeVRにHaritoraの足、膝トラッカーを接続します。SlimeVRServerにHaritoraXを接続するためにSlimeTora(https://github.com/OCSYT/SlimeTora/releases)を使用します。
"SlimeTora-win32-x64.zip"をダウンロード・解凍して、フォルダ内の"SlimeTora.exe"を起動します。特に不具合がなければ最新版推奨です。
ちなみにUni-motionでもUniSlime(https://help.uni-motion.com/ja/slimevr)という同じような機能のソフトでSlimeVRに接続できるらしい…私は持ってないので試してないですができるらしい
(3)HaritoraのトラッカーをSlimeVRに割り当てる
SteamVRでSlimeVR用のアドオンが導入されているので、Onにしましょう。次にHaritoraの足、膝の4つのトラッカーを起動したのち、SlimeToraで"接続"を押しSlimeVRに接続します。その後、トラッカー割り当てから仮想トラッカーとharitoraをよく確認して、適切な部位にトラッカーを割り当ててください。
(4)SlimeVRのトラッカー設定をする
SlimeVRのトラッカーからSteamVRで使用するトラッカーを選択します。今回は足、膝のみ選択します。(SlimeToraでは膝が完全に追従しないため膝off推奨されていますが、そこそこ追従するので膝onでいいと思います。)
(5)キャリブレーションをして試す!!
まずは、立った状態でQuestのミニメニュー画面を開いて閉じましょう。これにより、正しいヘッドセットの高さが認識されます。(座り状態でQuestのミニメニューを開いてしまうと高さがおかしくなるのでミニメニューを開くときは立って行ってください)その後SlimeVRでマウントキャリブレーションから自動マウントをしましょう。そして、VRChatでもキャリブレーションをしましょう!キャリブレーションの球がズレている場合はSlimeVRのボディプロポーションで調整できます。動作確認をしてみましょう!Viveトラッカーレベルとは行きませんが、座りでもズレの少ないトラッキングができました!やったね!
(おまけ1)SlimeVRのキャリブレーションをコントローラーからできるようにする
SlimeVRのキャリブレーションをコントローラーからできるようにしておきましょう!座った状態でもキャリブレーションできて便利です!
参考(https://docs.slimevr.dev/server/setting-reset-bindings.html)
私は以下の設定にしています。
左手のYボタン2回押し→ヨーリセット
右手のBボタン2回押し→リセット
(おまけ2)2回目以降のやり方は?
私の場合は
ハリトラワイヤレスをON
SlimeVR-Serverを起動
SlimeToraを起動、接続する
SteamVRを起動
Questのメニューを開いて閉じる
SlimeVR-Serverの自動マウントを実施
VRChatでキャリブレーション
でやっています。これ以外でも上手く行くかもしれません。
(おまけ3)ハリトラがSlimeToraに繋がらない
SlimeToraは現在開発中のため、ハリトラがうまく繋がらないことがあります。そのときは、SlimeToraの接続ボタンを押す前にHaritora Configuratorを起動させて、対象のトラッカーがHaritora ConfiguratorからFindできていることを確認してください。その後、SlimeToraの接続ボタンを押すと成功確率があがります。SlimeToraでの接続が成功したらHaritora Configuratorは閉じてください。また、トラッカーは1秒ごとにゆっくり点滅する状態からでないとSlimeToraに接続できません。トラッカーがゆっくり点滅以外の場合は、SlimeTora、HaritoraConfigurator、トラッカーを一度再起動させてください。
(おまけ4)動作させている動画
このフルトラ方式で動作させている動画を撮影しました。HMDはQuest3を使用しています。大きな破綻なく動作していることがわかるかと思います。
分かりづらいですが、特に座り時のズレのなさが特徴的だと思います。
ただし、仮想腰トラを基準に足の位置を計算しているため、足の滑りが発生しています。これは原理上仕方ないので、滑りが嫌な方は従来方式を使うか腰は物理トラッカーを使用してください。
おわり
だいぶ省略しましたが、Virtual Desktop(Quest) + HaritoraX Wireless(足、膝のみ)+SlimeVRでのフルトラの方法を紹介させてもらいました。トラッカーが少なく、そこそこ精度のよいフルトラができるようになりました!まぁこんなめんどい設定するならViveトラッカー使った方がいいですけどねw。