📝

#WebXR ( WebVR/WebAR ) の現状確認 2023 Winter

2023/12/01に公開

whoami

@ikkou a.k.a HEAVEN chan です。長らく WebXR 周辺の動向を追っていて、年次で WebXR に関する『現状確認』エントリを投下したり、WebXR に関する発信を続けています。

https://zenn.dev/ikkou/articles/8ffc1c3ea92e9f

https://zenn.dev/ikkou/articles/c2832ccbe6a078

本エントリは『現状確認 2023 Winter』として、昨年からのアップデートを中心に 2023-12-01 現在の WebXR 周辺の現状に触れていきます。

本エントリを読めば WebXR に関する最新の動向を “概ね” 理解できることを目的としています。

具体的な WebXR コンテンツの開発方法や A-Frame や Babylon.js などをはじめとする各種ライブラリ・フレームワークの詳細な使い方には言及していません。

Update 2022 Winter to 2023 Winter

2022-12-01 JST に公開した『#WebXR ( WebVR/WebAR ) の現状確認 2022 Winter』から 1 年間の差分の中で気になるトピックスをピックアップしました。

PWA Night vol.56 ~WebXR〜』登壇時に喋った内容と重複しているものも複数ありますが、補足となる情報などを加えています。
https://speakerdeck.com/ikkou/check-the-current-status-of-webxr-2023-autumn

  • WebXR Device API と関連する Module/API のステータス更新
  • 主要ブラウザの WebXR Device API 対応状況
  • XR 関連デバイスの WebXR Device API 対応状況
  • Apple 関連のアップデート
    • iOS 17 で WebXR Device API のフラグが消失
    • Apple Vision Pro の WebXR Device API 対応
    • HTML <model> Element のアップデート
  • WebXR と PWA (Progressive Web Apps) の現状
    • Meta Quest 3 の登場によって加速した Meta の WebXR 推し
    • PICO の Immersive PWA 正式対応
  • ゲームエンジンを用いた WebXR コンテンツの開発
  • The Metaverse Standards Forum の設立と W3C の参画のその後

■ WebXR Device API と関連する Module/API のステータス更新

WebXR Device API と関連する Module/API の現況に大きな動きはありません。参考までに Immersive Web Working/Community Group の対象となっている Module/API の一覧は次の通りです。

https://www.w3.org/immersive-web/list_spec.html

W3C の勧告プロセス

W3C の勧告プロセスは、かなり大雑把に言うと Editor’s Draft → Working Draft (WD) → Candidate Recommendation (CR) → Proposed Recommendation (PR) を経て正式勧告の Recommendation に至ります。より細かなプロセスは次のページを参照してください。

https://triple-underscore.github.io/w3c-standards-types-ja.html

2023-12-01 JST 現在、WebXR Device API と関連する Module/API の中で正式勧告の Recommendation またはそのひとつ手前の Proposed Recommendation (PR) になっているものはありません。

Editor’s Draft まではコミュニティドリブンの Immersive Web Community Group が中心になって策定を担い、Working Draft 以降は W3C メンバーのみで構成される Immersive Web Working Group が中心になって策定を担っています。

Immersive Web Working Group - Participants にメンバー一覧が掲載されています。Chairs を Apple, Google の方が務めている他、Magic Leap, Meta, Microsoft といったブラウザベンダーの方が多く参画しています。

https://www.w3.org/groups/wg/immersive-web/participants/

Candidate Recommendation Draft

Candidate Recommendation Draft は Candidate Recommendation (CR) に至るプロセスの途中にあり、Immersive Web Working/Community Group の総意を得られているものではありません。提案されている内容の実装はブラウザベンダーの自由に委ねられていますが、結果としてブラウザごとに差異が発生しています。

Working Draft

この 1 年間中に Working Draft から Candidate Recommendation Draft に移行した Module/API はなく、WebXR Layers API Level 1 のみ更新が加えられています。特筆すべきトピックはありません。

WebXR Depth Sensing Module がそろそろ Meta Quest で動くようになるかもしれない?

WebXR Depth Sensing Module については @ninisan_drumath san による「WebXR ( WebVR/WebAR ) Advent Calendar 2022」 13 日目の記事で触れられているので、モジュールの詳細はそちらを見てもらうとして、このモジュールは 1 年が経過した今も Android スマートフォンからしか動作しません。

