WindowsMRでViveTrackerを使いたい
現在Windows10ではWindowsMRがSteamVRとして動作するようになっています。
WindowsMR for SteamVRを起動するとSteamVRのダイアログが起動しWindowsMRのHMDを認識すると
こんな感じでWindowsMRがSteamVR上で動くようになります。
Unityで開発する場合SteamVR SDKを入れて普通にSteamVRとして開発出来るようになります。
以前、UnityでViveやWindowsMRのモーションコントローラーの入力を統合する方法
という記事を書きましたがInput周りを考えるとこちらの方が色々とスムーズに連携出来ます。
ここまで動いたらViveTrackerとかViveWand(Viveコントローラー)とか使えないかなとか思う人も中には居るでしょう。
特に6DoFが使えるまともで購入しやすいTrackerとなると今の所ViveTrackerぐらいしか選択肢がありません。
Vive機器を認識させる
試しにベースステーションを設置してViveTrackerを繋いでWindowsMR for SteamVRを起動したのですが当然認識しませんでした。
[【Unity】ViveのHMDなしにTrackerを使う]
(http://shop-0761.hatenablog.com/entry/2018/01/08/034418)
[HMDなしのSteamVRトラッキング]
(http://help.triadsemi.com/steamvr-tracking/steamvr-tracking-without-an-hmd)
上記の記事ではSteamVRのベータ版を使うとありますが流石に仕事で使っている環境にSteamVRのベータ版を入れる気持ちは起きません。
今回はHMD無しという訳ではなく、WindowsMRを使うので少し事情が異なります。
どうにかならないかなと思ったらありました。
https://www.reddit.com/r/Vive/comments/86ri8w/vive_controllers_work_with_the_odyssey/
方法は凄く簡単で
C:\Program Files (x86)\Steam\config\steamvr.vrsettings
に以下の設定を追加するだけです。
"steamvr" : {
"activateMultipleDrivers" : true,
activateMultipleDriversをtrueにしてSteamVRとか諸々を再起動して下さい。
ViveTrackerのペアリングなどは先に済ませて置くことを推奨します。
以下の様にベースステーションと共にViveTrackerが認識されるようになります。
まだUnity上では確認していませんが多分普通に動作するでしょう。多分。
実際に確認してみた所Trackerが無事表示されましたが、カメラの位置が3mとかになります。Trackerの位置が1.9mとかになっているので、どうもベースステーションからの位置とWinMRで認識している世界の位置が合ってない感じがしてます。