Oculus QuestをアップデートしたらALVRが動かなくなったので、こちらもアップデートした話

2019年8月2日

7/22付けでOculus Questのファームウェアのアップデート(build 7.0)がありました。こちらのアップデートの後、Oculus QuestをPC用のHMDとして使うためのアプリ「ALVR」の挙動がおかしかったので、「ALVR」を入れ替えました。その時の作業をメモとしてまとめます。

アップデート作業

ALVRの本家は、現在(2019/8/2)の地点では、今回のファームウェアbuild 7.0に対応していません。

下記のサイトを見ると、今回のOculus Questのアップデートでは、トラッキングやガーディアンの機能に変更があったようです。

ALVRに対して、このような対策を行った方がいらっしゃったようです。

必要な準備

次の項目からの作業は、次の状態であることを前提に書いています。

  • PCにSteamVRのインストールされている
  • Oculus Questは開発者モードになっている
  • PCにSideQuestがインストールされている
  • PCに本家のALVRがインストールされている

もし、これらがまだの場合、下記の記事にてまとめています手順を先に済ませてください。

ダウンロード

下記のサイトからダウンロードが出来ます。

現在(2020/6/25)は「Experimental v11」が最新となっています。

  • ALVR.zip
  • ALVRClient-v2.4.0_experimental_v11.apk

の二つをダウンロードしてください。

本家からの修正点としては、下記の通りとなっています。

Experimental版の変更履歴

Experimental版は、ALVRのv2.4.0を元にしてバージョン管理をされています。

Experimental v1

1.fixed tracking on latest oculus quest update
2.fixed controller rotation
3.fixed controller position offset
4.set tracking refresh rate to 3*72=216fps

1.最新のOculus Questに対して、トラッキングを修正
2.コントローラーの回転を修正
3.コントローラーの位置を修正
4.トラッキングのリフレッシュレートを3×72=216fpsに修正

https://github.com/JackD83/ALVR/releases

Experimental v2

1.Fixed bad image quality on Master branch
2.Included all prior fixes into master


1.画質の改善(?)
2.以前の修正を全て追加

https://github.com/JackD83/ALVR/releases

Experimental v3

1.separated render resolution from video resolution (they don’t multiply each other anymore)
2.more controller tracking tinkering
3.set a fixed quest default resolution of 1440×1600 per eye

1.ビデオ解像度とレンダリング解像度を分離しました(もう互いに乗算しません)
2.よりコントローラーをトラッキング出来るようになりました
3.片目毎にOculus Questのデフォルト解像度である1440×1600を設定するようになった

https://github.com/JackD83/ALVR/releases

Experimental v4

1.Added microphone streaming
You need https://www.vb-audio.com/Cable/ to create the virtual microphone
2.fixed 60Hz Mode (not recommended!)

1.仮想マイク機能を追加。使用するには、 https://www.vb-audio.com/Cable/ が必要です。
2.60Hzモードを修正(非推奨)

https://github.com/JackD83/ALVR/releases

Experimental v5

1.added fixed fovead rendering (ffr) made by @zarik5
2.fixed ui where sound options got stuck after first start

1.固定foveadレンダリング(ffr)を追加(@zarik5氏が作成)
2.初期起動後にサウンドオプションがスタックするUIの不具合を修正

https://github.com/JackD83/ALVR/releases

Experimental v6

1.Hopefully fixed a crash that happened for some on ev5
2.added ability to disable controllers
3.added 3DOF mode
4.updated to Visual Studio 2019 and Cuda 10.1
5.allows to specify explicit IP address for ALVR server. ※1

1.ev5の一部で発生したクラッシュを修正
2.コントローラーを無効にする機能を追加
3. 3DOFモードを追加
4. Visual Studio 2019およびCuda 10.1に更新
5.ALVRサーバーの明示的なIPアドレスを指定できます。 ※1

https://github.com/JackD83/ALVR/releases

※1コマンドラインでの設定により、ALVRサーバーのIPを指定できるようになったようです。異なるネットワーク上のHMDとサーバーPCが接続できるようになったとのこと。

