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。



2019年1月7日月曜日

Oculus Rift + Vive Tracker セットアップガイド

2019/03/11 追記

このページに書いてあるのより少し簡単にできるやり方あります↓

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

https://si-nounai.blogspot.com/2019/03/oculus-rift-x-vive-trackersteamvr-beta.html
Trackerを使用しない時もひと手間かかるようになりますが、いろいろ楽です。

――――――――――――――――――――――――――――――

Oculus Rift + Vive Trackerのセットアップについて。

方法は他にもあるけれど、とりあえずこの手順でやっておけばOK!
というものをまとめます。
RiftとViveトラッカーの同時利用と、PlaySpace Moverの使用について
一通りの手順です。

※SteamVRのバージョンによってはうまく動きません。
 きっとValveに嫌われているんだと思います。悲しいね。
 おすすめは1.1.4です。それより後のバージョンは毎回プレイエリアの設定が必要です。

――――――――――――――――――――――――――――――

0.前提条件

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

1.必要なもの

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

・Oculus Rift
・ベースステーション(2.0のほうが良い)
・Viveトラッカー
・高さ15.5~16cmくらいの台
・マスキングテープやシール(粘着力が弱いもの。切れ端程度でOK)
・スイッチ付き電源タップ(スイッチは2つ以上あると良い)
・電源タップ(2口以上)
   

1.2 ソフトウェア

・Oculus Software
  Riftが使える状態にしておきます。
   
・SteamVR
  Steamからインストールし、起動できるようにしておきます。
  バージョンは1.1.4がおすすめです...
   
・OpenVR Input Emulator
  https://github.com/matzman666/OpenVR-InputEmulator/releases
  こちらのリンクから、「OpenVR-InputEmulator-v1.3.exe」をダウンロードし、
  SteamVRインストール後にインストールします。
   
・OpenVR-SpaceCalibrator
  https://github.com/pushrax/OpenVR-SpaceCalibrator/releases
  こちらのリンクから、「OpenVR-SpaceCalibrator-0.5.zip」をダウンロードし、
  任意のフォルダに解凍(展開)しておきます。(インストール不要)
   
・PlayspaceMover
  https://github.com/naelstrof/VRPlayspaceMover/releases
  こちらのリンクから、「PlayspaceMover-v0.1.8.zip」をダウンロードし、
  任意のフォルダに解凍(展開)しておきます。(インストール不要)


2.手順

2.1 Riftの床高さ設定

Oculus Softwareから、床高さを再設定します。

2.1.1 Oculus Softwareの操作

まずは、下の図の通り、
「Devices」→「Configure Rift」→「Floor Position」を選択します。
(日本語表記の場合は、「デバイス設定」→「Riftを設定」→「床の位置」です。)


次の画面では、本来であれば自分の身長を入力するのですが、
今回は30cmを入力します。

①「Metric Units」をONに、②「30」を入力、③「Continue」をクリックします。
(日本語表記の場合は、①「メートル法」→②「30」を入力→③「次へ」です。)

Oculus Software内での操作はこれで一旦おしまいです。


2.1.2 Oculus Riftの細工?

2.1.1の手順の後は、本来であればHMDをかぶって指示に従うところですが、
今回はちょっと手順が異なります。

まずは、Riftにあるセンサーに少し細工をします。
細工と言っても、分解したり改造したりするわけではないのでご安心ください。


Riftの中央、少し上あたりに、
黒い楕円のテカテカした部品と、
その右にLEDが光っている場所が
あります。

これは、HMDをかぶっているかを
判別するための近接センサーです。
ここにマスキングテープやシール
を貼って…





こんな感じにします。
黒い楕円を覆うと、その右にある
LEDが消え、HMDの画面が表示されます。

このテープは、床高さの設定が終わったら
剥がしますので、
跡が残らないよう、粘着力が弱いものを
選びましょう。






2.1.3 Riftを置く

続いて、Riftを設置します。

2.1.1と2.1.2の手順が完了したら、
プレイスペースの中心あたりに15.5cm~16cmの高さの台を置き、
その上にRiftを置きます。


写真ではKinect oneの箱(約15.7cm)に
乗せています。












2.1.4 床高さの設定

ここまでできたら、Touchコントローラーのトリガーを一度引き、
床高さを設定します。