https://zenn.dev/drumath2237/articles/02cee175fc7b8d

これが Meta Quest で動作したらどんなに嬉しいことか、と思うことがしばしばありますが、Meta 社の @cabanier san が Meta Quest 3 の Meta Quest Browser で動作するデモを公開しています。

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

これは Three.js によって実現しているようで、Three.js のリポジトリに PR を送り、mrdoob san とやり取りを続けています。現時点ではまだ Merge されていませんが、もしかすると Three.js で動作する未来が近いかもしれません。

https://github.com/mrdoob/three.js/pull/27154

Editor’s Draft

この 1 年間中に Editor’s Draft から Working Draft に移行した Module/API はありませんでしたが、WebXR Anchors Module には更新が加えられています。特筆すべきトピックはありません。

Draft Community Group Report

この 1 年間中に WebXR Plane Detection Module, WebXR Mesh Detection Module, The <model> element の 3 つに更新が加えられています。

前述の通り Draft Community Group Report は Immersive Web Community Group が中心となって策定を進めているものですが、面白いことにこのステータスにあるものはブラウザの独自実装が進んでいます。

☑ WebXR Plane Detection Module

平面を検出する WebXR Plane Detection Module は 2022 年時点で Meta Quest Browser が先行実装していて、ガーディアンで設定した平面を取得できます。

@wakufactory san による「WebXR ( WebVR/WebAR ) Advent Calendar 2022」 5 日目の記事で触れられています。

https://qiita.com/wakufactory/items/602bf4bc1ce075e7a279

☑ WebXR Mesh Detection Module

空間データとしてメッシュ情報を共有できる Meta Quest 2, Meta Quest 3, Meta Quest Pro であれば、平面を検出できる WebXR Plane Detection Module から一歩進んでメッシュ情報にアクセスできる WebXR Mesh Detection Module が動作します。

@wakufactory san による「WebXR ( WebVR/WebAR ) Advent Calendar 2023」 3 日目の記事で触れられています。

https://qiita.com/wakufactory/items/0b1d7867128f7634b3cf

Meta のヘルプページに記載されている通り、この Module を使う場合は初回アクセス時に room setup へのアクセス許諾を求められます。

https://www.meta.com/ja-jp/help/quest/articles/accounts/privacy-information-and-settings/spatial-data-settings/

また、WebXR Plane Detection Module, WebXR Mesh Detection Module ともにリアルタイムで平面とメッシュを検出しているわけではなく、あくまで事前にガーディアンで設定したものにアクセスできるということです。

Jason Harron san が Plane Detection ではなく Mesh Detection であることがわかりやすいデモを公開しています。

https://twitter.com/JRHarron/status/1718368416694710359

https://twitter.com/JRHarron/status/1719372402742677516

WebXR Samples の Proposals にもサンプルが掲載されています。

https://immersive-web.github.io/webxr-samples/proposals/mesh-detection.html

☑ The <model> element

Apple 独自の HTML <model> element については後続の Apple のパートで取り上げます。

☑ WebXR Raw Camera Access Module

カメラ画像を WebGLTexture として取得できる WebXR Raw Camera Access Module は、当初は chrome://flags から WebXR Incubation フラグの有効化が必要でしたが、2022 年末にリリースされた Chrome 107 からフラグの有効化が不要になっています。

@ninisan_drumath san による「WebXR ( WebVR/WebAR ) Advent Calendar 2022」 15 日目の記事で触れられています。また、記事中でも触れられている通り、Google が用意しているサンプルでも動作を確認できます。

https://zenn.dev/drumath2237/articles/86c9659d544605

https://storage.googleapis.com/chromium-webxr-test/r1067245/proposals/camera-access-barebones.html

また、Babylon.js 6.31.0 以降には、この WebXR Raw Camera Access Module が取り込まれているようです。

https://zenn.dev/drumath2237/articles/dfa518415a0730

☑ WebXR Marker Tracking Module

WebXR Marker Tracking Module は WebXR Device API で 2D 画像のトラッキングを実現するための Module です。前述の WebXR Raw Camera Access Module と同じように Google による先行実装となり、Chrome で動作します。

