MkItYs

MkItYs > 音楽・漫画・VR・自律制御 > 

images

PC向けのVRアプリを、スタンドアロンのHMDで体験させる:Quest 2, Oculus, ALVR/ALXR, Virtual Desktop

images

- 2022.07.24

スタンドアロンのHMDでも、PC向けに作ったVRアプリを体験してもらうことができます。

関連


作ったアプリを携帯端末やHMDで動かす:Android (Quest 2) , adb

検証


送信側
OS:Windows 10
XRラインタイム/XR送信サーバ/音声送信サーバ:Oculus
XRラインタイム:SteamVR
XR送信サーバ/音声送信サーバ:Virtual Desktop Streamer
XR送信サーバ:ALVR-Server
音声送信サーバ:VB-Audio
受信側
HMD:Quest 2
XR受信クライアント/音声受信クライアント:ALVR-Client, ALXR-Client
XR受信クライアント/音声受信クライアント:Virtual Desktop

全般


スタンドアロンのHMD(Quest 2 )の場合、次のいずれかのアプリを介して、PC向けに作ったVRアプリを体験してもらうことができます:[※1]

Oculus
Virtual Desktop
ALVR/ALXR

※1
いずれのアプリでも、起動前に所定のやり方で、XRランタイム(OpenXR Runtime)に指定しておく必要があります。

個別:サーバ&クライアント:Oculus


有線のUSB3接続(Oculus Link )、および無線LAN(Oculus Air Link )接続に対応しています。

HMD(Quest 2 )に付属のアプリです。

個別:サーバ&クライアント:Virtual Desktop


無線LAN、および広域ネット経由で、PC向けVRアプリの映像をHMDに転送します:

https://www.vrdesktop.net/

PC側に設置するサーバアプリと、HMD側に設置するクライアントアプリに分かれています(クライアントアプリは、HMDのストアから購入〜設置します):

Virtual Desktop Streamer …… サーバアプリ(対応OS:Windows, macOS)
Virtual Desktop …… クライアントアプリ(対応OS:Quest 2, ...)

なお、映像/音声を転送するのに、次のアプリを必要とします:

SteamVR …… 映像の転送
VB-Audio …… 音声の転送(広域ネット経由の場合に必要です)

個別:サーバ&クライアント:ALVR


無線LAN経由で、PC向けVRアプリの映像をHMDに転送します。

有志によるパブリックドメインのソフトとして、無償でメンテナンスされています:[※1]

https://github.com/alvr-org/ALVR
https://github.com/alvr-org/ALVR/wiki/ …… ドキュメント

PC側に設置するサーバアプリと、HMD側に設置するクライアントアプリに分かれています(クライアントアプリは、携帯端末(Android )向けの操作アプリ(adb )から、HMD(Quest 2 )に設置します):

ALVR-Server (alvr_server_windows.zip) …… サーバアプリ(対応OS:Windows)
ALVR-Client (alvr_client_oculus_quest.apk) …… クライアントアプリ:独自規格(OpenVR)版(対応OS:Quest 2, ...)

なお、映像/音声を転送するのに、次のアプリを必要とします:[※2]

SteamVR …… 映像の転送
VB-Audio …… 音声の転送

※1
メンテナだったzarik5氏が辞めることになり、あとを継ぐことをKorejan 氏が検討していますが、状況は流動的です(2022.08.02)。
※2
Unity のエディタで再生する場合、XRプラグインをOpenXRにする必要があります(2022.08.21)。

個別:クライアント:ALXR-Client


ALVRのクライアントアプリについては、試験的に、XRの標準規格(OpenXR)版も、有志により提供されています:[※1][※2]

https://github.com/korejan/ALVR
https://github.com/korejan/ALVR/wiki/ALXR-Client …… ドキュメント
ALXR-Client (alxr-client-quest.apk) …… クライアントアプリ:標準規格(OpenXR)版(対応OS:Quest 2, ...)

このクライアントアプリ(ALXR-Client )を使う場合、サーバアプリ(ALVR-Server )側には、次の設定が必要です:

settings > video > foveated encoding: <off>

グリップボタンの問題

ALXR-Client のグリップボタンが(Quest のv46 から)効かなくった問題ですが、解決したみたいですね(2022.11.30):[※3]

https://twitter.com/0GUzzuqPjUVpY57/status/1597730631357632512

問題の原因は、OpenXRのこの拡張機能だったよう:XR_MSFT_hand_interaction:

https://registry.khronos.org/OpenXR/specs/1.0/html/xrspec.html#XR_MSFT_hand_interaction

それにしても最初の報告(2022.10.13)から1か月半……メタ社でも現象をなかなか再現できなかったのは、拡張機能の実装と使用、いろいろ問題があったからのようですが(メタ社側もv47 で対応かな?):

https://forums.oculusvr.com/t5/OpenXR-Development/grip-button-no-longer-works-with-v46/td-p/992030/page/4

※1
これはKorejan 氏の独自プロジェクトです:
https://twitter.com/0GUzzuqPjUVpY57
※2
現時点では試験的な実装です。じっさい、パソコン側の負荷が高いとコントローラのトラッキングが乱れるなど、安定して使える状態ではないようです(2022.07.24)。
※3
ちなみにSteamVRのコントローラのバインド・オプションを使えば、グリップの機能をほかのボタンに割り当てられるので、それほど困った人はいなかったはず。