Monthly Archives

One Article

HTC Viveトラッカー/コントローラーの仕様で困ってることメモ【SteamVR】

展示にViveトラッカーやコントローラーを利用していて困ってることメモしておく。
解決方法の情報や間違いがあれば教えていただけると嬉しいです。

3台目以降のViveコントローラーのボタン押下が取得できない

困ってる度:超困ってる

展示で4本のViveコントローラーを1台のPCに有線USB接続して使用していて、先日までは問題なく動いていたのに今年の夏の展示からトラブルが続出した。
調べてみると3台目以降のViveコントローラーのボタン押下が取得できなくなっていて、Unity上でSteamVR_TrackedControllerコンポーネントを見てみても、先に操作した2本目のコントローラーまではボタンが反応するのに、3本目以降が反応しなくなっていた。
コントローラーやUSBケーブルが故障しているわけではないので、操作する順番を変えてみると操作できる2台のコントローラーがその都度変わる。
通常のVRゲームでは2本までしかコントローラーを使用しない想定なので問題ないかもしれないが、USB接続(や無線接続)で2本以上接続して使用する場合は問題になってくる。
いくつかのボタン取得方法を試したけどダメだったので、展示ではボタンを使用しない構成にアプリを急遽修正することになった。
誰か対応方法知ってたら教えてほしい。

トラッカー/コントローラーがロスト→復帰する度にSteamVR全体の座標が少しズレる

困ってる度:超困ってる

おそらくトラッカー/コントローラー認識のタイミングでキャリブレーション処理が走るのか、マッピング等でトラッカーにしっかり映像を合わせていても数センチ~数十センチ座標がズレる。
HMD・コントローラー全てが同じだけ座標がズレるのでHMDから見たコントローラーやトラッカーの相対位置は変わらない為、通常のゲームにはそれほど大きな影響はないが、プロジェクションマッピング等にはもろに影響が出る。
SteamVRを起動時にもこのキャリブレーション処理は走るので、SteamVR再起動でも絶対座標がズレる。
キャリブレーションを切る方法を探したけど今の所見つからず。

対処方法としては、基準点ViveトラッカーをUSB接続でどこかわかりやすい位置に固定して、それを基準にSteamVRのエリアを補正する。
すごく調整が面倒になる上に、機材も増えるので本当はやりたくない。

SteamVR起動直後、Viveトラッカーを少し動かさないと認識しないことがある。

困ってる度:かなり困る

Viveトラッカー2.0をUSB接続時にこの現象を確認した。
1.0に変える事で回避できたけど、上記の基準点トラッカーとして使用していたトラッカーが起動時に認識しなかったので、常設展ではかなり困る。

角度で安定することもあったので、ベースステーションとViveトラッカーの赤外線センサの位置関係の可能性もある?要検証

コントローラーが認識⇔切断を繰り返す

USB接続状態で長期間展示していると起こる現象。
おそらく、PCとUSB接続していても電池の消耗のほうが早く、徐々に残バッテリーが減って行く(?)
空になったところで切断⇔認識を繰り返すのだと思われる。
この状態になると、認識・切断時に他のコントローラーやアプリの挙動も一瞬止まってしまうのでまともに動作しなくなってしまう。
5V2AくらいのACアダプタ付きUSBハブを使用していても起こる事があるので、バッテリーがダメになりがち??

device ID が変わる現象

困ってる度:それなりに困る

たまにロスト→復帰を繰り返しているとdevice IDが変わる事がある。
これはrenderModelNameを取得するなど、アプリの作り方で回避可能。

string renderModelName = GetComponentInChildren<SteamVR_RenderModel>().renderModelName;
if (renderModelName.IndexOf("{htc}vr_tracker_vive_1_0") > -1)
{
  // Trackerの時だけ実行
}

device IDではなくSerial Numberを取得して保存するようにすると更に良いという噂。まだ試してない。

Viveトラッカーのペアリング機能をロックしたい

困ってる度:ちょっと困る

「空想ジオラマ」という作品でViveトラッカーを子供が触る事が多いが、よくボタンを押されてしまい、ペアリング状態になってしまう。
物理的にボタンが押せないように蓋を接着すれば良いのかもしれないが、美術館などの学芸員さんたちが操作するのでメンテナンス性も保っておきたい。

ちなみにHomeボタン(System Menuボタン)を無効にするのは、SteamVR>設定>開発者 から「VRダッシュボードを有効化」チェックを外すだけなので、展示の時は無効にしておくと良い。

ところでアーケードモードって何??誰も知らない説ある。