はじめに
Meta Quest 3向けのVRアプリをUnityで開発しているとき、Meta Horizon LinkでPCと接続できているにもかかわらず、UnityのPlayボタンを押してもVR空間が表示されず、PCのデスクトップ画面内でGameビューが再生されるだけ、という問題に遭遇しました。
今回は、この問題を解決できたので、Meta Horizon LinkでUnityのPlayモードでVRを実行する方法、実際に行った対処についてまとめます。
同じような症状で悩んでいる方の参考になれば幸いです。
開発環境
今回の開発環境は以下のとおりです。
特にLinkを使用する際の機能要件には注意してください。
https://www.meta.com/ja-jp/help/quest/140991407990979/?srsltid=AU7gw4U6Y66SQbMGPR0FWI-LeMor2okPv7LSHgPCiJWVcMvRvRHuPPjN
環境
ヘッドセット Meta Quest 3
ゲームエンジン Unity 6.3(6000.3)
SDK Meta XR Core SDK 201
XRプラグイン OpenXR
※Unityのバージョンは2022 LTSでも動作しました。
Meta Horizon Linkとは?
Meta Horizon Link(以降 Link)は、Meta QuestシリーズのヘッドセットをPCに接続し、PC上で動作するVRアプリをヘッドセットで利用するための仕組みです。
通常、Quest向けのアプリはAndroid向けにビルドし、ヘッドセット本体にインストールして実行します。一方、Linkを利用すると、PC上でVRアプリを動作させ、その映像をQuestのディスプレイに表示できます。
この方法には、Unityで開発中のアプリを確認する際に、毎回ビルドしてQuestにインストールする必要がないというメリットがあります。また、Unityエディタ内のコンソールを確認できるのも大きなメリットです。
Quest Linkを使った開発の流れ
基本的には、次のような流れでVRアプリを実行します。
- PCにUnityと必要なXR関連パッケージをインストールする。
- Meta Quest 3をUSBケーブルなどでPCに接続する。
(ただし、Air Linkを使用する場合は不要) - ヘッドセット内でMeta Horizon Linkを起動する。
- UnityエディタでVRシーンを開く。
- UnityのPlayボタンを押す。
- 実行中のVRシーンがQuestのヘッドセット内に表示される。
ざっくりと説明したので詳細な流れは公式サイトで確認して下さい。
https://developers.meta.com/vr/documentation/unity/unity-link
このように、Quest Linkを利用すれば、開発中のVRアプリをUnityエディタから直接実行して動作確認できます。
こうすることでアプリをいちいちビルドせずとも、効率的に開発を進めることができます。
(特に、UIの位置調整などの場面で役立ちます)
また、使用するUSBケーブルはMeta純正のLinkケーブルを使用する必要はありません。
USB3.0のデータ伝送に対応したケーブルであれば、TypeC to Cケーブルでなくても問題なくLinkは使用できます。
筆者の環境もUSB Type-A to Cケーブルを使っています。
また、AirLinkは接続が安定しないのでお勧めはしませんが、パススルーを使わないような軽いアプリケーションの動作確認には十分です。
今回発生した問題
今回、Meta Quest 3をQuest LinkでPCに接続し、UnityでVRシーンを実行しようとしました。
しかし、以下のような問題が発生しました。
- Quest Linkを使ったPCとQuestの接続自体は正常にできている
- UnityのPlayボタンを押しても、PC上のGameビューでシーンが再生されるだけ
- Questのヘッドセット内ではVR空間に切り替わらない
- Quest Linkのホーム画面から表示が切り替わらない
(Linkを確認しても、PCはQuestを正常に認識している)
(ここでウィンドウのPlayボタンを押せばQuestでアプリの動きが再生されるはず!)
(むなしく動くGameビュー、、。)
PC上ではGameビューが再生されているものの、ヘッドセット内にはVR空間が表示されませんでした。
このように、QuestとPCの接続自体はできているにもかかわらず、UnityのPlayモードでVRアプリを実行する部分が期待どおりに動作していませんでした。
解決方法 Play Mode OpenXR RuntimeをOculusに変更する
今回、最も効果があった解決方法は、Play Mode OpenXR Runtimeを「Oculus (OpenXR)」に設定することでした。
Unityの設定画面から、以下の手順で確認します。
- Unityのメニューから Edit > Project Settings を開く
- 左側のメニューから XR Plug-in Management > OpenXR を選択する
- Play Mode OpenXR Runtime の項目を確認する
- 設定を Oculus (Oculus OpenXR) に変更する
この設定を変更したところ、これまでPC上のGameビューで再生されるだけだったシーンが、Meta Quest 3のヘッドセット内にもVR空間として正常に表示されるようになりました。
今回の問題は、Playモードで使用するOpenXR Runtimeの設定が原因でした。Quest LinkでPCとヘッドセットを接続できていても、Unity側で適切なRuntimeが選択されていなければ、期待どおりにプレビューが起動しない場合があります。
同じ症状が発生した場合は、まずこの設定を確認してみてください。
まとめ
今回は、Meta Quest 3をQuest LinkでPCに接続しているにもかかわらず、UnityのPlayモードでVR空間が表示されない問題と、その解決方法について紹介しました。
今回の問題は、Edit > Project Settings > XR Plug-in Management > OpenXR にある「Play Mode OpenXR Runtime」を「Oculus (Oculus OpenXR)」に変更することで解決しました。
Quest LinkでPCとヘッドセットが正常に接続できていても、Unity側の設定によっては、PlayモードでVRが正常に起動しない場合があります。同じように、Playボタンを押してもPCのGameビューが再生されるだけで、ヘッドセット内にVR空間が表示されない場合は、まずこの設定を確認してみてください。
Quest Linkを利用すれば、アプリをビルドしてヘッドセットにインストールする手間を省きながら、Unityエディタ上で動作を確認できます。特に、VR空間内のUIの位置や大きさを調整する際には便利なので、ぜひ活用してみてください。
初投稿だったので拙かった部分もあるかとは思いますが、参考になれば幸いです。
何かご質問等あればお気軽にどうぞ。





