MDN’s new design is in Beta! A sneak peek: https://blog.mozilla.org/opendesign/mdns-new-design-beta/

草案
このページは完成していません。

このWebVR APIドキュメントは現在v1.0の仕様への対応作業の途中です.従って,ここにある情報のいくつかは最新ではありません.この作業について質問がある場合は chrisdavidmills へ連絡をとってください.

これは実験段階の機能です。
この機能は複数のブラウザーで開発中の状態にあります。互換性テーブルをチェックしてください。また、実験段階の機能の構文と挙動は、仕様変更に伴い各ブラウザーの将来のバージョンで変更になる可能性があることに注意してください。

WebVR は,バーチャルリアリティデバイス — 例えばOculus Riftのようなヘッドマウントディスプレイ — をWEBアプリへ公開し,ヘッドマウントディスプレイの位置や動きを3D空間上の動きへと変換する手助けを行います.これによって,バーチャルな製品紹介やインタラクティブな訓練アプリといったものから超臨場感のファーストパーソン・シューティングゲームといったものまで,非常に面白い様々なアプリケーションをつくることができます.

概念と利用方法

Sketch of a person in a chair with wearing goggles labelled "Head mounted display (HMD)" facing a monitor with a webcam labelled "Position sensor"

あなたのコンピュータに接続されているVRデバイスは,Navigator.getVRDevices() メソッドで取得できます.接続中のデバイスを表す汎用的な VRDevice を継承したオブジェクトの配列として返されます.一般に,1つのヘッドマウントディスプレイは2つのデバイスを持っていて,1つは HMDVRDevice で表されるヘッドマウントディスプレイ自体で,もう1つは PositionSensorVRDevice で表される頭の位置を追跡する位置センサカメラです.

PositionSensorVRDevice オブジェクトは getState() メソッドを持っています.そのメソッドは,あるタイムスタンプにおけるセンサの状態を表す VRPositionState オブジェクトを返します.そのオブジェクトは,現在の速度,加速度,向きといった便利なデータのプロパティを含んでいて,各フレームで,VRヘッドマウントディスプレイの動きに応じてシーン描画を更新するのに役立ちます.

HMDVRDevice.getEyeParameters() メソッドは VREyeParameters を返し,ヘッドマウントディスプレイでどの程度の画面上の範囲が見られるかを示す FOV (Field of View) 情報を返すために使うことができます.VREyeParameters.currentFieldOfView は現在の中心からの視界を表す4つの角度を持つ VRFieldOfView オブジェクトを返します.HMDVRDevice.setFieldOfView() を用いてFOVを変更することも可能です.

注記: あなたのアプリでこれらのインターフェイスを使う方法をもっと知りたい場合は, WebVR AP の使い方を読んでください.VRの背景にある基本的な概念については, WebVR concepts を読んでください.

WebVR インターフェイス

VRDisplay
このAPIでサポートされているVRデバイスを表します.デバイスIDや説明など汎用的な情報や,VRシーンの表示を開始するためのメソッドや,両目のパラメータやディスプレイの対応機能を受け取るメソッド,その他の重要な機能のためのメソッドを含んでいます.
VRDisplayCapabilities
VRDisplay の利用可能な機能を示しています — この機能はVRデバイスで使える機能テストを実行するために使うことができ,例えば位置情報を返すことが可能かに使えます.
VRPose
指定した時刻における位置の状態を表します(これには向き,位置,速度,加速度を含んでいます).
VREyeParameters
指定した目に対応するシーンを正しくレンダリングするために必要となるすべての情報へのアクセスを提供します.これにはFOV情報を含まれています.
VRFieldOfView
中心点からの視界を記述する4つの異なる角度値で定義されるFOVを表します.
VRLayer
 VRDisplay 内に表示されるレイヤを表します.
VRStageParameters
ルームスケール体験をサポートしているデバイスで,ステージエリアを示す値を表します.

その他のインターフェイスの拡張

Gamepad.displayId 読取専用
関連付いている VRDisplay の VRDisplay.displayId を返します — その VRDisplay はゲームパッドが表示シーンのコントロールします.
Navigator.activeVRDisplays 読取専用
現在表示されている(VRDisplay.ispresenting が true の)すべての VRDisplay オブジェクトを持つ配列を返します.
Navigator.getVRDisplays()
コンピュータに接続されている利用可能なVRデバイスを表す VRDisplay オブジェクトの配列へ解決する promiseを返します.
Window.onvrdisplayconnected
互換性のあるVRデバイスがコンピュータに接続されたとき( vrdisplayconnected イベントが発火したとき)に実行されるイベントハンドラを表します.
Window.onvrdisplaydisconnected
互換性のあるVRデバイスがコンピュータから接続解除されたとき( vrdisplaydisconnected イベントが発火したとき)に実行されるイベントハンドラを表します.
Window.onvrdisplaypresentchange
VRデバイスの表示状態が変更されたとき — すなわち,表示状態から非表示状態へ変化したときあるいはその逆( onvrdisplaypresentchange イベントが発火したとき)に実行されるイベントハンドラを表します.

次の Github リポジトリでいくつかの例を見つけられます:

  • mdn/webvr-tests: 基本的な機能の使い方を示すためのシンプルなデモ.
  • MozVR team: より高度なデモ,WebVRの仕様書,などなど!

仕様

仕様書 ステータス コメント
WebVR 勧告改訂案 Initial definition

ブラウザの互換性

機能 Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support (有) (有) 未サポート 未サポート 未サポート
機能 Android Firefox Mobile (Gecko) Firefox OS (Gecko) IE Phone Opera Mobile Safari Mobile Chrome for Android
Basic support 未サポート

(有)

未サポート 未サポート 未サポート 未サポート 未サポート

参照

 

ドキュメントのタグと貢献者

 このページの貢献者: Uemmra3, chikoski, rootx
 最終更新者: Uemmra3,