HMDをかぶって床高さが大体合っているか確認しましょう。
確認したら、もう一度トリガーを引いて、床高さを確定します。

2.1.5 マスキングテープ,シールを剥がす

2.1.2で貼ったマスキングテープ・シールはこれで役目が終わったので、
剥がしておきましょう。


これでRiftの床高さが設定されました。

ここからはSteamVRの設定に入ります。


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

SteamVRにOculus RiftとViveトラッカーを認識させるためには、
「default.vrsettings」という設定ファイルの書き換えが必要です。

保存場所は…




Steamの「ライブラリ」→「VR」を選択し、
「SteamVR」を右クリック→「プロパティ」を選択します。

「ローカルファイル」タブの「ローカルファイルを閲覧」をクリックすると、
SteamVRがインストールされているフォルダが表示されます。



ここの、「resources」フォルダ→「settings」フォルダ内にあります。

「default.vrsettings」を、メモ帳などのテキストエディタで開いて、

25行目あたり(SteamVRのバージョンによって変わる)の
    "activateMultipleDrivers": false,
というのがあるので、false を true に書き換えて…
    "activateMultipleDrivers": true,
こうします。

これだけで、Oculus RiftとViveトラッカーが同時にSteamVRに
読み込まれるようになります。


以下、ついでに書き換えておくと良い設定です。

・Vive Trackerを動かさないと5分でスタンバイになるのを止める

135行目あたり(SteamVRのバージョンによって変わる)にある、
"turnOffControllersTimeout" : 300.0,
  を、
"turnOffControllersTimeout" : 0,
  に書き換えることで、スタンバイにならなくなります。
  600なら10分になるのかな?

・「SteamVRをアップデート中にエラーが発生しました(アプリ実行中)」が出る場合

複数のTrackerを起動する際、
「SteamVRをアップデート中にエラーが発生しました(アプリ実行中)」
という警告が出る場合があります。
とりあえず設定しておきましょう。

 138行目あたり(SteamVRのバージョンによって変わる)にある、
"autoLaunchSteamVROnButtonPress" : true
 を、
"autoLaunchSteamVROnButtonPress" : false
 に書き換えます。



2.3 Oculus RiftとViveトラッカーの調整


2.3.1 ベースステーションの設置

ベースステーションを設置しましょう。
参考サイトをいくつか紹介します。

HTC Viveが到着するまえに準備しておく事1 ベースステーション設置方法


ベースステーション2.0の場合、
[CEDEC 2018]「Vive Tracker」を使うときの注意点とは? 
「Vive」の最新情報が披露された講演をレポート
ここの「ベースステーション2.0の注意すべき点」も参考になるかと。

ベースステーションの固定方法についてですが、僕の場合は、
カーテンレールやワイヤーラックに取り付けています。




ベースステーションの電源についてですが、
Oculus Rift+Viveトラッカーを使用する際、気をつける点があります。

2.3.6で、Riftとトラッカーの位置調整をしますが、
その際、どのベースステーションが最初に認識されたかが重要となります。

細かい説明は省きますが、基準のベースステーションを一つ決めてください。
なるべく見晴らしのいい場所にあるベースステーションを選ぶといいかも?
どれでもいいですけどね

この基準のベースステーションだけの電源を最初に入れられるよう、
スイッチ付きの電源タップを使って配線します。

配線例は…下手な絵でごめんね
こんな感じです。
これなら、一番左のベースステーションだけの電源を最初に入れられます。


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

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

※最初はベースステーションの電源を切って作業します。

まずは、SteamVRを立ち上げ、Viveトラッカーをペアリングします。
参考:VIVE トラッカー(2018)のペアリング
https://www.vive.com/jp/support/accessory/category_howto/pairing-vive-tracker.html



トラッカーがペアリングされると、灰色の六角形トラッカーマーク(点滅)
現れるはずです。
とりあえずは、Riftとコントローラー、センサー以外に何か認識されていればいいかと。

※SteamVRの左上は、「利用可能」「利用不可」どちらが表示されていてもOKです。

2.3.3 トラッカーを認識させる

2.3.2でトラッカーをペアリングしたら、
全てのベースステーションの電源を入れます。



トラッカーをベースステーションのトラッキング範囲に置き、しばらく待つと、
上の画像のようになると思います。
この時点では、ベースステーションが複数台あるのに1つしか認識されないかも
しれませんが、とりあえずは無視して進めてください。

