Tag Archives

3 Articles

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トラッカーの赤外線センサの位置関係の可能性もある?要検証

コントローラーがトラッキング状態じゃないとボタン入力が来ない

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

これ以前はコントローラーがトラッキングされていない(エリア外に居る)場合でもボタンの入力は取れていたので、ボタンを押して接続されているかどうかのチェックが楽だったのですが、最近のSteamVRのアップデートでコントローラーがトラッキング状態でないとボタンの入力が来なくなってしまいました。
接続されているコントローラーが必ずしもベースステーションから見える状態とは限らないので、トラッキング状態でなくてもボタン入力は欲しいところです。
不要ならソフト側で切ればいいので、大元から入力が来ないとどうしようもない…。

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

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

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トラッカーが満充電表示(LED白点灯)にならない

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

充電ずっとしててもオレンジ点灯のままで白点灯にならない時がある。白くならない時の条件はよくわかってない。

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

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

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

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

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

その他、不確定な要素

ここからは2~3ヶ月間の長期展示時に会場からの報告があった現象で、自分で検証が出来ていないので条件がわからないが発生したもの。

  • ViveコントローラーをUSBで3台接続して使用していたところ、1台がしばらくすると認識しなくなり、徐々に処理が落ちてアプリが固まる現象が頻発した。最終的にUSB接続するコントローラーを2台に減らすと安定した。アプリ的には今まで何度も長期の運用に耐えてきたバージョンなので、最近のSteamVRの仕様変更に起因する可能性がある。
  • 同じく、Viveトラッカーも3台以上繋ぐと安定せず2台で運用しているという報告があった。こちらも詳細不明。

なんにせよ最近のSteamVRは色々不安定でオペレーターのつかない長期展示は本当に辛い…。
これで何度も設営の終わった会場に再度足を運ばないといけない事が多発したのでHTC Vive使った展示控えたいくらい。

HTC Vive Trackerの仕様・使い方まとめ

HTC Vive Trackerの仕様・使い方まとめ
※この記事は情報が古くなっています(SteamVR Plugin 1.x系の情報)
新しいSteamVR Plugin 2.x系の情報は以下が参考になるかもしれません。

・SteamVR Plugin 2.0 セットアップ・サンプルシーンを動かすまでの備忘録
https://qiita.com/kyourikey/items/5967018e613b2fd49a1f
・【Unity】SteamVR Plugin 2.0の入力方法を調べてみた
http://shop-0761.hatenablog.com/entry/2018/10/12/071507
ついにHTC Vive Trackerが発売開始しました! 格安3DトラッキングシステムであるところのLighthouseの空間の中で高い精度で位置・角度を取得できるデバイスで、VRだけでなく様々な分野に応用できる可能性を秘めています。
前職の1→10で先行して触れる機会があったので、使い方とその際に気づいた事などをまとめておきます。

【VR元年】20年前に「VRアトラクション」を体験した話【ファイヤーブル】

【VR元年】20年前に「VRアトラクション」を体験した話【ファイヤーブル】
出典:特撮 プロップス 倉庫

こんにちは、クリエイティブテクノロジストの坪倉です。

2016年は「VR元年」と呼ばれ、OculusRiftHTC VivePSVR等のバーチャルリアリティ用ヘッドマウントディスプレイが普及しました。
中でも「VR ZONE」や「VR PARK TOKYO」と言った、いわゆるVRテーマパークが全国各地でオープンしたのは、VRブームを象徴する大きな動きだったと思います。

僕自身もOculus Rfit DK1時代から個人で購入しているようなVR大好きエンジニアで、今でこそ仕事でVRアトラクションを開発する事もありますが、僕がVRアトラクションを初めて体験したのは実に20年前、小学3年生の頃
その時の体験が後の人生に大きく影響を与える事になったのですが、そんな20年前のVRアトラクションの思い出を書こうと思います。