Upgrade to Pro — share decks privately, control downloads, hide ads and more …

あなたの知らないWebXR Device APIの話を軽率に / about-webxr-de...

あなたの知らないWebXR Device APIの話を軽率に / about-webxr-device-api-you-dont-know

にー兄さん

December 19, 2024
Tweet

More Decks by にー兄さん

Other Decks in Technology

Transcript

  1. アジェンダ 1. はじめに 2. WebXR/WebXR Device API 3. 個人的面白いWebXR Device

    APIトピックス 4. Apple Vision Pro 5. Meta Quest 6. Wolvic 7. Meta Immersive Web Emulator Runtime 8. おわりに
  2. 本日の話 昨年に引き続きWebXR Device APIの話です XR Kaigi 2024のテーマは「More Immersive, More Spatial」

    WebXRの話でも、特に非モバイル向けにフォーカス 個人的に面白いと思う話題をピックアップ 本日のゴール: 「WebXR Device APIってこんなことできるんだ!」と感じてもらう
  3. WebXR Device APIとは WebXRのAPIにおける”標準仕様” W3CのImmersive Web WGが策定 https://immersiveweb.dev/ ブラウザの標準機能として実装されてい るため、

    サードパーティを必要としな い Three.js・Babylon.js・PlayCanvasな どを使う場合は 内部的にWebXR Device APIを使う構成 になっている WebXR
  4. HMDとDevice API HMDの場合はiOSほど制限のある環境は今のところない 主要なHMD環境は少なくともWebXRを起動できるようなブラウザを搭載 (e.g. Quest, VisionPro, PICO, HoloLens…) WebXR

    Device APIを気兼ねなく使える 8thwallのMetaversal Deploymentのような モバイルでは非DeviceAPIだったツールも 独自エンジンとDeviceAPIを切り替えられるようにしている(すごい) 非モバイルデバイスの状況はDeviceAPIが目指す理想状態に近い
  5. Safari on visionOS Vision Proに搭載されているブラウザはSafari Safari on visionOSではWebXR Device APIが使える

    visionOS 2.0からフラグの有効化不要で WebXRアプリの実行が可能に WWDC 2024でもWebXRに関係するセッションが2つ Build immersive web experiences with WebXR Optimize for the spatial web
  6. Safari on visionOSで使え る機能 VRモードは使用可能 ARモードは使用不可能 プライバシーの観点からカメラの アクセスができない状況 Hand Input(ハンドトラッキング)

    が使用可能 Immersive Webのサポートテーブル でも同様の記述 『News from WWDC24:WebKit in Safari 18 beta』より引用 https://webkit.org/blog/15443/news-from-wwdc24- webkit-in-safari-18-beta/
  7. Meta QuestとDevice APIの概要 Meta Quest3をはじめとするデバイスではMeta Questブラウザを搭載 もちろんMeta QuestブラウザはWebXR Device API対応

    WebXR Incubation Flagの有効化は必要なものもある Meta Questブラウザは多くのWebXR Moduleを実装している モバイルでは動かないような機能もいくつかあり、触っていて楽しい
  8. Mesh Detection WebXR Mesh Detection Module   https://immersive- web.github.io/real-world-meshing/ 空間の形状を取得できる機能 事前にスキャンしてあるメッシュを取得

    できる形なため メッシュは動的に変わらない WebXR SamplesのProposal欄にサンプ ルがあるので、気軽に試すには良い WebXR SampleのAR Mesh Detectionが動作している様子
  9. Body Tracking WebXR Body Tracking Module https://cabanier.github.io/webxr- body-tracking/ Quest3の場合、 手と頭から全身骨格の姿勢を推定する

    ユニークな機能 WebXR Samplesにはサンプルがない が、 個人的に試せるものを公開しています https://drumath2237.github.io/babylon- body-tracking-testbed/ Quest3 WebXR Body Tracking testbed (Babylon.js) Quest3 WebXR Body Tracking testbed (Babylon.js) にー兄さん にー兄さん
  10. Depth Sensing WebXR Depth Sensing Module https://www.w3.org/TR/webxr- depth-sensing-1/ Depth画像を取得できる機能 オクルージョンや衝突判定などに活用で

    きる XR体験のプレゼンスがぐっと上がる仕 組みなので注目している Chrome for Andoroidにも実装されて いるが、 画像フォーマット定義に齟齬 があるようでそのままでは動かない可能 性もある depth quest depth quest にー兄さん にー兄さん
  11. Wolvicに期待する部分 Androidベース・SnapdragonSpaces系端末に広く対応 Quest系, Vive Focus, PICO系 ThinkReality A3 / Lynx

    R1 新しいXRデバイスが出てきている PICO 4 Ultra QONOQ Devices MiRZA Quest 3S Meta Orion
  12. IWERの面白い部分 IWERのAPIは3Dライブラリ非依存 シミュレーションするデバイスの設定や 操作を XRDevice クラスに集約している 出来合いのデバイス設定が提供されていて カスタマイズも可能 xrDevice.ipd =

    0.063; xrDevice.fovy = Math.PI / 2; const leftController = xrDevice.hands.left; // nullチェック略 leftController.position.set(0, 0, 0); import { metaQuest3, metaQuest2, metaQuestPro } from "iwer";
  13. 参考文献 Immersive Web Developer Home https://immersiveweb.dev/ Apple Vision Pro (visionOS

    2.0) における WebXR Device API とその周辺の現状確認 https://zenn.dev/ikkou/articles/337f584f7581da News from WWDC24:WebKit in Safari 18 beta https://webkit.org/blog/15443/news-from-wwdc24-webkit-in-safari-18-beta/ Build immersive web experiences with WebXR https://developer.apple.com/videos/play/wwdc2024/10066 Optimize for the spatial web https://developer.apple.com/videos/play/wwdc2024/10065 Introducing Immersive Web Emulation Runtime (IWER) for Faster WebXR Iteration https://developers.meta.com/horizon/blog/immersive-web-emulation-runtime-iwer-webxr-meta-quest-developer/ Immersive Web Emulation Runtime🔓 Unlock WebXR Emulation Everywhere https://meta-quest.github.io/immersive-web-emulation-runtime/