※SteamVRの左上は、「利用可能」「利用不可」どちらが表示されていてもOKです。

読み込まれない場合、Trackerがペアリングされているか、
Trackerからベースステーションが見えるか、
Riftのエラーが発生していないか確認してください。


2.3.4 ベースステーションのチャンネル設定をする

ベースステーションのチャンネルはすべてバラバラである必要があります。

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

ベースステーション2.0の場合も、背面の小さな穴の奥にあるボタンを押すことで、
1→2→3→…とチャンネルを切り替えられます。(16まであるのかな?)
ベースステーション2.0はインジケーターなどがないため、
ボタンを押してはSteamVRの画面でチャンネルを確認する、という手順が必要に
なります。
カーソルを合わせると、右下にチャンネル番号が出ます。
全部のベースステーションのチャンネルがバラバラになるよう、調整します。
基準のベースステーション(2.3.1参照)のチャンネルはなんでもいいです。
こだわりがなければ1にしておくのが無難かと。

2.3.5 ルームセットアップを実行する

まずは、ルームセットアップをします。

SteamVRに「利用可能」の表示が出ている場合、全てのベースステーションの
電源を切ると、上に「ルームセットアップを実行」と出ます。

SteamVRに「利用不可」の表示が出ており、上に「ルームセットアップを実行」
と出ている場合は、そのままルームセットアップを実行してください。


※SteamVRに「利用不可」と出ていても、Riftのトラッキングが切れていると
「ルームセットアップを実行」が出ません。Riftを動かしてトラッキングさせましょう。



それでは、Riftを再度15.5~16cm程度の高さの台に乗せ、
プレイエリアの中央あたりに置きましょう。(位置は大体でいいです)

ルームセットアップは「立位のみ」を選択します。
ここで立位のみと設定しても、プレイエリアの壁(Guardian System)は
Riftで設定したものが出てきます。(設定してある場合)

「次へ」をクリック
※「次へ」が押せない場合は、Riftのトラッキングが切れているかもしれません。
 少しゆすったり動かしてトラッキングさせましょう。

「中央を測定」をクリック
※「ヘッドセット 障害物あり」と出る場合、Riftのトラッキングが切れているかも
 しれません。Riftを少しゆすってみましょう。

床の高さは、15.7cmの台の場合14.3cmくらいがいいと思います。
数値入力後、「床をキャリブレーション」をクリック。

「次へ」をクリックして終了。

これで、Rift+トラッカー使用時のプレイエリアが設定されます。


2.3.6 Riftとトラッカーの位置調整

・SteamVRを閉じます。

・SteamVRを閉じると、トラッカーの電源が全て切れるはずです。
 電源が切れていないトラッカーがあれば、電源を切ります。
 トラッカーの電源は、中央のボタンを5秒以上押し続けることで切ることができます。

・ベースステーションの電源をすべて切ります。

・SteamVRを起動します。

・トラッカーの電源を入れます。複数ある場合、一つずつ起動し、
 最初にSteamVRに認識されたトラッカーを覚えておきましょう。
 (いっぺんに立ち上げると、どれが最初に認識されるかわからない)


基準のベースステーション(2.3.1参照)の電源を入れます。
 そしてトラッカーが認識されるのを待ちます。
 すると、下の図のようになると思います。

・きちんとすべてのトラッカーがトラッキングされたことを確認してから、
 他のベースステーションの電源も入れます。


※ここで「ルームセットアップが無効です」とエラーが出る場合、
 2.3.5の通り、ルームセットアップを行ってください。

この時点では、Riftから見るとTrackerは現実とは全く異なる位置にあるはずです。
位置を調整する必要があるため、OpenVR-SpaceCalibratorを使用します。

・1.2でダウンロードし、適当な場所に展開した、
 「OpenVR-SpaceCalibrator.exe」を実行します。
 すると、下の図の画面が開くはずです。

左上の「oculus」からは、右か左のコントローラーを選びます。
(Left ControllerかRight Controllerのどちらか)
右上の「Lighthouse」からは、「Vive Tracker~~」の一番上のものを選択します。

それでは、選択したコントローラーと、最初に認識されたトラッカーを一緒に持ちます。

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


