2019年3月6日水曜日

Oculus Rift x Vive trackerセットアップガイド(SteamVR Beta 1.3.7対応ver.)

Oculus RiftとVive Trackerを同時に使用したい場合のセットアップガイドです。
本記事はSteamVRのバージョン1.7.15でも動作確認済み。

※1.7より前からアップデートした方は再度最初から設定しなおして下さい。
 1.6.x以前とはプレイエリア周りの処理が変わっているようです。
 Steamのツールファイルの整合性チェック(default.vrsettingが初期化される)と
 2.3項のsteamvr.vrsettingsの中のuseNewChaperoneの行を消し、
 再度設定を行って下さい。


手順通りに設定すれば、Vive trackerを使用できるようになるはずです。


※この方法は正直かなり面倒です。ただ、トラッカーのバッテリーが切れてもプレイエリアが維持されます。

0.前提条件

Oculus Riftのセットアップが済んでおり、SteamVRが起動できること。

1.必要なもの

1.1 ハードウェア(HMDやトラッカーなど)

・Oculus Rift
・ベースステーション(可能なら2.0のほうが良い…なんで単体販売やめてしまったん…)
・Viveトラッカー
・スイッチ付き電源タップ(スイッチは2つ以上あると良い)
・電源タップ(2口以上)


ベースステーションの設置については、こちらのサイトなどを参考に…

HTC Viveが到着するまえに準備しておく事1 ベースステーション設置方法
http://indiegame-japan.com/blog/2016/05/24/post-342/

ベースステーション2.0の場合、
[CEDEC 2018]「Vive Tracker」を使うときの注意点とは?
http://jp.gamesindustry.biz/article/1808/18082402/
ここの「ベースステーション2.0の注意すべき点」も参考になるかと。


1.2 ソフトウェア

・Oculus Software
  Oculus Riftが使えていればOK。

・SteamVR
  Steamで入手したVRゲームが動いていればOK。
  詳しい説明は省きますが、Oculus RiftでSteamVRを使用する場合、
  画像の「Unknown Sources」にチェックを入れておく必要があります。
既にSteamで買ったVRゲームで遊んでいるのであれば問題ないはずです。

・OpenVR Input Emulator
  https://github.com/matzman666/OpenVR-InputEmulator/releases
  こちらのリンクから、「OpenVR-InputEmulator-v1.3.exe」をダウンロード。

・OpenVR Advanced Settings
  https://github.com/OpenVR-Advanced-Settings/OpenVR-AdvancedSettings/releases/tag/v4.0.1
  こちらのリンクから、「AdvancedSettings-4.0.1-Installer.exe」をダウンロード。

・OpenVR-SpaceCalibrator
  https://github.com/pushrax/OpenVR-SpaceCalibrator/releases
  こちらのリンクから、「OpenVR-SpaceCalibrator-0.8.exe」をダウンロード。

2.手順

2.1 ソフトウェアのインストール・準備

Oculus SoftwareとSteamVRについての説明は省きます。
Steamで買ったVRゲームで遊べるようになっていればOK。

まずは、ダウンロードしたソフト、
・OpenVR Input Emulator (OpenVR-InputEmulator-v1.3.exe)
・OpenVR Advanced Settings (AdvancedSettings-4.0.1-Installer.exe)
・OpenVR-SpaceCalibrator (OpenVR-SpaceCalibrator-0.8.exe)
をインストールします。必ずSteamVRインストール後に行うこと。

2.2 SteamVR起動+プレイエリア設定の保存(下準備)

それでは、一度SteamVRを起動します。
まだトラッカーは使いません。電源を入れないでください。

この段階では、Oculus Riftのプレイエリア設定がSteamVRに適用されていると思います。
(SteamVRのウィンドウに「利用可能」と出ていればOK)
※この時点で「利用不可」(ルームセットアップを実行してください。)と出る場合は、
 SteamからSteamVRのファイルの整合性チェックを行ってみてください。
床を見てプレイエリアの範囲を示す四角が表示されていればOK。


2.1で正常に「OpenVR Input Emulator」と「OpenVR Advanced Settings」、「OpenVR-SpaceCalibrator」がインストールされていれば、
メニューが3つ増えているはずです。
「OpenVR-SpaceCalibrator」は「Special」という名前のボタン…ですが押しても何も表示されないようです。


ここでは「ADVANCED SETTINGS」と書かれたボタンを選択します。

続いて、左上の「Chaperone」を選択し…

「New Profile」を選択します。

「Name」の横の四角を選択します。