こちらも実際の挙動を Google が用意しているサンプルで確認できます。アクセス後、ArUco Markers のページにアクセスし、キャプションに Generated marker と記載されているマーカーにカメラをかざしてください。

https://storage.googleapis.com/chromium-webxr-test/r1067245/proposals/camera-access-marker.html

Incubations

Incubations はまだこれから議論が進められる段階にある “仕様の卵” です。議論が進むことで Draft Community Group Report に前進します。一例として The <model> element はこの Incubations のひとつでしたが、現在は Draft Community Group Report に移行しています。

興味深い “仕様の卵” がたくさんある Incubations ですが、Incubations だからといってブラウザの独自実装が進めないというわけではなく、例えば navigation は 2022 年末時点で Three.js や A-Frame に実装されています。

navigation については、私が担当した「WebXR ( WebVR/WebAR ) Advent Calendar 2022」 10 日目の記事で触れています。

https://zenn.dev/ikkou/articles/fe5b177a53c078

■ 主要ブラウザの WebXR Device API 対応状況


Image source. https://caniuse.com/?search=WebXR

2022 年時点の状況から大きな動きはありません。

レンダリングエンジンに Blink を搭載している Chromium 系の Microsoft Edge、Google Chrome、強力なプライバシー保護を謳う Brave は WebXR Device API に標準対応しています。

かつては必要だった chrome://flags の変更が不要 です。現在はその設定項目もありません。
ただし、不安定です。Chrome のバージョンアップで動作しなくなることもあります。過去には一定期間 Chrome で動作しないことがありました。

https://zenn.dev/ikkou/articles/5b93a8ca150709

なお、Android デバイスの場合は Chrome をインストールしていたとしても ARCore supported devices であることが必要です。一点注意として、この ARCore supported devices のページは、必ずしも最新の情報が記載されているわけではありません。一例として、手元にある Nothing Phone (1) の発売当初は ARCore に対応していなかったため、このリストに記載されていませんが、現在はバージョンアップによって ARCore に対応し、WebXR Device API も動作します。

参考までに Windows 環境下で動作確認済みのブラウザバージョンは次の通りです。

//TODO 最新バージョンで確認する

  • Google Chrome 118.0.5993.71
  • Google Chrome Beta 119.0.6045.21
  • Google Chrome Canary 120.0.6069.0
  • Microsoft Edge 118.0.2088.46

Gecko (Firefox 系)

レンダリングエンジンに Gecko を搭載している Firefox は Blink エンジン系とは異なり、about:configdom.vr.webxr.enabledtrue に変更する必要があります。これにより navigator.xr は有効化されますが、残念ながら immersive-vr, immersive-ar ともに動作しません。

参考までに Windows 環境下で動作確認済みのブラウザバージョンは次の通りです。

//TODO 最新バージョンで確認する

  • Firefox 119.0b9
  • Firefox Nightly 120.0a1

WebKit (Safari 系)

レンダリングエンジンに WebKit を搭載している Safari は iOS, iPadOS, macOS のすべてで非対応を貫いています。

WebKit (Safari 系) については、The <model> element 然り、Apple パートで詳しく説明します。

■ XR 関連デバイスの WebXR Device API 対応状況


Image source. https://immersiveweb.dev/

W3C Immersive Web Working and Community Groups が運営する Immersive Web Developer には Support Table for the WebXR Device API として、主要デバイスの WebXR Device API と関連する一部の Module/API の対応状況がまとめて掲載されています。

昨年同様、新しいハードウェアの登場にあわせて 2022 年時点の状況から WebXR Device API に対応している XR 関連デバイスが増加しました。

  • Blink (Chromium 系) のブラウザを搭載するハードウェア
    • Meta Quest Browser を搭載している Meta Quest Pro, Meta Quest 3 etc.
    • Edge を搭載している HoloLens 2
      • 2022 年に提供が終了されるまでは HoloLens 向けの Firefox Reality が使えましたが、後継の Wolvic は HoloLens 向けのビルドが提供されていません。
    • PICO ブラウザを搭載している PICO 4
  • Firefox Reality (Gecko (Firefox 系)) 後継の Wolvic を搭載するハードウェア
    • Lynx R-1
    • Huawei VR Glasses
    • ThinkReality A3
    • Think Reality VRX
  • 独自ブラウザ Helio を内蔵している Magic Leap 2
    • Helio 以外に Wolvic もインストールできます。
  • Nreal Light, XREAL Air, XREAL Air 2, XREAL Air 2 Pro
    • FarePlay For NReal (Light+Air)が対応
  • Safari on Apple Vision Pro

