見出し画像

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でも同じようなことができます。気になる実際の動きに関してはこの記事の後ろにXのリンクがあるのでそちらを確認してください。

「SlimeVRいらなくね?Haritora Configuratorで胸と腰をオフればいいじゃん」という人は実際に試すとわかりますが、単にConfiguratorで不要なトラッカーをオフにしただけでは背骨が2本あるような動きになり、不自然ですし、相変わらずトラッカーを6点付ける必要がありイマイチです。

それでは説明していきます。細かい部分は省略していますので、自力で頑張ってください。


Virtual Desktopでできるようになったこと

  • コントローラー置き換えによる指トラ

  • 仮想Viveトラッカーによる肘トラ

  • 仮想Viveトラッカーによる、胸、腰トラ

特に胸、腰トラはフルトラのズレに大きく影響してきます。以前まではHaritoraX Wirelessで胸、腰をトラッキングしていましたが、IMU方式の宿命で椅子に座る動作が苦手で大きくずれが発生していました。ここを今回追加された仮想 胸、腰トラで置き換えることでズレやドリフトを大幅に抑えたフルトラを実現します。

ちなみにこの仮想Viveトラッカー機能はQuestシリーズすべてで可能です。ただし精度が異なります。残念ながらPico4は現状できません。
Quest 3 → HMD下のカメラからの実際の上半身を見て推定(精度:高)
Quest 2,初代 → コントローラ位置からの上半身の位置を計算で推定(精度:低)
Quest Pro → コントローラ位置から上半身の位置を計算で推定、ただしコントローラの位置精度が高い(精度:中)

導入方法


準備として、Virtual Desktop ベータを導入します。ベータ版はVirtual Desktopの公式HPからDiscordに参加すると入手できます(https://www.vrdesktop.net/)
追記:正式版がリリースされました「QuestのVirtualDesktop」と「PCのVirtual Desktop Stremer」をアップデートしてください。導入方法はミスターの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にすることもできます。


肘、胸、腰のみONはSteamVRを閉じた状態で赤丸2箇所を押すだけ



もしcp932のエラーが出る場合は
”コントロールパネル>時計と地域>地域>管理>システム ロケールの変更”から
これやるといいらしい(未確認)

追記: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 Wirelessを接続し動作させている人かUni-motionを動作させている人が対象です。有線ハリトラやBluetoothを用いない専用ドングルではこの方法はできません。
(追記)SlimeToraで専用ドングルのGX6で接続できるようになりました。

(1)SlimeVR-Serverを導入する


SlimeVRを使ってIMU方式のトラッカーをSteamVRのトラッカーに接続します。次からインストールしましょう。
SlimeVR-Server(https://github.com/SlimeVR/SlimeVR-Server)

(2)HaritoraX WirelessをSlimeVRに接続する


HaritoraXは通常付属のソフト(Haritora Configurator)でSteamVRに接続しますが、それを使うと仮想 胸、腰トラを基準としたIKの計算ができません。そのため、付属のソフトではなくSlimeVRにHaritoraの足、膝トラッカーを接続します。SlimeVRServerにHaritoraXを接続するためにSlimeTora(https://github.com/OCSYT/SlimeTora/releases)を使用します。
"SlimeTora-win32-x64.zip"をダウンロード・解凍して、フォルダ内の"SlimeTora.exe"を起動します。

(2024/04/20)追記
SlimeToraがリニューアルして地磁気やBT接続だけでなくGX6/2接続にも対応して最強になりました。地磁気を使う"モード1"を試しましたが足の滑りが激減していました。やったね!

SlimeToraの設定は自分の環境に合わせて適宜調整してください


(24/04/04)haritorax-slimevr-bridgeを使う方法は非推奨です。SlimeToraの方が簡単です。

接続にはsim1222氏が作成したharitorax-slimevr-bridge(https://github.com/sim1222/haritorax-slimevr-bridge)を使用します。こちらはRustという言語で書かれていますのでRust(https://www.rust-lang.org/ja)もインストールしてください。
ダウンロードしたフォルダ内でコマンドプロンプトを起動して「cargo run」と入力するとソフトのビルドが始まり起動します。一度ビルドが成功すれば2回目からは"haritorax-slimevr-bridge-master\target\debug\slimevr-proto-test.exe"を起動すればOKです。

ちなみにUni-motionでもUniSlime(https://help.uni-motion.com/ja/slimevr)でSlimeVRに接続できるらしい…私は持ってないので誰か試して


(3)HaritoraのトラッカーをSlimeVRに割り当てる


SteamVRでSlimeVR用のアドオンが導入されているので、Onにしましょう。次にHaritoraの足、膝の4つのトラッカーを起動したのち、SlimeToraで"接続"を押しSlimeVRに接続します。その後、トラッカー割り当てから仮想トラッカーとharitoraをよく確認して、適切な部位にトラッカーを割り当ててください。

トラッカーを起動させて”接続”を押す
図のようにトラッカーを割り当てる
トラッカーの割当がうまくいくとこんな感じ、
トラッカーがあまる場合もあるけど最低これだけあればOK

(4)SlimeVRのトラッカー設定をする


SlimeVRのトラッカーからSteamVRで使用するトラッカーを選択します。今回は足、膝のみ選択します。(SlimeToraでは膝が完全に追従しないため膝off推奨されていますが、そこそこ追従するので膝onでいいと思います。)

足、膝のみONにする

(5)キャリブレーションをして試す!!


まずは、立った状態でQuestのミニメニュー画面を開いて閉じましょう。これにより、正しいヘッドセットの高さが認識されます。(座り状態でQuestのミニメニューを開いてしまうと高さがおかしくなるのでミニメニューを開くときは立って行ってください)その後SlimeVRでマウントキャリブレーションから自動マウントをしましょう。そして、VRChatでもキャリブレーションをしましょう!キャリブレーションの球がズレている場合はSlimeVRのボディプロポーションで調整できます。動作確認をしてみましょう!Viveトラッカーレベルとは行きませんが、座りでもズレの少ないトラッキングができました!やったね!

フルトラ楽しいね

(おまけ1)SlimeVRのキャリブレーションをコントローラーからできるようにする


SlimeVRのキャリブレーションをコントローラーからできるようにしておきましょう!座った状態でもキャリブレーションできて便利です!
参考(https://docs.slimevr.dev/server/setting-reset-bindings.html)

(おまけ2)2回目以降のやり方は?

私の場合は

  1. ハリトラワイヤレスをON

  2. SlimeVR-Serverを起動

  3. SlimeToraを起動、接続する

  4. SteamVRを起動

  5. Questのメニューを開いて閉じる

  6. SlimeVR-Serverの自動マウントを実施

  7. VRChatでキャリブレーション

    でやっています。これ以外でも上手く行くかもしれません。

(おまけ3)動作させている動画


このフルトラ方式で動作させている動画を撮影しました。HMDはQuest3を使用しています。大きな破綻なく動作していることがわかるかと思います。
分かりづらいですが、特に座り時のズレのなさが特徴的だと思います。
ただし、仮想腰トラを基準に足の位置を計算しているため、足の滑りが発生しています。これは原理上仕方ないので、滑りが嫌な方は従来方式を使うか腰は物理トラッカーを使用してください。

おわり


だいぶ省略しましたが、Virtual Desktop(Quest) + HaritoraX Wireless(足、膝のみ)+SlimeVRでのフルトラの方法を紹介させてもらいました。トラッカーが少なく、そこそこ精度のよいフルトラができるようになりました!まぁこんなめんどい設定するならViveトラッカー使った方がいいですけどねw。


この記事が気に入ったらサポートをしてみませんか?