🚪

Meta Quest Browserにnavigationが“標準実装”されたのでWebXRでVRモードのまま遷移できるようになりました

2022/12/06に公開

2022-12-03 にリリースされた Meta Quest Browser 24.4 で immersive navigation が “標準実装” されました! 標準実装、つまり chrome://flags で設定を変更する必要がありません! この immersive navigation により (一定の制限はありますが) VR モードを維持したまま別ページに遷移できる ようになりました!

ちなみに @rcabanier さんは Meta Quest Browser の WebXR まわりを担当している開発者です。

https://twitter.com/rcabanier/status/1598382690327097344

Meta Quest の OS は即日で 100% リリースされるわけではないこともあり、自分の手元にある Meta Quest Pro にはリリースから 1 週間が経過した 2022-12-10 になってようやくアップデートが降ってきました。

https://twitter.com/ikkou/status/1601238849107398656

むしろこれまで VR モードのままページ遷移できなかったの?

できませんでした!

これまでは VR モードで WebXR コンテンツ example1.html から別の WebXR コンテンツ example2.html に遷移するとき、その度に VR モードが解除され、通常の 2D モードになっていました。いわゆる “没入感” が削がれる状態でした。

ネイティブアプリと異なり、ストアでのアプリインストールが不要な WebXR コンテンツ、そのウェブの特性を生かして “ウェブサーフィン” のように様々な WebXR コンテンツを縦横無尽に遷移する…実はそんな “Web” コンテンツであればできそうなことができませんでした。

業界的にはその対応策として navigation API (immersive-web/navigation) の策定が進められていて、2021-11 時点では chrome://flags から明示的に許可することで、ようやく動作させることができました。

https://twitter.com/wakufactory/status/1463759428251897863

しかしこれはユーザー個人個人に設定を委ねる必要があるため、ブラウザの標準機能として利用するには時期尚早な感が否めませんでした。

しかし Meta Quest Browser 24.4 ではその設定が不要になりました!

WebXR コンテンツの開発に適している three.js や A-Frame には既に実装されているので、今すぐに試せる状態です。

https://aframe.io/docs/1.3.0/components/link.html

現時点での制限と回避策

制限

現時点で標準実装されているのは 同一オリジン (Same-Origin) に限られます。

同一オリジンの “オリジン” に関する詳細は省きますが、雑に言うと https://example.com/a.html から https://example.com/b.html へのページ遷移は同一オリジンなので VR モードを維持したまま遷移できます。対して https://example.com/a.html から https://example2.com/a.html へのページ遷移はオリジンが異なるため遷移時に VR モードが解除されます。

https://twitter.com/rcabanier/status/1598981310650818560?conversation=none

回避策

chrome://flagsWebXR navigation permission の設定は残されているので、Allowed にしてクロスオリジン (Cross-Origin) を許可してください、と示されていますが Cross-Origin を許可する選択肢はありませんでした……。

2022-12-12 23:25 JST 追記
設定を Allowed に変更すればクロスオリジンでも navigation が動作することが確認できました。

https://twitter.com/wakufactory/status/1601926793468211200


chrome://flagsWebXR navigation permissionAllowed に変更すればクロスオリジンでも動作する


冒頭でツイートを引用した @wakufactory さんが「メタバースの始まり」とおっしゃっていますが、まさにその機運を感じています。

ネイティブアプリベースのメタバースの場合、基本的にアプリ内のみでの移動 (ワールド間の移動) となり、アプリを超えての移動はできません。

しかしウェブアプリの世界においてそういった制限がありません。WebXR コンテンツの開発時に個別の対応が必要ではあるものの、いずれは VR モードのまま様々な WebXR コンテンツを飛び回れるようになるのではないでしょうか。

そのときに必要なのは WebXR コンテンツのための検索エンジンかもしれないですね! まずは「ディレクトリ型」から!

現場からは以上です!

Discussion