ちなみに Wolvic に関しては Chromium 系のものを並行して開発が進められているようです。

https://github.com/Igalia/wolvic-chromium

■ Apple 関連のアップデート

Apple 関連のトピックスとしてネガティブなものが 1 件、ポジティブなものが 2 件あります。特に WebXR Device API 関連では例年動きが芳しくない Apple ですが、今年 2022 年は久し振りに大きな動きがありました。ひとつ目とふたつ目については NDA の制限が解除される一般公開日にあわせてホットトピックとして記事を公開しています。

https://zenn.dev/ikkou/articles/bed2525cb68c79

😢 iOS 17 で WebXR Device API のフラグが消失

2023-09-19 JST に iOS 17 が一般公開されました。私は iOS 17 Developer Beta 時点から経過を見守っていましたが、結論として WebXR Device API のフラグが消失した状態での iOS 17 リリースとなりました。

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

iOS/iPadOS については Mozilla がリリースしている WebXR Viewer を使えば WebXR Device API のフラグが立ち、immersive-ar が動作するようになりますが、決して完璧な動作とは言い切れません。

navigator.xr が有効化されるだけで immersive-vrimmersive-ar も使えない不完全な状態だったとはいえ、iOS 16 系ではフラグだけは立てられました。このフラグすら立てられなくなり、iOS/iPadOS における WebXR Device API 対応は夢のまた夢になってしまったといっても過言ではないと考えています……。

😆 Apple Vision Pro の WebXR Device API 対応

WWDC23 で Apple 初の Spatial computing (空間コンピュータ) である Apple Vision Pro (以降 Vision Pro と表記) が発表されました。

https://www.apple.com/apple-vision-pro/

そして WWDC23 にあわせて更新された WebKit Blog ではこの Vision Pro の immersive-vr 対応に触れています。

Safari on Vision Pro currently has testable support for WebXR, available behind a feature flag while we collaborate with the W3C Immersive Web Working Group on updates to the web standard. WebKit supports the immersive-vr session type in WebXR. Vision Pro does not have external controllers. Instead, you can request the “hand-tracking” feature to let users interact with your content.

https://webkit.org/blog/14205/news-from-wwdc23-webkit-features-in-safari-17-beta/

iOS 17 系で WebXR Device API が入らなかったことから答え合わせは済んでいますが、冒頭で Safari on Vision Pro currently has testable support for WebXR と記載されている通り、これはあくまで Vision Pro に搭載される Safari の話です。iOS の Safari が対応するとは一言も書かれていません。

レンダリングエンジンは同じ WebKit ですが、iOS/iPadOS 向けの WebKit と Vision Pro 向けの WebKit で機能が分離しているようです。


Image source. https://developer.apple.com/videos/play/wwdc2023/10279/

機能は分離していますが、iOS/iPadOS 16 系のときと同じように WebKit Feature Flags からユーザー自身で有効化する必要があります。また、immersive-vr とハンドトラッキングの WebXR Hand Input Module に対応することは明言されていますが、immersive-ar への対応は明言されていません。WebKit Feature Flags にフラグはあるにもかかわらず、です。

つまり工場出荷時状態では WebXR Device API は動作しないということになります。もっと言うと『Vision Pro は WebXR Device API に対応しているから Vision Pro ユーザー向けに WebXR Device API を生かした WebXR コンテンツを提供する』といったことは、ユーザー自身に設定の変更を求めることとなり、Vision Pro ユーザーなら誰もが楽しめるとは言えません。さらに immersive-ar ともなると……。

Vision Pro は Apple として初めての XR デバイスもとい空間コンピュータであり、他の XR 系デバイスとは異なります。同じ WebXR Device API に対応するとはいえ、WWDC23 のセッション動画「Meet Safari for spatial computing」を見る限り、これまでの考え方とは別に Vision Pro に最適化する必要があるので、未見の方は視聴を強く推奨します。