Experimental v7

added new fixe fovead rendering (ffr) mode sliced for a sharper image
added Aggressive keyframe resend
general bugfixes


1.より鮮明な画像のためにスライスされた新しいフィックスフォーブレンダリング(ffr)モードを追加
2.積極的なキーフレームの再送信を追加 一般的なバグ修正

https://github.com/JackD83/ALVR/releases

Experimental v8

stability improvements
fixed Vivecraft controls (maybe fixes other games)
added manual color correction

https://github.com/JackD83/ALVR/releases

Experimental v9

added sharpening filter
added proof of concept hand-tracking
added support to emulate vive headset.
added support for manual controller rotation and offsets
added fix for warped games like DCS World and Tomb Raideradded game profiles to automatically set configuration for:
— Boneworks
— DCS World
added function to start ALVR minimized in tray
added option to auto start SteamVR if a HMD connects
Tested with SteamVR 1.10.20
Requires latest vc runtime link
If you have previously used ALVR, it is recommended to delete the old config found in %LOCALAPPDATA%\ALVR

https://github.com/JackD83/ALVR/releases

Experimental v10

Added proper hand skeleton and animation
ALVR is now using the Oculus Quest icons for SteamVR
stability improvements: If ALVR encounters an error, SteamVR sould not be affected anymore.
added logging into SteamVR: ALVR log entries can now be found in the SteamVR log
Requires latest vc runtime link
If you have previously used ALVR, it is recommended to delete the old config found in %LOCALAPPDATA%\ALVR

https://github.com/JackD83/ALVR/releases

Experimental v11

Fixed bug with unicode audio devices (Error 0x80004005)
Set High-Profile for AMF encoder
Added 66% scaling for older AMD GPUs
Updated client to latest Oculus SDK
improve loading scene quality
improved hand tracking by maxer456 (still experimental)

https://github.com/JackD83/ALVR/releases

PCのALVRサーバーアプリのアップデート

初めてALVRをインストールする場合は、下記の本家のALVRを一度インストールしておいた方が楽にインストールが出来ます。

さて、先ほどダウンロードした改善版のALVR.zipを任意の場所に解凍します。

なお、このファイルにはインストーラーは付いていません。

改善版のALVRを解凍したフォルダーの中身を全部、本家ALVRをインストールしたフォルダーに上書きしてしまいます。何も指定していなければ、「C:\Program Files\ALVR」にALVRが入っているかと思います。

私の場合、以前にインストールしていたALVRをアンインストールし、改善版ALVRを立ち上げたところ、Oculus Questを探しきれないようでした。上記の様に上書きするか、本家のALVRのフォルダー名を変えて、「C:\Program Files\ALVR」に改善版を置いた場合は、正常に動作しました。どちらにしろ、本家を前にインストールしておいた方が楽そうです。

Oculus QuestのALVRアプリを削除する

元々ALVRアプリを入れていた場合、Oculus Quest上のALVRアプリを削除します。

Oculus QuestをPCにUSBで接続し、SideQuestを立ち上げます。

左下の「My Apps」をクリックして、「ALVR」を探します。「ALVR」の右の歯車マークをクリックします。

すると下記の画面が出てくるので、赤い四角の「UNINSTALL APP」をクリックすると、アプリが削除されます。

なお、SideQuestが下記の図の様に「My Apps」がない場合、SideQuestのバージョンが古いです。新しいバージョンをダウンロードしてしまいましょう。

現在(2019/9/2)、v0.67が最新のようです。下記のサイトよりダウンロード、インストールを行ってください。

SideQuestのインストールについては下記の記事にまとめています。ご参考までに。

Oculus QuestにALVRアプリをインストールする

SideQuestの「My Apps」を表示します。

先ほどダウンロードした

「ALVRClient-v2.4.0_experimental_v6.apk」

をSideQuestの左上のロゴの部分にドラッグ&ドロップしてインストールします。

接続してみる

PCのALVRサーバーを立ち上げて、Oculus QuestのALVRアプリを立ち上げていきます。

WiFi環境の確認

