Quest 3 + mocopi + Virtual Desktop で仮想 11 点フルボディトラッキングしてみる

トラッカーが 6 個しかない Sony mocopi を、Meta Quest 3 & Virtual Desktop と組み合わせて物理 9 点・仮想 11 点のフルボディトラッキング環境として使用してみる

はじめに

こんにちは、普段は主に cluster で遊んでいるやまちゃんです。

さて突然ですが、みなさんはフルボディトラッキング、いわゆるフルトラやってますか?私は Meta Quest 3 に Sony mocopi の組み合わせでやってます(たまに)。mocopi は SlimeVR モードの追加によって PC VR 使用時の精度が向上したため、こちらを使用しています。

ところで、cluster のフルボディトラッキングの仕様上 6 点を超える点数は肘トラッカーが必須となり、また 6 点フルトラ時でも SlimeVR で腰・両足以外のトラッカーを無効化しないと異常な姿勢となってしまい使い物になりません(これはこれで直してほしい…笑)。

ホントは 6 個あるのに敢えて腰と両足の 3 個だけに絞っている

そこで、Quest 3 で Virtual Desktop を使えばカメラによる姿勢推定で仮想トラッカーを追加できることに着目し、

  • Quest 3 自体のトラッカー(頭・左手・右手の 3 点)

  • mocopi SlimeVR モード(胸・腰・左ひざ・右ひざ・左足・右足の 6 点)

  • Virtual Desktop 仮想トラッカー(左ひじ・右ひじの 2 点)

の構成で 11 点モードでフルボディトラッキングしてみる、というのが本記事の趣旨となります。

本件の検証にあたり、以下の記事を参考にさせていただきました。

必要なもの

  • Virtual Desktop による仮想トラッカーが使用できる VR HMD

    • 本記事では Meta Quest 3 を使用

  • SlimeVR に対応したフルボディトラッカー

    • 本記事では Sony mocopi QM-SS1 を使用

      • 太もも用拡張バンドが必要

  • Virtual Desktop

    • 本記事ではバージョン 1.32.13 を使用

  • Virtual Desktop Body Tracking Configurator

    • 本記事ではバージョン 1.7.1 を使用

実行手順

1. mocopi を SlimeVR モードで使えるようにする

以下のページに従って設定します。
(cluster 用に敢えて SlimeVR でトラッカーを無効化していた場合は、再度有効化しておく必要があります)

データ送信を開始する直前(STEP2. の 6. まで。既に mocopi SlimeVR モード設定済みの場合は送信開始の緑ボタンを押す直前)で止めておきます。

2. Virtual Desktop の仮想トラッカーを肘だけに制限する

以下のツール Virtual Desktop Body Tracking Configurator を使用して、Virtual Desktop による仮想トラッカーを左右の肘(前腕部)だけに制限します。

図のように Left Arm Lower Joint, Right Arm Lower Joint のみにチェックを入れて「Apply Settings (All Pages)」をクリックします。

なお、ツールがやっていることは C:\Program Files (x86)\Steam\config\steamvr.vrsettings に

{
   (snip)
   "driver_VirtualDesktop" : {
      "chest_joint_enabled" : false,
      "hips_joint_enabled" : false,
      "left_arm_upper_joint_enabled" : false,
      "left_foot_transverse_joint_enabled" : false,
      "left_lower_leg_joint_enabled" : false,
      "right_arm_upper_joint_enabled" : false,
      "right_foot_transverse_joint_enabled" : false,
      "right_lower_leg_joint_enabled" : false
   },
   (snip)
}

を追記している…という処理のようなので、JSON が分かる方ならば直接編集してもいいかもしれません。バックアップはお忘れずに。

3. Virtual Desktop の設定をする

Quest 3 で Virtual Desktop を起動し、STREAMING → Advanced Options → Foward tracking data to PC およびその子項目の Emulate SteamVR Vive trackers を有効にします。
(「通信データ量が増えるからボディトラッキングするときだけ有効にしてね!」と警告されますが、まさにその目的なので警告を無視して進めます。仮想 11 点で使わないときは OFF にしておく方がいいのでしょう)

設定項目の場所

有効にすると、すぐ左の VR Bitrate が少し下がります。警告通り、トラッキングデータの送信処理で持って行かれてしまうようです。
(200 → 147 Mbps まで大きく下がるときもあれば、画像のように 200 → 194 Mbps の僅かな減少で済むこともあるし、挙動は少し謎です…)

4. SlimeVR の設定をする

次に SlimeVR の設定をします。

まずは有効化するトラッカーの位置を、mopoci SlimeVR モードの位置と揃えます。
設定 → 一般 → SteamVR で、胸・腰・Left knee・Right knee・Left foot・Right foot のみが有効になっていれば OK です。

有効化するトラッカーの選択

ここで、Quest 3 で Virtual Desktop を起動して SteamVR を起動し、さらに HMD を被ったまま PC デスクトップ表示に切り替えます(左手コントローラのメニューボタン長押し → Switch to Desktop)。
頭・両手の物理トラッカーと、両ひじの仮想トラッカーの情報が PC に送られ始めます(SlimeVR の ホーム で確認可能)。
更に、mocopi のデータ送信を開始します(スマホアプリの、緑の丸いボタンを押します)。

ここまできたら、SlimeVR の ホーム の表示が以下のようになっているはずです。2 つの vive_tracker と表示されているのが Virtual Desktop による仮想肘トラッカーですね。

無事 11 個のトラッカーが表示された

仮想肘トラッカーが認識されていることが確認出来たら、トラッカー割り当て で左前腕と右前腕に 2 つの vive_tracker のうちいずれかを割り当てます。割り当て画面の表示で、左ひじだけ動かした時に光った方が左…といった感じで区別してください。

トラッカーの割り当て画面。
中央のキャラクターの前後の向きが正しくない(「左前腕」が右腕にあったりする)ので注意。
文字表記の方が正しい。
11 点全て認識されると、図内赤い丸で示した箇所が黒丸に変わる。

ここまで出来たら、あとは通常通りマウントキャリブレーション、更に cluster 等のアプリケーション内でキャリブレーションすると 11 点フルボディトラッキングが使用できます。

cluster で、11 点全身トラッキングとして認識されている
もちろん VRChat でも認識されている

Twitter の転載ですが、動画だとこんな感じになります。

まとめ

というわけで、Quest 3 と mocopi と Virtual Desktop の組み合わせで仮想 11 点フルボディトラッキングを実現できました。
ただ、6 点の時よりもドリフトが起きやすかったり、手足の動きがかえって不自然になるケースがあったりするなど、接続が大変な割に実用性は何とも言えない感じです。さらなる改良に期待ですね。
「こうやったら改善するよ!」といったご指摘もお待ちしております。

ちなみに、肘のトラッカー=肘の回転角度を取得できるトラッカー、なので前腕部でいいんですよね?上腕部だと肘の回転が反映されないし。
ご存じの方がいらっしゃったら教えていただけると幸いです…。


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