https://developer.apple.com/videos/play/wwdc2023/10279/


Image source. https://developer.apple.com/videos/play/wwdc2023/10279/

余談ですが、この動画の中で Babylon.js, Three.js, PLAYCANVAS はビルトインでサポートされていることが明言されています。特に Babylon.js は日本の開発者コミュニティも盛り上がっているので、今から Vision Pro で WebXR をやるぞ!という方にもおすすめかもしれません。

👍 HTML <model> Element のアップデート


Image source. https://developer.apple.com/videos/play/wwdc2023/10279/

HTML <model> Element のアップデートについても WWDC23 のセッション動画「Meet Safari for spatial computing」で取り上げられています。

仕様としては Incubations から Draft Community Group Report に移行した The <model> element です。現時点では WebKit のための仕様と言えます。もちろん Editor は Apple の方です。

この HTML <model> Element は iOS 14.5 で追加された 3D モデルを表示する要素です。似たものとして AR Quick Look が挙げられますが、AR Quick Look は画像に対して USDZ ファイルのリンクを設定することで、別ウインドウとして AR として表示、または指でぐりぐり動かせる 3D モデルとして表示するものです。

対して HTML <model> Element は別ウインドウを立ち上げず、画面内に 3D モデルを表示し、指でぐりぐり動かせるようにするものです。これは特別に新しいものではなく、例えば Three.js で OBJ ファイルを表示していたことと同じです。ただし、HTML <model> Element であれば外部ライブラリの読み込みは不要です。

もうひとつ <model> という文字列も含めて似たものとして Google 発の <model-viewer> が挙げられますが、<model-viewer> は Android 向けの glTF / GLB と iOS/iPadOS 向けの USDZ 両方に対応していることに対し、HTML <model> Element は iOS/iPadOS 向け Safari 専用の要素となります。その分、外部ライブラリの読み込みは不要で、シンプルに記述できます。

iOS 14.5 のリリース直後に WebAR の作成ソリューション palanAR を提供する palan 社が記事を公開していますが、当時は期待する動作ではありませんでした。

残念ながら現時点ではまだレンダリングは対応されていないようです。

https://bagelee.com/programming/3d-model-safari/

この HTML <model> Element が Vision Pro のリリースにあわせて、いよいよ表立って動き出す形になります。

それぞれの記述方法の違いは次の通りです。

AR Quick Look で USDZ ファイルを表示する例

AR Quick Look で USDZ ファイルを表示する例
<a rel="ar" href="/path/to/model.usdz">
  <img src="/path/to/model-thumbnail.jpg">
</a>

AR Quick Look では、画像に対して USDZ ファイルをリンクします。フラグの有効化は必要ありません。iOS, iPadOS, visionOS の Safari 以外でアクセスすると USDZ ファイルのダウンロードが始まってしまいます。(※ visionOS の挙動は visionOS simulator で確認してください)
Windows PC や macOS からのアクセス、Android スマートフォンからのアクセスを考慮する場合は、いわゆる出し分けが必要になります。

HTML <model> Element で USDZ ファイルを表示する例

HTML <model> Element で USDZ ファイルを表示する例
<model interactive>
  <source src="/path/to/model.usdz">
</model>

HTML <model> Element では USDZ ファイルを interactive 属性付きの model 要素でくくります。AR Quick Look と異なり、非対応ブラウザでは何も表示されません。

AR Quick Look と同じように、Windows PC や macOS からのアクセス、Android スマートフォンからのアクセス、さらにフラグを有効化していない Safari からのアクセスを考慮する場合は、やはり出し分けが必要になります。AR Quick Look と異なり、画像が表示されることもないため、代替手段の必要性は強いと考えています。

<model-viewer> で USDZ ファイルを表示する例

<model-viewer> で明示的に USDZ ファイルを表示する例
<!-- Import the component -->
<script type="module" src="https://ajax.googleapis.com/ajax/libs/model-viewer/3.3.0/model-viewer.min.js"></script>