ここまで準備出来たら、以下の動画のようにキャリブレーションを行います。
無編集、撮ったまま。

手順としては、
コントローラー選択→トラッカー選択→「Start New Calibration」
あとはゆっくり大きく、コントローラーとトラッカーがずれないように動かすだけ。

ゆっくり大きくです。早く動かすとズレやすいです。

キャリブレーションは基本的には初回だけでOK。
次にSteamVRを立ち上げるときは、OpenVR-SpaceCalibratorを起動するだけで、
今回のキャリブレーション結果が適用されます。

ズレが気になるようなら再度キャリブレーションしてください。


2.3.7 PlaySpace Moverについて

PlaySpace Moverというのは、VR空間内の位置調整などに使えるものです。
VRChatでフルトラ勢が空飛んだりするのに使ってます。

使い方が厄介なので、バッチファイルの作り方だけ書いときます。

1.2でダウンロードして、適当な場所に展開したPlaySpace Moverのフォルダに、
テキストファイルを新規作成し、以下の黄色い背景の部分の内容をコピーして
貼り付けます。

cd /d %~dp0
PlayspaceMover.exe -l 128 -r 128 --resetButtonMask 2

上書き保存し、拡張子を「.txt」から「.bat」に書き換えます。

SteamVRで、OpenVR-SpaceCalibratorでの位置調整が終わったら、

OpenVR-SpaceCalibratorを閉じてからこのバッチファイルを実行してください。

順番を間違えないように。
PlaySpace Moverが立ち上がっているとOpenVR-SpaceCalibratorでの
位置調整ができないし、
OpenVR-SpaceCalibratorを閉じないとPlaySpace Moverが効きません。


このバッチファイルを起動することで、
・コントローラーの「A」もしくは「X」ボタンを押しながら
 コントローラーを動かすことで移動、
・コントローラの「B」と「Y」を同時押しすることで初期位置に戻る

ということができます。



3 次回以降の手順まとめ

今回は初回セットアップなので、かなり面倒な手順でした。
次回以降はかなり短く済みます。

①SteamVRを立ち上げる
②使用するトラッカー全ての電源を入れる
③基準のベースステーションの電源を入れる
④トラッカーがトラッキングされるのを待つ
⑤ほかのベースステーションも電源を入れる

※ここで「ルームセットアップが無効です」とエラーが出る場合、
 本記事の2.3.5の通り、ルームセットアップを行ってください。
 おそらくSteamVRのバージョン1.2.xと1.3.xの場合は毎回これが必要かと…
 Valveが何とかしてくれないとどうしようもない、困った、たすけて

⑥OpenVR-SpaceCalibratorを起動する

PlayspaceMoverを使用する場合
⑦OpenVR-SpaceCalibratorを閉じる
⑧PlayspaceMover用のバッチファイルを起動する


おしまい。

2018年12月2日日曜日

Oculus Rift + Vive Trackerの同時使用について(メモ)

Oculus Rift + Vive Trackerについて、
わかる範囲でまとめてみようと思います。

※SteamVRのバージョンによって動作が大幅に変わるかもしれません。


分かりにくいところが多いかも。


手順だけまとめたのはこちら↓

Oculus Rift + Vive Tracker セットアップガイド(簡易)

https://si-nounai.blogspot.com/2019/01/oculus-rift-vive-tracker.html

今後はこっち推奨…SteamVRのバージョンアップでどうなるかわかんないけどね

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


――――――――――――――――――――――――――――――

SteamVRでOculus RiftとVive Trackerを同時に使用するためにやるべきこと。
以下の流れで解説していこうと思います。

1.必要なもの
2.下準備
3.Oculus RiftとVive TrackerをSteamVRに認識させるためには
4.Oculus RiftとVive Trackerの位置合わせについて
5.SteamVR 1.1.3について  1.1.4で問題は修正されました。


※文中のRift・HMDはOculus Rift、
 コントローラー・TouchはOculus Riftのコントローラー、
 TrackerはVive Tracker、
 BSはベースステーションを指します。


1.必要なもの

☆必須のもの
・Oculus RiftとOculus Software(Riftが使える状態になっていればOK)
・ベースステーション
   1.0の場合…2個(1個でも出来なくはない)
   2.0 …2個以上(1個でも出来なくはない、4個くらいまでかな)
