hyoromoのブログ

iOS/AndroidもしくはCocos2dxネタを書いています

Vive/Vive Proでコントローラーを共通利用する

f:id:hyoromo:20180512183550p:plain
HTC VIVE PRO HMD (アップグレードキット)購入しました。
Vive Proに無線化が来るまではVive + TPCASTを並行利用したいのでコントローラーの共通利用しました。今回はその対応方法を書き残しておきます。

共通利用する機器

以下のVive機器を再利用します

  • BaseStation 1.0
  • コントローラー 1.0

BSに関しては何もしなくても使い回されます。
ですがコントローラーの方はHMDとペアリングしているため、Vive/Vive Proで切り替える度にペアリングし直さなければいけなくなります。

コントローラーとUSBドングルをペアリング

Vive/Vive Proの切り替え毎にペアリングし直しは面倒なので、コントローラーはUSBドングルとペアリングさせる事にします。これによって、HMDが変わってもUSBドングルとペアリングしている為そのまま使い回せます。
方法に関しましては、ほぼ以下の記事そのままです。ほぼ同じですが若干差異もあるので改めて書かさせて貰います。
teruaki-tsubokura.com

USBドングルを購入

以下から2つ買いました。コントローラーは2本なので2つ必要です。
http://steam.degica.com/a/steam-hardware/wireless-receiver

ファームウェア更新

以下の手順で更新出来ます。なお、自己責任でお願いします。

  1. Steam/SteamVRを終了
  2. USBドングルをPCに接続
  3. 以下のコマンドを実行
cd 'C:\Program Files (x86)\Steam\steamapps\common\SteamVR'
tools\lighthouse\bin\win32\lighthouse_watchman_upda
te.exe -D tools\lighthouse\firmware\vr_controller\archive\htc_vrc_dongle_1461100729_2016_04_19.bin

更新が無事行われると以下の内容が出力されます。

>>
Version:  lighthouse_watchman_update.exe (buildbot_vortex-windows_steamvr_rel_win32@vortex-windows)  04492271
Attempting to update Watchman Dongles to version 1461100729...
8B9F2B6299 - Firmware 1461100729 is at least as new as 1461100729. Skipping.
033C1E96F4 - Firmware 1461100729 is at least as new as 1461100729. Skipping.
Converting steam controller dongle to watchman dongle. Switching to bootloader
Sending reset into bootloader command
Looking for 1 bootloaders
HID opened: VID 28de PID 1042 serial (null) seq 1 | if 0
Attempting to convert Steam Controller dongle into Watchman Dongle...
Valve Nordic bootloader version 19.0
P2vvX........vvvvvvvvP3X........vvvvvvvvP4X........vvvvvvvvP5X........vvvvvvvvP6X........vvvvvvvvP7X........vvvvvvvvP8X........vvvvvvvvP9X........vvvvvvvvP10X........vvvvvvvvP11X........vvvvvvvvP12X........vvvvvvvvP13X........vvvvvvvvP14X........vvvX........vvvvvvvvP15X........vvvvvvvvP16X........vvvvvvvvP17X........vvvvvvvvP18X........vvvvvvvvP19X........vvvvvvvvP20X........vvvvvvvvP21X........vvvvvvvvP22X........vvvvvvvvP23X........vvvvvvvvP24X........vvvvvvvvP25X........vvvvvvvvP26X........vvvvvvvvP27X........vvvvvvvvP28X........vvvvvvvvP29X........vvvvvvvvP30X........vvvvvvvvP31X........vvvvvvvvP32X........vvvvvvvvP33X........vvvvvvvvP34X........vvvvvvvvP35X........vvvvvvvvP1vvvvvvvvP0X........vvvvvvvv
Successfully converted firmware.
Found all expected bootloaders

ちなみにSteam/SteamVRを終了していないと以下のようなエラーが出力されます。

Please exit Steam before converting dongles to avoid firmware update conflict.

4. SteamVR起動して、コントローラーとペアリング
なおSteamコントローラーが片方だけドングルとペアリング出来なかった場合、USB接続しているドングルを1本だけにして個別にペアリングすると成功します。

これで上手く行けばVive/Vive Proを切り替えても都度ペアリングせず認識してくれるようになる。

Vive/Vive Proを切り替えて利用する際のエラー

どちらかのHMDが認識しない

リンクボックスを繋ぐUSBをVive/Vive Proともに接続していると発生します。使用する方だけを接続するようにしてください。

「コンポジターが利用できません」エラーが発生する

HMDを切り替えるとたまに発生します。良い解決方法が未だ見つからず、毎回以下を行っています。もっと良い解決方法があれば教えてください。

  1. SteamVRの全USBデバイスを削除
  2. PC再起動

USBドングルでの精度

コントローラーとUSBドングルの距離/障害物によっては不安定になるようです。
以下の検証はプレイエリア中央でSoundBoxing(以降SBと表記)で譜面作成した時の結果となります。

プレイエリア四隅のPC背面

f:id:hyoromo:20180512205454j:plain:w300
プレイエリアの四隅にあるPC背面にUSBドングルを刺し、SBで譜面作成しました。
結果は酷い精度で位置ずれが頻繁に発生。マトモに譜面作成出来ませんでした。

プレイエリア四隅のPC前面

f:id:hyoromo:20180512205513j:plain:w300
PC位置を変えずにPC前面にUSBドングルを刺し、SBで譜面作成しました。
結果は背面に刺すよりはマシですが、2分に1回くらいの頻度で不安定になりました。

プレイエリア中央近く

f:id:hyoromo:20180512205530j:plain:w300
1mケーブルのUSBハブを使用し、プレイエリア中央近くにドングルを置いてSBで譜面作成しました。
結果はかなり安定して利用出来ました。

結論

  • HMDとコントローラーがペアリングすると、頭と手の位置関係はあまり変わらず障害物もほぼ発生しないので安定
  • USBドングルを使用すると、ドングルとコントローラーの位置関係/障害物がプレイヤー移動次第になり不安定

ほぼ立位でのプレイであれば許容範囲内ですが、プレイエリアを活用したゲームだと不安定エリアが発生してしまう可能性が高そうです。
今のところ精度が必要且つプレイエリア活用したゲームをプレイしていないので問題ありませんが、そういったゲームをやりたくなったらケチるべきでは無さそうです。