DEV Community

HEAVEN ちゃん a.k.a いっこう
HEAVEN ちゃん a.k.a いっこう

Posted on • Updated on

Chrome 79 から WebXR Device API が有効になるも Oculus 系の HMD が認識されない件とその解決方法について

この記事は 2019-12-20 JST 付で Qiita に投稿したものです。
2020-08-25 時点で最新の Chrome v84 では本記事の方法で対応できません。

TL;DR

Ref. https://twitter.com/ikkou/status/1207912623443865600

Chrome 79 で WebXR Device API が正式サポートされました🎉

WebXR Device API はブラウザから Oculus Rift S をはじめとする (VR|AR|MR) HMD の情報を取得するための API です。

2019/12/20 現在の「メジャーなブラウザ」では Chrome 79 以降のみが「標準で」対応しています。
この「メジャーなブラウザ」というところが肝です。

Alt Text

source. https://caniuse.com/#search=WebXR

Chrome 78 以前はどうだったのか?

chrome://flags から以下のフラグを Enable にすると Chrome で WebXR Device API を通して Oculus Rift S で WebXR を楽しむことができました。

  • WebXR Device API: Enabled
  • Oculus VR support: Enabled
  • XR device sandboxing: Disabled

ここで言う WebXR を楽しむというのは、WebXR Sample PagesYes! が表示され、各サンプルで ENTER VR が表示される状態を指しています。

Alt Text

WebXR Device API に対応している場合に表示されるテキスト
source: https://immersive-web.github.io/webxr-samples/

なお Firefox のように、まだ WebXR Device API に対応していない場合でも WebVR API へのフォールバックで概ね体験可能です。

Alt Text

WebXR Device API あるいは WebVR API へのフォールバックで VR HMD が認識されているときに表示される状態
source: https://immersive-web.github.io/webxr-samples/immersive-vr-session.html

Alt Text

VR HMD が認識されていないときは VR NOT FOUND が表示される
source: https://immersive-web.github.io/webxr-samples/immersive-vr-session.html

Chrome 79 でどうなったのか?

まず WebXR Device API は標準対応となったため、chrome://flags から変更する必要がなくなりました!

標準対応となったので「これだけでいける!」と思っていましたが、実は Oculus Rift/Rift S に関しては別途フラグを立てる必要がありました。もともと Oculus VR support: Enabled を指定していたので、それかと思うとこのフラグは消えていていました!

結論として Oculus VR support に代わる Oculus hardware supportEnable にする必要がありました。

Ref. https://twitter.com/kettlecorn/status/1207880549991366656

Chrome 79 以降で WebXR を動作させるために必要なこと

  • Oculus hardware support = chrome://flags/#oculus-vrEnabled に変更
  • XR device sandboxing = chrome://flags/#xr-sandboxDisabled に変更
  • Chrome を再起動

上記の設定で 2019/12/20 現在 Chrome Beta, Chromium の最新バージョンである v81 まで動作することを確認しています。

2019/12/20 現在、WebXR Device API に「真の標準対応」しているブラウザは Oculus Browser だけ!

Ref. https://twitter.com/wakufactory/status/1207924277044867077

本記事では一切のフラグ変更を必要としないことを「真の標準対応」と表現していますが、これは W3C として定義している用語ではありません。そして Oculus Browser は決してメジャーなブラウザではない異端児です。

現場からは以上です。


Special Thanks: OE Waku さん - https://twitter.com/wakufactory

Top comments (0)