・Vive Tracker(ペアリングを済ませておく)
・SteamVR (1.1.3はだめだぞ)
・OpenVR input emulator
・高さ15~16cmの台(2.下準備で使用します)

OpenVR input emulatorはGitHubより入手してください
https://github.com/matzman666/OpenVR-InputEmulator
SteamVR 1.1.3では使えませんでしたが、1.1.4では問題なく使えます。

Trackerのペアリングについては、こちらを参照。
VIVE トラッカー(2018)のペアリング
https://www.vive.com/jp/support/accessory/category_howto/pairing-vive-tracker.html

ベースステーション(以下、BS)についてですが、
BS2.0とTracker2018の組み合わせをおすすめします。
BS1.0だと、TouchやRiftから出る赤外線によって
トラッキングが妨害されやすいです。
2018/11/30にBS2.0の単体販売が始まったことですし、
新しく買うならBS2.0をオススメします。
※Tracker2017(旧Tracker)はBS2.0非対応なのでご注意ください。

あと、ベースステーション(BS)のチャンネル設定について。
BS1.0の場合、背面のボタンを押すことで、a,b,cとチャンネルが切り替わります。
基本的には、bとcにします。(BSを1台だけ使用する場合はbにする)
aはベースステーション同士をケーブルでつないで同期させる際に使用します。

BS2.0の場合、おそらくViveのソフトが入っていないと、リンクボックスをつないでも
SteamVRのBluetoothサービスは使用できません。
そのため、公式の方法ではないようですが、背面にある小さな穴、その中にあるボタンを押すことでチャンネルを変えられるそうです。
チャンネルについては、SteamVRの画面でしかわからないので、3.の設定をしてから合わせましょう…

2.下準備

この設定は必須ではないです。
が、設定して置くことをお勧めします。
理由は後述…

やることとしては、Riftのプレイスペース設定について、
床高さの設定を、できる限り低い位置にHMDを置いて行うだけです。

詳細な手順を紹介します。

Oculus Softwareの「Devices」→右上の「Configure Rift」から、
「Floor Position」を選択、
単位が「Centimeter(センチメートル)」になっていることを確認し、
「30」を入力します。
できる限り0に近い値を入れたいのですが、30cm未満は入れられませんので…

そしたら、プレイエリアの中心にしたいところに15~16cmの台を置き、
その上にOculus Riftを置きます。

次に、レンズとレンズの間の上部にあるセンサー(近接センサー)が反応するよう、
カバーをかけるかシールを貼るか物を置くかします。
センサー横のLEDが消えるか、Riftのディスプレイが光っていればOK。
セットアップの時だけなので、センサーさえ反応していれば問題なし。

ここまで出来たら、コントローラーのトリガーを一度引き、
床高さ・プレイエリアの中心を設定させます。
(カメラから水色の光が出てプレイエリアが設定される演出のアレです。)
トリガーを二度引くと確定してしまうので注意。

ヘッドマウントディスプレイをかぶり、床高さが現実と合っているかを確認します。
特に問題なければ、再度トリガーを引いて確定します。

VR内の床高さに問題があれば、XボタンかBボタンを押して取り消し、
台の高さを調整して、再度手順を繰り返します。

VR内の床が低すぎる場合は台を高く、VR内の床が高すぎる場合は台を低くします。
自分の好みに合わせて高めor低めに調整してもOK。


この設定を行う理由ですが、

Vive TrackerとRiftを使用する場合、
すべてのTrackerを見失うと、SteamVRのプレイエリアの床面が、
Riftのプレイエリア設定をした際のHMDの高さになってしまうためです。

なるべく低い位置にHMDを置いてプレイエリアを設定することで、
VRゲームをプレイ中にTrackerのバッテリーが全て切れてしまっても、
床面が上がってくる量は最小限で済みます。



3.Oculus RiftとVive TrackerをSteamVRに認識させる

SteamVRの設定ファイルの書き換えが必要です。
「default.vrsettings」というファイルを書き換えます。
保存されている場所は…

 (省略)\Steam\steamapps\common\SteamVR\resources\settings\

もしくは、

 Steamのライブラリ→VR(もしくはツール)にある
 「SteamVR」を右クリック→プロパティから、
 「ローカルファイル」タブの「ローカルファイルを閲覧」
 その中の、「resources」フォルダ→「settings」フォルダ