すると、文字入力画面になります。プロファイルの名前はなんでもいいです。
今回は適当に「oculus」と入れて「Done」をクリック。

「Chaperone Geometry」の左にあるチェックボックスにチェックを入れます。

「OK」をクリック。

これでプレイエリア設定の保存はおしまい。

ここまで済んだら、SteamVRを閉じます。


2.3 SteamVRの設定ファイル書き換え

※書き直しました。default.vrsettings直接編集は推奨されません。
 すでに書き換えてしまった場合は、プロパティから
 ツールファイルの整合性チェック機能を使うことで初期化されます。

steamインストールフォルダ→configフォルダに、「steamvr.vrsettings」というファイルがあります。

注)SteamVRのインストールフォルダではなく、Steamのインストールフォルダです。

これに追記をしていきます。

まずはバックアップしておきましょう。
ドキュメントなど別の場所にコピーするだけ。
どこにバックアップしたか忘れないように!

それでは、「steamvr.vrsettings」をメモ帳などのテキストエディタで開きます。


そうしたら、

   "steamvr" : {

で始まるセクションを探します。(SteamVRを一度でも起動していればあるはず)
そこに下記を追記します。

"activateMultipleDrivers": true,
"useNewChaperone" :  false,

ついでに追記しておくと良い設定をご紹介。

・トラッカー起動時にSteamVRが複数起動しようとするのを防ぐ
"autoLaunchSteamVROnButtonPress" : false,


・動きがないトラッカーがスタンバイになるまでの秒数
"turnOffControllersTimeout" : 600.0,
数値を変えることで秒数を変更できます。
0にすると、トラッカーのボタンで電源を切るか、バッテリーが切れるか、SteamVRを落とすまでトラッカーの電源は入ったままとなります。


一例として、こんな感じになります。

   "steamvr" : {
      "activateMultipleDrivers" : true,
      "useNewChaperone" : false,
      "autoLaunchSteamVROnButtonPress" : false,
      "turnOffControllersTimeout" : 600,
      "haveStartedTutorialForNativeChaperoneDriver" : true,
      "installID" : "16949657364801621014",
      "lastVersionNotice" : "1.7.15",
      "lastVersionNoticeDate" : "1567820716",
      "supersampleScale" : 1.5
   },

上の4行が追記したものです。他のは気にしないでOK。
一番下の行以外はカンマ「,」で終わっていることを確認してください。

設定を書き換えたら保存して閉じます。


2.4 SteamVRでの設定

2.4.1 トラッカーのペアリング

ここまでの設定を済ませてあれば、RiftとトラッカーがSteamVRに読み込まれます。

※最初はベースステーションの電源は入れずに作業します

まずは、SteamVRを立ち上げ、Viveトラッカーをペアリングします。
ペアリングの方法はこちらのサイトをご覧ください↓

VIVE トラッカー(2018)のペアリング
https://www.vive.com/jp/support/accessory/category_howto/pairing-vive-tracker.html

トラッカーがペアリングされると、灰色の六角形かトラッカーマーク(点滅)が現れるはずです。
今はトラッカーマーク点滅が表示されると思います。仕様変更で今後また変わるかも。

とりあえず、Oculus RiftとTouchコントローラー、センサー以外に何かトラッカーっぽいものが認識されていればOK。

2.4.2 ベースステーションのチャンネル設定

Oculus RiftとVive trackerを使う場合、トラッカーが最初に見つけるベースステーションは毎回同じである必要があります。

そのため、最初に電源を入れるベースステーションを決めておく必要があります。

一番目に電源を入れるベースステーションを決めてください。
今後、そのベースステーションを(勝手に)「基準ベースステーション」と呼びます。


それでは、ベースステーションの電源をすべて入れます。
チャンネル設定前は、ベースステーションは1つしか認識されないかもしれませんが、問題ありません。同じチャンネルのベースステーションは1つとして認識されてしまいますから。

・ベースステーション1.0の場合
 背面のボタンを押すことで、a→b→c→a…と切り替えられます。
 チャンネルはベースステーションの正面にあるインジケーターに表示されます。
 基準ベースステーションのチャンネルは「b」としてください。
 もう一台は「c」にします。(1台だけの使用なら「b」のみとします)

・ベースステーション2.0の場合
 背面に小さな穴があり、その奥にボタンがあります。
 つまようじなどでそのボタンを押すことで、チャンネルが1→2→3→…
 と切り替わります。(16チャンネルまで?)
 ベースステーション2.0はインジケーターなどがないため、
 ボタンを押してはSteamVRの画面でチャンネルを確認する、
 という手順が必要になります。
 基準ベースステーションのチャンネルは1とします。
 他はチャンネルがかぶらないようにします。


全てのベースステーションが読み込まれればOK。

ここで一度SteamVRを閉じ、ベースステーションの電源をすべて切ります。


2.4.3 プレイエリア設定の読み込み

2.4.2でSteamVRを閉じたところから再開。

再度SteamVRを起動します。

すると、SteamVRは「利用不可」となると思います。
これは、プレイエリアの設定が読み込めていないためです。
床のプレイエリアを示す四角が表示されていない状態になるかと思います。

まずは、2.2で保存したプレイエリア設定を読み込みます。


2.2と同様に「ADVANCED SETTING」を開き、
「Chaperone Profile:」の横の四角をクリック。

2.2で入力したプロファイル名をクリック

隣の「Apply」をクリック

これでOculus使用時のプレイエリアが読み込まれました。
(SteamVR起動するたびにこの作業が必要になります)


2.4.4 トラッカーの位置調整

続いて、トラッカーの位置調整をします。

1.基準ベースステーションの電源を入れます。

2.トラッカーの電源を1つずつ入れます。
 ここで、最初にLEDの色が緑に変わったトラッカーがどれか覚えておきます。
 (SteamVRが最初に認識したトラッカーです)

3.SteamVRで、ベースステーション1つとトラッカー全てが認識されていることを確認します。

4.他のベースステーションの電源を入れます。

5.ベースステーションが全て読み込まれるまで待ちます。

この時点では、トラッカーは現実と全く異なる位置にあるはずです。

ここまで出来たら、デスクトップを表示し、SteamVR起動と同時に立ち上がる
OpenVR-SpaceCalibratorのウィンドウを開きます。
(起動時は最小化されています。)
こんな感じの画面が開きます。

左上の「oculus」からは、右か左のコントローラーを選びます。
(Left ControllerかRight Controllerのどちらか)
右上の「Lighthouse」からは、「Vive Tracker~~」の一番上のものを選択します。
(一番上が最初に認識されたトラッカーです)

そうしたら、選択したコントローラーとトラッカーを一緒に持ちます。

※持ち方の一例
 あくまで一例ですが…

 この持ち方だと、ベースステーション1.0を使用する場合は安定しません。
 コントローラーとトラッカーの間に大き目の厚紙を入れるなど、
 赤外線の干渉対策をしてください。
 (トラッカーが飛んでいく場合は赤外線が干渉しています)
 厚紙を入れる例(トラッカーを覆うくらいのサイズは欲しいかも)

それでは、位置調整を開始します。

OpenVR-SpaceCalibratorの「Start New Calibration」をクリック。
その瞬間から、コントローラーとトラッカーを大きく、ゆっくり、トラッキングが切れないように動かし続けます。

前後に移動しながら振り回すとより精度よくキャリブレーションできる気がする。


参考動画

…毎回こんなにうまくいくわけではないです。
トラッキングが切れないように、大きく、ゆっくりを意識して動かしましょう…

納得いかなかったら、キャリブレーション後に出る「Close」ボタンをクリックし、
再度「Start New Calibration」します。

少しのズレはあまり気にしないほうがいいです。
完全に合わせるのは困難なので…。

位置調整が終わったらOpenVR-SpaceCalibratorは閉じてOKです。
閉じなくていいです。また再調整したくなるかもしれないので。

これで設定終わり。
(SteamVR起動するたびにこの作業が必要になります)

3. 次回以降のSteamVR起動時・注意点

3.1 次回以降のSteamVR起動時について

さて、やっと完了しましたが…
一部設定は、SteamVRを立ち上げた時、毎回設定が必要になります。
面倒ですが、この記事の方法でやる場合は必須です。

設定手順はこちら…
1.SteamVRを立ち上げる
2.「2.4.3 プレイエリア設定の読み込み」を行う

~~トラッカー使わないゲームならここまででOK~~

3. 「2.4.4 トラッカーの位置調整」を行う

はい。
手順はそう多くないのですが、毎回これをやらなくてはいけません…


3.2 トラッカーが飛んで戻ってこない時

たまに、トラッカーが飛んで行って(現実ではなく仮想空間での話)
戻ってこなくなることがあります。

その場で回転してみたり、ベースステーションの電源を切って順番に入れなおしたりすると直るかも。




4 設定戻したいとき

steamvr.vrsettingsから、「"useNewChaperone" : false,」の行を抹消すればOK。


5 Oculusのルームセットアップをやり直した時

steamvr.vrsettingsから、「"useNewChaperone" : false,」の行を消して、
2.2から設定をやり直せばOK。