protonブログ

日々の記録やデバッグメモ

Vive Proでフロントカメラを使おうとして苦労した話

問題

HTC Vive Proを買ってGoogle Earth VR等いろいろ楽しんだ後、デュアルカメラを使って設定した境界付近に来たら現実の映像を映したりARとかができるらしいので、カメラを使おうとしたら
×カメラ利用できません
Viveが接続されているUSBポートではカメラが認識されません。
別のUSBポートに接続し直して、SteamVRを再起動してください。

f:id:proton_1602:20190125202738p:plain:w500
Steam VR 設定 カメラ利用できません
というエラーが表示されていて一切使えなかった。Viveの設定自体は箱の中の紙に書いてあった通りすらすら進んだので特に問題なかった気がするのだがカメラは使わなかったので気づかなかったが、そういえば初めからこんなエラーが出ていたような気がしなくもない...

対処

省電力設定の無効

とりあえず調べてみたら、公式にヘッドセットのデュアルカメラがオンにならない場合はどうすればよいですか?

Windows® 10 を使用している場合は、省電力設定を無効にしてください。
1. コンピュータ上で、デバイスマネージャを開きます。
2. ユニバーサル シリアル バス コントローラーにある 汎用 SuperSpeed USB ハブ RI を見つけて右クリックし、プロパティを選択します。
3. これが VIVE Pro デバイスであることを確認するには、詳細タブをクリックして、VID/PID の値に 0BB4/030E の文字列があることを確認します。
4. 電源の管理タブをクリックして、電力の節約のために、コンピュータでこのデバイスの電源をオフにできるようにするのオプションの選択を外します。

とあったのでやってみたが特に改善しない。

USB2.0接続

HTC Viveが認識しなくなった際の対応方法(2016/5/26)とかに、Viveが不明なデバイスと認識される場合USB3.0USB3.1では互換性の問題があったりしてUSB2.0に接続すると良いみたいなことを書いてあったが、特に改善はしなかった。

USBドライバの再インストール

HTC Viveが認識しなくなった際の対応方法(2016/5/26)にもあるように、
SteamVR > 設定 > 開発者 >リセット > SteamVRの全USBデバイスを削除
というボタンがあるので実行して(リングボックスのUSBを外さないと実行が進まない、外すとすぐ終わる)再びUSBを刺してドライバを再インストールする。しかし、改善はしなかった。

USBカード

公式のヘッドセットは、USB ポートの問題のために検出できません。どうすればいいですか?に、

USB ドライバを更新してもエラーが解決しない場合は、別のPCI-Express のUSB カード(Intel チップセット搭載)を購入し使用してください。当社のテスト結果では、このUSBカードは、次の VIVE Pro に互換性がありました:

Inateck® 2 ポート USB3.0 PCI-Express カード(シリアル:KTU3FR-2O2I)

とあるが、この商品は調べてもまともに買える場所が見つからず、viveでUSBカードを導入して解決したというブログとかも見つからなかったので買ってない。

カメラレートを弄る

HTC Viveが認識しなくなった際の対応方法(2016/5/26)には

カメラレートを30Hzに下げる
SteamVR>設定>カメラ>カメラレートの値を60Hzから30Hzに変更すると解決すると設定に記載されている。現時点で高いカメラレートは必要としないので、問題が発生している場合は下げて置いた方が良いだろう。

とあったり、【HMD】SteamVR総合 Part14【HTCvive/OSVR/FOVE [無断転載禁止]©2ch.net には

623 :名無しさん┃】【┃Dolby (ワッチョイ be8b-4fuR):2016/06/18(土) 00:59:42.61 id:EBmycVWE0
初めて繋いだ直後はカメラが使えてたんだけど、いつの間にかカメラ利用できませんってなって
それっきり使えないな
USBポートも替えたりしたけど変わらない
USBデバイスの削除もしてみたけどダメだ
何がきっかけなんだろうか
624 :名無しさん┃】【┃Dolby (ワッチョイW f977-iOFr):2016/06/18(土) 01:00:49.13 id:X2z6g3/s0
>>623
俺はfps30に下げたら何故か使えなくなった
60に戻したら使えるようになった

とあるが、そもそもカメラを利用できないのでカメラレートを変える設定など存在せずこの方法は試せなかった。

PCスペック

i7-8700K/GTX1080Ti/32GBで足りないはずがない、上のエラーの画像でもわかるように処理は基本的に約8ms以下で終わっていてPCスペックの問題ではないはず。

解決

いろいろ調べてだめで心が折れかけて公式サポートに連絡するしかないかと考え始めたころ、ふとtwitterで検索してみたところSteamVRクライアントのバージョン1.2.7の問題であるらしく、SteamVR Beta1.2.8にすると解決するらしいことが分かった...
確かに、SteamVR公式を見てみると

SteamVR Beta Updated - 1.2.8
1月19日 10時39分 - NATB
The SteamVR Beta has been updated with the following changes.

General
Fix for GetSkeletalTrackingLevel returning IPCError
Fix to allow Vive and Vive Pro cameras to be enabled / disabled

とある、はぁ...
早速SteamVRをBeta版にした、やり方は
Steam > ライブラリからツール一覧のSteamVRのプロパティ(SteamVRがないなら検索してプレイとかするとツール一覧に出るようになる) > ベータ > 参加希望のベータを選択してください > beta-SteamVR Beta Update
としてSteamVRを閉じてしばらくすると、ツール一覧のSteamVRがSteamVR[beta]になり起動後もちゃんとSteamVR beta 1.2.9とでてくる。 やっとカメラを有効にできるようになった。

f:id:proton_1602:20190125221804p:plain:w500
SteamVR beta 1.2.9 設定 カメラ
とりあえずカメラを有効にしてみるとこんな感じ
f:id:proton_1602:20190125222516p:plain:w500
Steam VR Beta 1.2.9 カメラテスト
f:id:proton_1602:20190125222719p:plain:w500
Steam VR Beta 1.2.9 カメラ映像を重ねたディスプレイミラー
これでカメラが使えるようになったよ、やったね。まあVGA画質だし思ったよりキレイじゃなかったんだけど、なんか現実の境界が出てる画像...良くない?カッコイイ...

新たな問題

カメラレートが40Hzから動かそうとしても、再起動後40Hzになっていて動かせない。また、カメラテストでカメラを有効にする以外のチェックボックスを入れるとテスト映像が点滅する。(これはHMDから見る限りそんなことはないので特に影響ない?)
USB3.1 Gen1に接続したりしてみたが特に変わらない、これもまたSteamVRの問題なんだろうか。何か解決したり変化が見られたら追記か新しい記事書くかもしれない。

感想

TwitterSteamVRのスレッド等英語でも頑張って読んで探すべきですね...
こういう最新バージョンのエラーとかはブログとかに上がってくるのが遅く、いくら検索しても全然上位にはそんな記事は出てこなくて辛かったです。(なのでこの記事書いてみたりしたのですが)