これをメモ帳や各種テキストエディタで開いて、25行目あたり
(SteamVRのバージョンによって変わる)に
    "activateMultipleDrivers": false,
というのがあるので、false を true に書き換えて…
    "activateMultipleDrivers": true,
こうします。

これだけで、Oculus RiftとVive Trackerが同時にSteamVRに読み込まれます。

※Steamのバージョンアップの度に書き換えなおす必要があります。
 でも1.1.4へのアップデートの時は大丈夫だったみたい…????


以下、ついでに書き換えておくといいかもしれない設定です。

・Vive Trackerを動かさないと5分でスタンバイになるのを止める

135行目あたり(SteamVRのバージョンによって変わる)にある、
"turnOffControllersTimeout" : 300.0,
  を、
"turnOffControllersTimeout" : 0,
  に書き換えることで、スタンバイにならなくなります。
  600なら10分になるのかな?


・Vive Trackerを起動するとSteamVRが勝手に立ち上がる…

複数のTrackerを起動する際、
  「SteamVRをアップデート中にエラーが発生しました(アプリ実行中)」
  という警告が出るのは、既にSteamVRが立ち上がっているのに、
  追加でSteamVRが立ち上がろうとするため。

  138行目あたり(SteamVRのバージョンによって変わる)にある、
"autoLaunchSteamVROnButtonPress" : true
  を、
"autoLaunchSteamVROnButtonPress" : false
  に書き換えます。
  Vive Tracker起動時に自動でSteamVRが立ち上がらなくなるので、
  手動で立ち上げましょう。



4.Oculus RiftとVive Trackerの位置合わせについて

3.の設定を済ませてあれば、RiftとTrackerが両方SteamVRに読み込まれます。
きちんと読み込まれるか確認しましょう。
読み込まれない場合、Trackerがペアリングされているか、
Trackerからベースステーションが見えるか、
3.の設定ができているか確認しましょう。

この時点では、Riftから見るとTrackerは現実とは全く異なる位置にあるはずです。

まずは、ルームセットアップをします。
必ずTrackerとベースステーションを認識させた状態
(Trackerマークが緑色で点滅していない)で行うこと。

Trackerを読み込んだ時点でSteamVRの上に「ルームセットアップを実行」と出れば、
それをクリックしてルームセットアップを実行します。
出ない場合は、認識されたTracker全ての電源を切る、もしくはTrackerを覆って
トラッキングを切ることで、SteamVRの上に「ルームセットアップを実行」が出るかと。

ルームセットアップは「立位のみ」で問題ないです。
HMDの高さに関してですが、


ここで立位のみと設定しても、プレイエリアの壁(Guardian System)は
Riftで設定したものが出てきます。
ルームスケールを要求するゲームは、起動時に警告が出ますが、
OKを押せば起動します。

Rift単体使用の時とRift+Tracker使用時でプレイスペースが別物となりますが、
これは仕方ないです。

Trackerの位置調整について、2つの方法を紹介します。

※どちらの方法も、コントローラーとTrackerを一緒に動かす必要があります。
 ベースステーション1.0の場合、コントローラーから出る赤外線により、
 Trackerが荒ぶったりトラッキングが切れたりしやすいです。
 工夫する必要があります。

※完璧な位置合わせをしたつもりでも、
 全てのTrackerを見失って再度認識した時や、
 SteamVRを再起動すれば少しズレます。
 ある程度は妥協しましょう…


・OpenVR Space Calibratorを使用する

こちらは比較的お手軽です。
解説動画があります↓
https://youtu.be/W3TnQd9JMl4

ソフトの配布場所はこちら↓
https://github.com/pushrax/OpenVR-SpaceCalibrator

きちんと位置合わせさせるコツは、
コントローラーとTrackerがズレないようしっかり持ち、
大きくゆっくり動かすことです。

OpenVR Space Calibratorは、SteamVRに認識されてるTracker全てに
オフセットが適用されます。
一度起動すれば、SteamVRを閉じるまでは、OpenVR Space Calibratorを閉じても
オフセットは維持されます。

※OpenVR Space Calibrator起動中は、PlayspaceMoverでの移動は効かないため、
 オフセットが適用されたらSpace Calibratorを閉じましょう。



・OpenVR input emulatorのOffset機能を使う