Oculus QuestがWiFiで、PCがつながっているネットワークにつながっていることを確認して下さい。

PCのALVRの起動

スタートボタンに「ALVR」が追加されているはずですので、クリックします。

ALVRサーバーが立ち上がって、Oculus Questを探し始めます。

Oculus QuestのALVRの起動

Oculus Questのライブラリーから、「提供元不明のアプリ」を選択します。すると、「ALVR」が含まれた項目 (※バージョンにより若干表記が変わるようです) が追加されているはずですので、選択します。追加されていない場合、Oculus Questを再起動してみて下さい。

「ALVR」を起動すると下のような画面が出ます。PCのサーバーアプリの操作待ち状態です。
(※バージョンにより、表記が変わりますが基本は似た画面になります)

PC側で、ALVRサーバーアプリを操作して、Oculus Questと接続する

PCに戻り、ALVRサーバーアプリを見ると、Oculus Questの項目が追加されているはずです。(追加されていない場合は、ネットワーク上で見付けられていない可能性があります)

「Connect」ボタンを押します。

無事、Oculus Questと接続が出来ましたら、下の様な表示に変わります。上側にある「Start sever」を押すと、「SteamVR」が立ち上がります。

「SteamVR」が立ち上がると、下の感じでつながります。ヘッドセットとコントローラーのみの構成、と言うことなのでしょう。

Oculus Questを覗いてみる

「SteamVR」の画面がOculus Questに映ります。ワイヤレスで実現できている点でちょっと感動です。
Oculus Rift Sと比べるとやはり発色が鮮やかに感じます。文字はOculus Rift Sの方が読みやすいです。

(追記:2019/6/24)WiFi環境の整備

自宅のWifiで使ってみたのですが、どうも速度が出ません。

WiFi接続環境をいじってみた結果を下記の記事に書きました。ご参考までに。

本家ALVRと比べて

設定などは、以前の記事から変えていません。

表示されるコントローラーがOculus Questの物と同じ形状に変わっています。また、コントローラーから伸びるビームの角度が若干修正されているようです。

HMDのトラッキングは上がった気がします。

ただ、コントローラーの動きは以前よりも自然に追従していますが、ディレイが大きくなっています。

また、音は小さいながらもOculus Questから出ているようです。

音の設定について

PC上のALVRサーバー(記載時バージョン:v2.4.0-Experimental v5)の「Sound」の設定で、「Steam sound」にチェックを入れておくと、Oculus Questから音が出ます。

基本はPCで出している音をOclus Questに転送しているようです。他のPC上のアプリの音もOculus Questから聞くことが出来ます。

なお、私の環境では、非常に音が小さく、Oculus Questから音が出ていることに気が付きませんでした。

コントローラーの遅延について

PC上のALVRサーバー(記載時バージョン:v2.4.0-Experimental v5)の「Other」の設定欄にある「Controller Pose Offset」はコントローラーの遅延対策だそうです。
デフォルトでは、0.01が入っていましたが、0にすると、多少スムーズに。
-0.01等にすると、予測でのトラッキングを行いそうですが、素早い動きには、追従できなくなるようです。

まとめ

今回、ファームウェアがアップデートされたOculus Questにて、ALVRが使えるように、改善版のALVRのインストールを行いました。

改善版は、9/2地点ですでに「v2.4.0-Experimental v5」までバージョンを上げており、本家と同等以上の出来になっているのではないでしょうか。

ALVR v2.4.0-Experimental v5 の対応状況

○コントローラーがOculus Questの物になった
○HMDのトラッキングが上がった(?)
○コントローラーのトラッキング精度が上がった

・音はOculus Questから出るが小さめ 
・コントローラーのトラッキングの遅延大きいが、設定でマシになる
×コントローラーのバイブレーションは機能しない

後は、コントローラーのバイブレーションが機能すれば、PC用HMDとの大きな差はなくなるように思います。

参考にしたサイト

下記のサイトを参考にしました。

正直、作業としては上記のサイト以上のことは出来ておりません。本記事でもインストール手順は網羅していますが、上記のサイトの方が詳しく載っています。