VirtualTracker: VD フルボディトラッキング向けの、設定を壊さない配置ツール
VirtualTracker は Quest + Virtual Desktop でストリーミングして VRChat のフルボディトラッキングを遊ぶための設定ツール一式だ。これまで VD の body-tracking をいじる小物ツールは、基本的に勢いのまま SteamVR に設定を書き込むだけで、壊れたら軽くてもトラッキングポイントが飛び回り、重ければ自分で手動で steamvr.vrsettings を直す羽目になった。このプロジェクトの発想は、まず見る、まずバックアップする、それから手を入れる。ギャンブル的な設定変更を、プレビューできてロールバックできる操作に置き換える。
今出しているのは Phase 1、名前は VT Configurator、バージョン 0.1.1。スコープはかなり抑えていて、自分のマシン上で自分の tracker 設定を読み書きするだけ。ベンダーのバイナリには触れず、patch も crack もしない。ただの、より安全な配置ツールで、昔の勢いで書き込む古いツールを置き換える。
コアは一塊の C++ で、外側に CLI をかぶせ、さらに Dear ImGui のデスクトップ UI を足している。まず %LOCALAPPDATA%\openvr\openvrpaths.vrpath から SteamVR のパスを探し、steamvr.vrsettings と VD の OpenVR ドライバリソースを読み、VRChat フルボディトラッキング向けの source-role 一覧を組み立ててプレビューさせ、適用するかどうか決めさせる。書き戻すのは driver_VirtualDesktop と trackers の二つのブロックだけで、認識できない section や key はそのまま残す。組み込みでいくつかのプロファイルを持っている。VT-VD-UpperBody、VT-VD-RealLowerBody、VT-VD-FullBodyDefault、それにエミュレート tracker を切るための専用の VT-VD-DisableEmulatedTrackers。
.\vt.exe inspect --json
.\vt.exe profile --list
.\vt.exe profile VT-VD-UpperBody
出力はデフォルトでマスクされ、ローカルの絶対パスと tracker のシリアル番号は --raw を付けないと吐かない。うっかりスクショを撮ってマシン情報を持ち出さないためだ。本当の重点はユーザーを壊さないこと。すべての書き込み操作は src/vt/config_plan.cpp の一つの口を通り、各プレビューには base_hash が付く。プレビュー後にファイルが別の何かに変更されていれば期限切れとみなし、デフォルトで書き込みを止める。vrserver.exe がまだ動いている、つまり SteamVR が開いているときはデフォルトで書き込ませず、明示的に force しない限り書けない。適用前にまずバックアップし、復元前にも復元前セーフティバックアップを作る。復元時には .vtmeta の schema バージョン、型、成功ステータスを検証し、パスと内容の hash が合わなければ受け付けない。GUI のダイアログは UI 層の注意喚起にすぎず、最後の一線は core の中にある。あと、SteamVR で見える仮想デバイスの数は、保存した body のバインディングとは別物だ。バインディングより多く見えるのは正常。
0.1.1 ではリアルタイムの SteamVR デバイス列挙はやらず、Quest/OpenXR のスケルトンも取らず、リアルタイムのポーズフュージョン、キャリブレーション、フィルタリングもなく、OpenVR 出力も VRChat OSC もない。これらは Phase 2 の VT Fusion に回すが、そのステップは Phase 1 で磨いた発見、profile、バックアップ、診断という土台を再利用し、一から作り直したりはしない。ビルドには VS 2026 付属の CMake と C++20 が要る。今のところオープンソースライセンスは決めておらず、まずは all-rights-reserved にしている。