こちらは、オフセットを手動で入力する方法です。
VR内のメニューにあるOpenVR input emulatorの上にある
プルダウンメニューからTrackerを選び、
Device offsetを選択し、
一番上の「Enable Offsets」にチェックを入れ、
「WorldFromFriver Offsets」を使用して、角度や位置を調整します。

Yaw,Roll,Pitchが角度、X,Y,Zが位置の調整です。

位置調整の手順としては、
コントローラーとTrackerを持ち、
前後左右に動かしながら、
Yawで水平方向の角度をある程度合わせ、
X,Y,Zで位置をある程度合わせ、
あとはYaw,X,Y,Zの微調整です。

こだわるのであれば、Roll,Pitchも調整するといいかもしれませんが、
おそらく、RollとPitchは1°あるかないかくらいになると思います。

位置合わせしたら、OpenVR input emulatorの初期画面で、
下のほうにある「New Profile」ボタンをクリック、
「include Device offset」にチェックを入れ、適当に名前を入れて「Save」します。

使用するすべてのTrackerに、保存したプロファイルを適用すれば完了です。


――――――――――――――――――――――――――――――
※RiftとTrackerの位置について、今までの経験からの考察。
 正確な情報かどうかはわかりませんが…

Oculus RiftとVive Trackerは、トラッキングの方式が全く異なるため、
お互いの位置を知ることができません。
そのため、上記のように位置・方向を合わせる必要があります。

では、Riftのプレイエリアのどこを基準にTrackerやベースステーションが配置されるか。

ベースステーションのチャンネルの一番若いもの
(b,cならb、1,2,3なら1)が、
2.でHMDを置いた位置に配置されます。

そして、Trackerはベースステーションを基準に配置されます。

Trackerの位置調整について、気をつけなくてはならないことが一つ。
オフセットの基準位置は、Trackerが最初に見つけたベースステーションの位置
(X,Y,Z座標)が中心となるようなので、
例えばTrackerがベースステーションAを始めに見つけた場合と、ベースステーションBを始めに見つけた場合では、
同じオフセットにしてもTrackerの位置が変わってしまいます。

きちんと位置合わせしたのにTrackerが全然違うところに!という場合は、
一度ベースステーションの電源を切るか、Trackerを隠してトラッキングを切り、
最初に認識させるベースステーションを変えてみてください。

一番いいのは、ベースステーションをスイッチ付きのコンセントにつなぎ、
毎回決まったベースステーション一つの電源を入れ、1つでいいのでTrackerを一度
トラッキングさせてから、他のベースステーションの電源を入れることです。

――――――――――――――――――――――――――――――



おしまい。

2016年1月27日水曜日

Anker Powercore 20100を購入しました

ご無沙汰しております,しいです

表題の通り,Anker Powercore 20100というモバイルバッテリーを購入しました


と,言いますのも,最近ノートパソコンのバッテリーがヘタって警告が出るようになったんですね

そこでなんでモバイルバッテリーを買うんだと思われるかもしれませんが

バッテリーがヘタってきたならセル入れ替えればいいじゃない!と思いつつ早数か月

高いなぁと思いながらも容量が大きいやつがいいなぁ…と探していたんですね


ノートパソコンってhp製のdv6-6c00ってやつなんですが,これに最初から入ってるバッテリーセルがですね

Panasonic製のUR18650ZYってやつだったんですね,セル単体では高い…

ちょっと容量が少ないUR18650AならAmazonにも売ってるのですが,せっかく替えるのにグレードダウンはなぁ


と,いろいろ探していたんです

んで,Panasonicセルを積んだモバイルバッテリーを見つけましたよと

これ定価で買ったとしてもセル単体で買うよりずっと安いです(たぶんね)

レビューを見る限りNCR18650Bというセルみたいです.これを使えば初期のおよそ1.3倍の容量に…


まぁ開けてみるまではわかりませんけどね

では

2016/1/31追記

中身のセルはやはりNCR18650Bでした

で,ノートPCへのセル移植は失敗しました

制御回路を焼いてしまいました…残念


ただ,セルは全部無事のようなのでおとなしく元のモバイルバッテリーに戻して使おうと思います

では…

2015年11月5日木曜日

dv6-6c00(というかRadeon積んでる機種のほとんど?)windows10の起動時に画面点灯が遅い場合