<!-- Use it like any other HTML element -->
<model-viewer src="/path/to/model.glb" ar camera-controls ios-src="/path/to/model.usdz"></model-viewer>

<model-viewer> v1.7.0 で glTF/GLB ファイルからの USDZ ファイル自動生成機能が追加されているので ios-src 属性はオプションとなっています。明示的に USDZ ファイルを指定しなければ自動生成機能され、自動生成される USDZ ファイルの品質に課題がある場合 (100% 完璧に再現できるとは限りません) は引き続き ios-src 属性を利用できます。

https://github.com/google/model-viewer/releases/tag/v1.7.0

<model-viewer> は外部ライブラリとして model-viewer.min.js の読み込みが必要となります。その上で model-viewer 要素を使って glTF/GLB ファイルと USDZ ファイルを読み込むことで、Windows PC や macOS そして iOS, iPadOS, visionOS から Android といった非常に多くのデバイスを横断して 3D モデルの表示と、スマートフォンデバイスにおいては AR の表示が可能となります。

iOS, iPadOS, visionOS だけを対象としたウェブサイトというのはあまり現実的ではなく、出し分けの手間も考慮すると、実運用上は単体の AR Quick Look や HTML <model> Element ではなく、<model-viewer> が現実的な選択肢となるでしょう。更新も頻繁に行われています。

■ WebXR と PWA (Progressive Web Apps) の現状

安価に手に入れられるスタンドアローン VR HMD の双璧をなす Meta Quest シリーズを擁する Meta の事例と、PIC 4 を擁する PICO それぞれにおける、WebXR と PWA の現状を紹介します。

Meta Quest 3 の登場によって加速した Meta の WebXR 推し

前述の通り Meta Connect 2023 でカラーパスー機能とデプスセンサーを搭載してもない上位機種であるはずの Meta Quest Pro よりも安価な Meta Quest 3 が登場しました。

Meta Quest 3 に内蔵されている Meta Quest Browser は WebXR Device API に対応していて、WebVR も WebAR も体験でき、さらに Meta Quest 系では唯一 WebXR Mesh Detection Module を利用できるデバイスとなっています。主にゲーム文脈で語られることが多いように思えますが、WebXR Device API を存分に使いこなしたいのであれば Meta Quest 3 を買う理由としては必要十分だと考えています。

そんな Meta Quest 3 を発売している Meta 社ですが、実は Oculus 社が Meta 社に名前を変える以前から PWA (Progressive Web Apps) を推しています。そして PWA に関連して WebXR コンテンツの開発方法もドキュメントとして用意しています。

https://developer.oculus.com/pwa/

https://developer.oculus.com/webxr/

では Meta 社に変わってからどうかと言うと、社名変更後の Meta Connect 2021 では「Build Great WebXR Experiences」というセッションを、今年の Meta Connect 2023 で「Building Mixed Reality Experiences with WebXR」と題したセッションを持つ程度には継続して推しているように見えます。実際 Immersive Web Working Group のメンバーとして Meta 社の方が 9 名を連ねています。これは Apple 社のメンバー数と同じです。

https://www.youtube.com/watch?v=xdr4BM0jgF8

https://www.youtube.com/watch?v=M2QTwirp-B8

さらに Meta Connect 2023 の翌月には AWS と一緒に「Meta and AWS WebXR Hackathon!」を開催しています。(残念ながら US 現地での開催となり参加できませんでした!)

https://meta-aws-webxr-hackathon.splashthat.com/

遡ると Meta 社は Facebook 時代に React 360 という React ベースの WebVR ライブラリをリリースしていました。今や React はわりと当たり前の技術になっていますが、残念ながらこの React 360 は既にディスコンになっています。

React 360 は時代が早すぎた事例のひとつと言えますが、Facebook 改め Meta 社は React 以外にも GraphQLyarn をはじめとして Web 系の技術にコミットしてきています。そういった背景を踏まえると、同じ Web 系の技術である WebXR を推していくこともそう不思議ではありません。

閑話休題。その Meta 社は Meta Quest 3 のリリースにあわせて PWA を再プッシュしているようです。それはフリーライター/ジャーナリストの西田宗千佳さん (@mnishi41) による Meta 社 CTO・VR責任者へのインタビュー「MetaのVRとAI戦略はどこに行くのか。CTO・VR責任者に現地取材」中に思いがけず登場しています。

