XR8.PlayCanvas.run()
XR8.PlayCanvas.run( {pcCamera, pcApp}, [extraModules], config )
概要
指定したパイプラインモジュールを追加して、カメラを開きます。
パラメータ
パラメータ | タイプ | 説明 |
---|---|---|
pcCamera | pc.CameraComponent | ARで駆動するPlayCanvasのシーンカメラです。 |
pcApp | pc.Application | PlayCanvasアプリで、通常 this.app を指します。 |
extraModules [Optional] | [Object] | インストールする追加パイプラインモジュールのオプション配列です。 |
config | {canvas, webgl2, ownRunLoop, cameraConfig, glContextConfig, allowedDevices, layers} | XR8.run() に渡す設定パラメータと、PlayCanvas固有の設定です(例:layers )。 |
config
は、以下のプロパティを持つオブジェクトです。
プロパティ | タイプ | デフォルト | 説明 |
---|---|---|---|
canvas | HTMLCanvasElement | カメラフィードが描画されるHTMLキャンバスを指定します。 通常、これは document.getElementById('application-canvas') で指定されます。 | |
webgl2 [Optional] | Boolean | false | trueの場合、利用可能であればWebGL2を使用し、そうでなければWebGL1にフォールバックします。 falseの場合、常にWebGL1を使用します。 |
ownRunLoop [Optional] | Boolean | false | trueの場合、XRはそれ自身の実行ループを使用します。 falseの場合、実行ループを自分で用意し、XR8.runPreRender() とXR8.runPostRender() を自ら呼び出さなければなりません【上級開発者限定】。 |
cameraConfig: {direction} [Optional] | Object | {direction: XR8.XrConfig.camera().BACK} | 使用するカメラの希望です。 direction でサポートされている値は、XR8.XrConfig.camera().BACK またはXR8.XrConfig.camera().FRONT です。 |
glContextConfig [Optional] | WebGLContextAttributes | null | WebGL canvasコンテキストを構成するための属性です。 |
allowedDevices [Optional] | XR8.XrConfig.device() | XR8.XrConfig.device().MOBILE | パイプラインが実行されるデバイスのクラスを指定します。 現在のデバイスがそのクラスにない場合、カメラを開く前に実行に失敗します。 allowedDevicesがXR8.XrConfig.device().ANY の場合、常にカメラをオープンします。 ワールド・トラッキングは、XR8.XrConfig.device().MOBILE でのみ使用できることに注意してください。 |
layers [Optional] | [] | [] | GlTextureRenderer を用いて描画するレイヤーのリストを指定します。 キーには8th Wallのレイヤー名、バリューには8th Wallのレイヤーを使ってテクスチャとマスクにレンダリングすべきPlayCanvasのレイヤー名のリストを指定します。 値の例:{"sky": ["FirstSkyLayer", "SecondSkyLayer"]} |
戻り値
なし
例
var layerscontroller = pc.createScript('layerscontroller')
layerscontroller.prototype.initialize = function() {
// XRが完全に読み込まれたら、カメラフィードを開いてAR表示を開始します。
const runOnLoad = ({pcCamera, pcApp}, extramodules) => () => {
// キャンバス名を渡します。 通常、これは'application-canvas'です。
const config = {
canvas: document.getElementById('application-canvas'),
layers: {"sky": ["Sky"]}
}
XR8.PlayCanvas.run({pcCamera, pcApp}, extraModules, config)
}
// PlayCanvasのシーンでカメラを見つけ、
// 現実のユーザーの携帯電話の動きに紐づけます。
const pcCamera = XRExtras.PlayCanvas.findOneCamera(this.entity)
// XRのローディング中、役に立つ情報を表示します。
// Almost There:ユーザーの環境がWeb ARをサポートできるかどうかを検出し、サポートできない場合は、
// 体験を表示するためのヒントを表示します。
// Loading: カメラ許可を求めるプロンプトを表示し、表示できる状態になるまでシーンを隠します。
// Runtime Error:予期せぬ事態が発生した場合、エラー画面を表示します。
XRExtras.Loading.showLoading({onxrloaded: runOnLoad({pcCamera, pcApp: this.app}, [
// 開発者がカスタマイズやテーマにしたいオプションのモジュールです。
XRExtras.AlmostThere.pipelineModule(), // 未対応のブラウザを検出し、ヒントを与えることができます。
XRExtras.Loading.pipelineModule(), // 起動時のローディング画面を管理します。
XRExtras.RuntimeError.pipelineModule(), // ランタイムエラー時にエラー画像を表示します。
XR8.LayersController.pipelineModule(), // スカイ・エフェクトのサポートを追加します。
])})
}