―――――――――――――――――――――――――
2018/1/5追記

Windows 10 Fall Creators Update後は、
以下の4つのレジストリの値を修正してやればOKです。

※レジストリを弄ります。自己責任でお願いします。
※下記にない場合、レジストリ名で検索して見てください。

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e968-e325-11ce-bfc1-08002be10318}\0000\EnableCrossFireAutoLink
と、
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e968-e325-11ce-bfc1-08002be10318}\0000\EnableUlps
と、
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\amdkmdag\EnableCrossFireAutoLink
と、
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\amdkmdag\EnableUlps

この4つについて、値を「0」としてやれば完了です。
EnableCrossFireAutoLinkってのは何なんでしょうね。

では
―――――――――――――――――――――――――

お久しぶりです

win7のデータが飛んで半分トラウマになっていたwin10、insider previewに再び手を出してみました


表題の件について。

AMD RadeonグラフィックボードのULPSという機能がうんぬんと記事に追記していたのですが、
まあそれは見なくてもいいです。

レジストリを弄りますので、自己責任にてお願いいたします。
指定した部分以外を変更しなければ問題ないはずですが…

まずはレジストリエディターを起動してください。
そして、左上の「編集」の中の「検索」もしくは、Ctrl+Fでレジストリの検索画面をだします。

そして、enableulpsって打ち込みます、するとEnableUlpsってのが検索に引っかかると思います

そしたらそこをダブルクリックして値を「0」に書き換えてやります

で、enableULPSは一つではないので、また検索して次のやつを探して書き換えます(EnableUlps_NAってのは無視)


検索引っかからないとかなんかで自力で探したい場合はこいつらを書き換えじゃ↓


HKEY_LLOCAL_MACHINE\SYSTEM\ControlSet001\Services\amdkmdag\ の中の EnableUlps

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e968-e325-11ce-bfc1-08002be10318}\0001\ の中の EnableUlps


これclassの中の場所って機種依存とかじゃないよね…?

ここにない場合は検索で探してください…


EnableUlps_NAとかいうのは書き換えなくてOKです

これで起動時のバックライト問題は解決かと

お試しあれ

2015/11/17追記

windows10 Insider PreviewにThreshold2が来ました(だいぶ前のことだけど)

しかし残念ながらまだ不具合解消されません

ドライバなのかOSなのかわかりませんが早く対応していただけるとありがたいですな…

2015年9月12日土曜日

L-02F購入とNifMo契約しました、という独り言

データが消失して失意のどん底だったしいです


8月にL-02Fというdocomoのモバイルルーターを中古で購入しました。

思ったより大きい箱だった


ほう…これガラスじゃなくてアクリルっぽい?


クレードルついてくる



Wi-Fi STATION



バッテリーがでかいし分厚い


厚さ


高さ

メーカー公称で連続通信13時間(LTE)らしいです

中古で買ったのですがめっちゃ持ちます、1日3時間ちょい使って3日と少し使えました

ちなみにこのルーターからスマートフォンなどを充電できる変換ケーブルもついてきます




んで9月にSIMカードが届きました


封筒できた

ポップ体…

これが噂のdocomoのSIMかぁ

というわけでネットでいろいろ調べて安定して速度が出る(らしい)NifMoを使っています

720pくらいまでの動画視聴なら大体大丈夫な感じですね

昼の混雑時はちょいちょい速度落ちますがまあそんなもんです



以前はSo-netのWiMAX(Uroad-Aero)を使っていたのですが、2年経って更新月が来たしWiMAX2+は容量制限あるみたいだし高いし

というわけで格安SIMを使ってみようという次第であります

まだそんなに使ってないので何とも言えませんが今のところいい感じです


では




2015/10/15追記

使い始めて1か月ちょっと経ちました

やはり昼間などの混雑時間帯は200kbpsほどしか出ないことが多いです

あとNifMoには3日で○○MB制限というのがありまして、現時点で5GBプランだと1100MBです

僕は使うときと使わないときで差が大きいのですが、3日連続で多く使うとなるとちょっと厳しいかなと

5GBプランの上は10GBしかないですが、そちらは3日2200MB制限です

7GB程度のプランが出てくれるとありがたいかな…ただ元7GBプランが増量によって10GBプランになった様なので難しいのかな