ラブキン:私たちのMRに対するアプローチは、開発者がすでに慣れ親しんでいる技術スタックを使い、可能な限り開発を容易にすることです。

例えばPWA(プログレッシブ・ウェブアプリケーション)は、MR向けに特別な品質管理をする必要があまりなく、MR向けアプリケーションを作るための素晴らしい手段です。

また、Quest SDKで作られたAndroidアプリは、ネイティブでシームレスに動作します。Androidアプリケーションを、お気に入りの言語で開発することができます。

私たちは今後、MRのために多数の開発を行ないます。おそらく2、3年はかかると思いますが、もっと簡単に開発できるようにします。

例えば、あるエンジニアがデモを作ったんです。地面に穴を開けて、その中に入ったりすることもできるものなのですけど。

その実現に必要だったのは、たった2人のエンジニアと2日間の時間だけです。JavaScriptのコードと基本的なウェブ技術、そして彼らが完全に慣れ親しんだ発想さえあれば十分。Quest 3で動作し、ネイティブ・アプリケーションのように見えます。

そうやって私たちは、MRとの距離を縮めようとしています。開発のために、まったく新しいエンジンや言語を学ばせないようにして、可能な限り透明性を高めたいのです。

https://av.watch.impress.co.jp/docs/series/rt/1536704.html

特に重要なのは強調している箇所です。まず、Meta 社は Meta Quest 3 で推している MR 機能を PWA に関連付けて考えています。その上で、実際に WebXR コンテンツを開発し、ネイティブアプリケーションと遜色ないことまで示唆しています。

PWA であれば、それがネイティブアプリケーションではなくウェブアプリケーションであるにもかかわらず、厳格な審査のある Meta Store にも、その Meta Store より審査のハードルが低い App Lab にも、WebXR コンテンツをリリースできるチャンスがあります。

Meta プラットフォームにおける PWA の目立つ国内事例は 2021 年に U-NEXT さんがリリースしたものくらいしかありませんが、これも時期が早すぎた感があります。環境が整ってきた今、Meta プラットフォームで WebXR コンテンツを PWA としてリリースするのは再考しても良い時期なのかもしれません。

PICO の Immersive PWA 正式対応

2023-10-30 に WebXR な PWA の対応、PICO の表現で言うところの Immersive PWA の正式対応を発表しました。このアップデートによって PICO プラットフォームでも WebXR な PWA を PICO ストアに掲載できるようになりました。

https://twitter.com/PICOXR_Dev/status/1719006286149550382

https://developer-global.pico-interactive.com/news/web/

Meta 同様、開発者向けページ PICO Developer に WebXR に特化したページを用意しています。

https://developer-global.pico-interactive.com/document/web/introduce-webxr-standards/

これまでの WebXR コンテンツは、まず 2D 画面のウェブサイトを表示した上で VR ボタンや AR ボタンを押して WebXR モードに移行する必要がありました。しかし、PICO の Immersive PWA であればライブラリに登録した PWA を 2D 画面を挟むことなく、直接 WebXR モードで開けます。もはや通常のネイティブアプリと見分けがつきません。

Meta Quest Browser と比較すると WebAR モードに対応していないなど、やや遅れ気味な PICO ブラウザでしたが、ここにきて Meta Quest Browser に勝るとも劣らぬパワーを身に着けたと言えます。

この今までとは違う方向からの実装について、Meta 社の @cabanier san は疑義を呈しています。

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

この背景には、PICO は Immersive Web Community Group, Immersive Web Working Group のどちらにも参画しておらず、いわゆる Web 標準と言える W3C の仕様策定には携わっていないという事情があるように思われます。もちろん PICO ブラウザのために W3C の仕様策定に参画する必要はなく、むしろ制限を受けずに自由に開発できるという観点では、ある意味で PICO のやり方は優れているのかもしれません。

