Try   HackMD

令和最新版 Indexコンを履く

Image Not Showing Possible Reasons
  • The image was uploaded to a note which you don't have access to
  • The note which the image was originally uploaded to has been deleted
Learn More →

もう令和も6年ですが、Indexコンって履けるんです


昔はValve Indexフルキットを使っていたが、最近はもっぱらQuest Proで遊んでいる

HMDとコントローラー2つが余っているということは3+2点トラッキングでフルトラっぽくできるのでは?という日記

古いVive コントローラーをトラッカーとして使うこととほぼ同じだが、Knucklesでやっている記事がなかったので書いておく。

出来ること

両足のトラッキング もどき

Image Not Showing Possible Reasons
  • The image was uploaded to a note which you don't have access to
  • The note which the image was originally uploaded to has been deleted
Learn More →

なんだこのポーズ

良いところ

  • 余ってれば無料で足を動かす感じを試せる
  • 1時間くらいで出来る
  • ベルトとか要らない

あるいはすでにn点トラッキングしていて、ここに追加したらどんな感じになるだろうというのを試すのにも使えるかもしれませんね

悪いところ

  • めんどい
  • 間違えたらIndex, Knucklesが壊れる
  • 専用のトラッカーとベルトよりはずれるので常用するのは厳しい
  • 腰トラッキングがないのでフルトラではない

使ったもの1

  • Valve Index HMD
    • ドングルとして使用
  • Knuckles (Indexコントローラー) Left, Right
  • Base Station 2.0

使ったもの2

  • Quest Pro
    • Steam Link
    • たぶんVirtual Desktopでも出来ると思うけど試してない
  • SteamVR
    • OpenVR-SpaceCalibrator

やりかた

やるならよく読んで何をしているのか理解してからやらないと壊れますよ

準備

まず普通にIndexが動くことを確認する。ベースステーション設置して普通に繋いで、ルームセットアップを完了する。

Knucklesのトラッカー化

2018年のViveコントローラーをトラッカー化するのとほぼ同じ

Steam VRのインストール先 (通常C:\Program Files (x86)\Steam\steamapps\common\SteamVR) から tools\lighthouse\bin\win64 と辿って lighthouse_console.exe までたどり着く。これを使ってコントローラーのconfigを書き換える

configを操作するときはPCから全てのlighthouseデバイス(HMD, VR コントローラー, トラッカー)を外して、操作したいものだけを繋いだ状態で起動すること

(一敗)(Index HMDにコントローラーのconfigを書き込んで死亡)(直し方

まず何も繋げていない状態で

./lighthouse_console.exe deviceinfo

をして何も繋がっていないことを確認する

PS C:\Program Files (x86)\Steam\steamapps\common\SteamVR\tools\lighthouse\bin\win64> ./lighthouse_console.exe deviceinfo

Version:  lighthouse_console.exe (buildbot_vortex-windows_steamvr_rel_win64@vortex-windows)  08927682
Attached lighthouse receiver devices: 0
No connected lighthouse device found.

HMDが繋がっていると以下のようになる

PS C:\Program Files (x86)\Steam\steamapps\common\SteamVR\tools\lighthouse\bin\win64> ./lighthouse_console.exe deviceinfo

Version:  lighthouse_console.exe (buildbot_vortex-windows_steamvr_rel_win64@vortex-windows)  08927682
Attached lighthouse receiver devices: 5

        LHR-ADCDBD99
        8421EBB0F1-LYM
        05248CC5E7-RYB
lighthouse_console: Connected to receiver LHR-ADCDBD99
Attempting HID Open IMU: LHR-ADCDBD99
Lighthouse IMU HID opened
LHR-ADCDBD99: Firmware Version 1623823641 WMBUILD-W64$@wmbuild-w64 2021-06-16 FPGA 538(2.26/9/2) BL 1555018800
LHR-ADCDBD99: Successfully fetched gyro/accelerometer range modes from the device. GyroRangeMode:1 AccelRangeMode:1
Attempting HID Open Optical: LHR-ADCDBD99
Lighthouse Optical HID opened
Attempting HID Open VrController: LHR-ADCDBD99
Lighthouse VrController HID opened
LHR-ADCDBD99: Read config of 3099 bytes from [vid:28de, pid:2300] (LHR-ADCDBD99) and inflated to 9727 bytes
LHR-ADCDBD99: Read config of 3099 bytes from [vid:28de, pid:2300] (LHR-ADCDBD99) and inflated to 9727 bytes
DEVICEINFO serial=LHR-ADCDBD99 device_class=hmd

コントローラーが1つ繋がっていると以下のようになる

PS C:\Program Files (x86)\Steam\steamapps\common\SteamVR\tools\lighthouse\bin\win64> ./lighthouse_console.exe deviceinfo

Version:  lighthouse_console.exe (buildbot_vortex-windows_steamvr_rel_win64@vortex-windows)  08927682
Attached lighthouse receiver devices: 3
        LHR-76807ABE
lighthouse_console: Connected to receiver LHR-76807ABE
Attempting HID Open IMU: LHR-76807ABE
Lighthouse IMU HID opened
LHR-76807ABE: Firmware Version 1693638519 WMBUILD-W64$@wmbuild-w64 2023-09-02 FPGA 538(2.26/10/2) BL 1546408689
UserData Error: Data request is out of range, request starting:0x0, ending:0x18, max address:0x3
LHR-76807ABE: Successfully fetched gyro/accelerometer range modes from the device. GyroRangeMode:3 AccelRangeMode:2
Attempting HID Open Optical: LHR-76807ABE
Lighthouse Optical HID opened
Attempting HID Open VrController: LHR-76807ABE
Lighthouse VrController HID opened
LHR-76807ABE: Read config of 1698 bytes from [vid:28de, pid:2300] (LHR-76807ABE) and inflated to 4168 bytes
LHR-76807ABE: Read config of 1698 bytes from [vid:28de, pid:2300] (LHR-76807ABE) and inflated to 4168 bytes
DEVICEINFO serial=LHR-76807ABE device_class=controller

HMDとコントローラー1つが繋がっていると以下のようになる
この状態で作業してはいけない

PS C:\Program Files (x86)\Steam\steamapps\common\SteamVR\tools\lighthouse\bin\win64> ./lighthouse_console.exe deviceinfo

Version:  lighthouse_console.exe (buildbot_vortex-windows_steamvr_rel_win64@vortex-windows)  08927682
Attached lighthouse receiver devices: 8

        LHR-ADCDBD99
        LHR-76807ABE
        8421EBB0F1-LYM
        05248CC5E7-RYB
lighthouse_console: Connected to receiver LHR-76807ABE
Attempting HID Open IMU: LHR-76807ABE
Lighthouse IMU HID opened
LHR-76807ABE: Firmware Version 1693638519 WMBUILD-W64$@wmbuild-w64 2023-09-02 FPGA 538(2.26/10/2) BL 1546408689
UserData Error: Data request is out of range, request starting:0x0, ending:0x18, max address:0x3
LHR-76807ABE: Successfully fetched gyro/accelerometer range modes from the device. GyroRangeMode:3 AccelRangeMode:2
Attempting HID Open Optical: LHR-76807ABE
Lighthouse Optical HID opened
Attempting HID Open VrController: LHR-76807ABE
Lighthouse VrController HID opened
LHR-76807ABE: Read config of 1698 bytes from [vid:28de, pid:2300] (LHR-76807ABE) and inflated to 4168 bytes
LHR-ADCDBD99: Read config of 3099 bytes from [vid:28de, pid:2300] (LHR-ADCDBD99) and inflated to 9727 bytes
DEVICEINFO serial=LHR-ADCDBD99 device_class=hmd
LHR-76807ABE: Read config of 1698 bytes from [vid:28de, pid:2300] (LHR-76807ABE) and inflated to 4168 bytes
DEVICEINFO serial=LHR-76807ABE device_class=controller

確実にコントローラー1つだけが繋がっていることを確認したら作業を開始する

1. ダウンロード

./lighthouse_console.exe donloadconfig

で今のconfigをPCに保存する。

PS C:\Program Files (x86)\Steam\steamapps\common\SteamVR\tools\lighthouse\bin\win64> ./lighthouse_console.exe downloadconfig
Version:  lighthouse_console.exe (buildbot_vortex-windows_steamvr_rel_win64@vortex-windows)  08927682
Attached lighthouse receiver devices: 3
        LHR-76807ABE
lighthouse_console: Connected to receiver LHR-76807ABE
Attempting HID Open IMU: LHR-76807ABE
Lighthouse IMU HID opened
LHR-76807ABE: Firmware Version 1693638519 WMBUILD-W64$@wmbuild-w64 2023-09-02 FPGA 538(2.26/10/2) BL 1546408689
UserData Error: Data request is out of range, request starting:0x0, ending:0x18, max address:0x3
LHR-76807ABE: Successfully fetched gyro/accelerometer range modes from the device. GyroRangeMode:3 AccelRangeMode:2
Attempting HID Open Optical: LHR-76807ABE
Lighthouse Optical HID opened
Attempting HID Open VrController: LHR-76807ABE
Lighthouse VrController HID opened
LHR-76807ABE: Read config of 1698 bytes from [vid:28de, pid:2300] (LHR-76807ABE) and inflated to 4168 bytes
LHR-76807ABE: Read config of 1698 bytes from [vid:28de, pid:2300] (LHR-76807ABE) and inflated to 4168 bytes
Wrote 4168 bytes to LHR-76807ABE.json

LHR-76807ABE.json というファイルが作成された。configはデバイスごとに値が異なるので共有はできないらしい。

これをコピーしてバックアップとしてを保存しておく

2. 編集

configをvscodeなどで開き、以下の3点を書き換えて保存する

  • "device_class": "controller"
    "device_class": "generic_tracker"
  • "model_number": "Knuckles Left" (またはKnuckles Right)を
    "model_number": "Vive Tracker PVT"
  • "tracked_controller_role": "left_hand" (またはright_hand)を
    "tracked_controller_role": ""

記事によっては"render_model", "revision"などを書き換えている場合もあるが、触らなくていい

このとき、ファイル名と"model_number"を見てどの型番が左か右かメモしておくと良い

3. アップロード

./lighthouse_console.exe uploadconfig ファイル名
PS C:\Program Files (x86)\Steam\steamapps\common\SteamVR\tools\lighthouse\bin\win64> ./lighthouse_console.exe uploadconfig .\LHR-76807ABE.json

Version:  lighthouse_console.exe (buildbot_vortex-windows_steamvr_rel_win64@vortex-windows)  08927682
Attached lighthouse receiver devices: 3
        LHR-76807ABE
lighthouse_console: Connected to receiver LHR-76807ABE
Attempting HID Open IMU: LHR-76807ABE
Lighthouse IMU HID opened
LHR-76807ABE: Firmware Version 1693638519 WMBUILD-W64$@wmbuild-w64 2023-09-02 FPGA 538(2.26/10/2) BL 1546408689
UserData Error: Data request is out of range, request starting:0x0, ending:0x18, max address:0x3
LHR-76807ABE: Successfully fetched gyro/accelerometer range modes from the device. GyroRangeMode:3 AccelRangeMode:2
Attempting HID Open Optical: LHR-76807ABE
Lighthouse Optical HID opened
Attempting HID Open VrController: LHR-76807ABE
Lighthouse VrController HID opened
LHR-76807ABE: Read config of 1698 bytes from [vid:28de, pid:2300] (LHR-76807ABE) and inflated to 4168 bytes
Compressed config size is 1722
LHR-76807ABE: Triggered keepalive (succeeded)
LHR-76807ABE: Packet received after 0.049s, keepalive (0/1)
Wrote the contents of .\LHR-76807ABE.json as the config on the device

特に問題はないはず

この時点で./lighthouse_console.exe deviceinfoするとgeneric_trackerになっていることが確認できるはず。

これを左右分行う

OpenVR-SpaceCalibrator を入れる

Quest世界のトラッキング位置とLighthouse世界のトラッキング位置を同期するためのソフトウェア

https://github.com/pushrax/OpenVR-SpaceCalibrator

releasesから最新版のインストーラーをダウンロードして適当にインストールしておく

正常にインストールされるとSteamVRのアドオンに01spacecalibratorが追加される

image

SteamVRで確認する

ベースステーションの電源を入れて、Index HMDをPCに接続する。これ以降Index HMDはドングルとして使うので、HMDとして映像出力されないように、USBと電源のみ接続する

デバイス(今回はQuest ProのSteam Link)からSteamVRに接続し、Knuckles の電源ボタンを押すとトラッカーとして認識される

私が試した限りでは電源をいれる順番はシビアではなく、Steam Linkで繋いでからでも、最終的にDPケーブルが繋がっていないIndexとベースステーションとKnuckles 全部に電源を入れれば問題なく繋がった。

2024-07-01_16-47-03_vrmonitor

トラッカーと化したKnucklesは両方とも左手のモデルとして表示される
キャリブレーションするまではぜんぜん別の場所にあって見えないかも

image

SpaceCalibrator でキャリブレーション

ここから先はQuest系 (VD, Steam Link) + SteamVRでLighthouseトラッカーを使う一般的な話と同じなので特に読まなくていいです

SteamVRのアプリ欄に

Image Not Showing Possible Reasons
  • The image was uploaded to a note which you don't have access to
  • The note which the image was originally uploaded to has been deleted
Learn More →
SpaceCalibrator があるはずなので開くと画面が出る

2024-07-01_17-17-04_OpenVR-SpaceCalibrator

ここで左手と左手、まあ別に組み合わせはどうでもいいんですが、とにかく同じ手に2つのコントローラーを持って、持ったコントローラーを選択して、Start Calibrationを押して∞の字にぐるぐる回すやつをやる

Knuckles の型番を覚えておくのはこのためだったんですね

1319d7c4fdfe42f4bbd88f0ee44be2e9

ここでは左手と左手で行った

キャリブレーションはトラッカーごとではなく、起動ごと(あるいはずれてるなと思ったとき)に一回するだけで良い。トラッカー自体のキャリブレーションをしているわけではなく、QuestとLighthouseの空間をあわせているだけだから

履く

右手を左足に装着するのがミソ

君は弧の部分を外側にして履いてもよい

ゲームで使う

ここからは本物のトラッカーを使うときと特に変わらないので更に読まなくていい

VRChatの場合はトラッカーがあると立位座位ボタンがキャリブレーションボタンになるので、それを押すとキャリブレーションに入り、トラッカーが見えるようになる

設定からキャリブレーションミラーをオンにしておくと良い。あとモデルをシステムにしておくとどれがKnuckles かわかりやすいかもしれない

7ccb311be98f4b64af74423598b5c332

ゲーム的にはどれが何とか気にしてないので、場所に近いトラッカーがその場所のトラッカーとして使われる。どこに使われる予定かは水色の線で見える。

おわり

ずれるので使いづらいぞ

参考資料

おまけ: 誤って意図しない機器のconfigを上書きしてしまったら

つまりコントローラーに繋いでいるつもりでHMDにアップロードして終わった場合

C:\Program Files (x86)\Steam\config\lighthouse

に初回接続時に保存されたconfigがあるはずなので、それをアップロードする

助かりました