この Immersive PWA はあくまで PICO ブラウザでのみ動作するものであり、広く WebXR コンテンツとして展開するには課題があるかもしれません。しかし Meta Quest Browser でも PWA は動作するので、WebXR モードへの移行にブラウザでアクセスしてワンアクション必要になるか、ライブラリから直接 WebXR モードで起動できるかの違いでしかないとも言えます。そういったことを踏まえると今後 WebXR コンテンツを PWA として開発することの必然性はやはり高いのかもしれません。

■ゲームエンジンを用いた WebXR コンテンツの開発

XR 系コンテンツの開発者の多くは Unity を用いていますが、WebXR は Web 技術をベースにしていることもあり、本来であればいわゆる Web フロントエンドエンジニアの領域となります。しかし両者が交わる機会は少なく、結果的に WebXR コンテンツの開発に携わる人がそう多くない状況にあると考えています。

Unity 開発者からすると JavaScript か…といった思いがあるかもしれませんが、Unity で開発したものを WebXR として出力できます。かつては Mozilla がリリースしていた WebXR Exporter というアセットがその方法でしたが、2020 年時点で更新が止まっています。

現在は @DePanther san が開発している WebXR Export がその代替手段としてデファクトスタンダードになっています。奇しくも先日 2023-11-26 には Unity XR Interaction Toolkit に対応したバージョンがリリースされました。

https://twitter.com/DePanther/status/1728492390124597716

本記事では Unity における WebXR コンテンツ開発について深く触れません。@korinVR san が継続的にアップデートしている VR 開発メモの「Unity + WebXR開発メモ(Meta Quest、Chrome対応)」が非常に参考になるので、Unity で WebXR やりたい!という方はまず覗いてみてください。

https://tech.framesynthesis.co.jp/unity/webxr/

■The Metaverse Standards Forum の設立と W3C の参画のその後

昨年の現状確認でも触れていますが、昨年 2022-06-21 に Khronos Group が主幹事となり、メタバースの相互運用の標準化を図る団体として The Metaverse Standards Forum が設立されました。

https://metaverse-standards.org/

その後、11 月に公開された資料を見ると glTF/USD 3D Asset Interoperability (visuals, behaviors) ワーキンググループが発足していますが、その後の動向を確認してみましょう。最新の状況は 2023-04-14 PT に公開された FORUM OVERVIEW SLIDE DECK から確認できます。


Image source. FORUM OVERVIEW SLIDE DECK
© Metaverse Standards Forum 2023 - (Licensed under CC BY 4.0)

このワーキンググループに関連する取り組みが P.13 に掲載されていますが、2022 August に公開された大きな変更はありませんでした。


Image source. FORUM OVERVIEW SLIDE DECK
© Metaverse Standards Forum 2023 - (Licensed under CC BY 4.0)

Metaverse Standards Forum 関連の情報はスライドだけでなく、YouTube @@metaversestandardsforum にも動画として公開されています。

今年 8 月に公開された「USD glTF Physics Update - Eoin Mcloughlin & Adam Moravansky」は、同ワーキンググループの活動に興味がある方は目を通しておくと良いでしょう。

https://www.youtube.com/watch?v=GphV2zSOHic

2023 年の WebXR 界隈の概観と 2024 年の WebXR 界隈の予測

XR 界隈全体を俯瞰すると Meta Quest 3 がリリースされ、VR から MR への流れが加速したように感じています。WebXR に関しては WebMR といった概念は存在せず、WebVR と WebAR がシームレスに WebXR として存在していますが、Meta 然り PICO 然りここにきて双方 PWA を推しているので、市場がこのムーブメントをどう捉えるかが肝になってくるのではないかと考えています。ひとまず WebXR コンテンツ開発者は PWA な WebXR コンテンツを作って各ストアに出しましょう!

2022 年末時点では WebXR × メタバースなムーブメントがありましたが、メタバースムーブメントは良くも悪くもガートナーのハイプ・サイクルで言うところの幻滅期入りし、一定の淘汰が発生したと考えています。その文脈で言うと去年も取り上げているブラウザメタバースを実現する HIKKY 社の Vket Cloud は今年に入って一般提供を開始し、さまざまな場所で使われ始めています。こういった事例は今後も一定増えていくのではないでしょうか。

本記事では、主に開発面を中心としてビジネス面についてはそう多く触れていませんが、それはまた別の記事で触れたいと考えています!


現場からは以上です!

Discussion