メインコンテンツへスキップ

XR8.Babylonjs.xrCameraBehavior()

XR8.Babylonjs.xrCameraBehavior(config, xrConfig)

概要

以下のようにBabylonカメラに取り付けられるビヘイビアを取得します。 camera.addBehavior(XR8.Babylonjs.xrCameraBehavior())

パラメータ

パラメータ説明
config [Optional]XR8.run() に渡す設定パラメータ。
xrConfig [Optional]XR8.XrController に渡す設定パラメータ。

config [Optional] は、以下のプロパティを持つオブジェクトです。

プロパティタイプデフォルト説明
webgl2 [Optional]Booleanfalsetrue の場合、利用可能な場合は WebGL2 を使用し、そうでない場合は WebGL1 にフォールバックします。 false の場合、常にWebGL1を使用します。
ownRunLoop [Optional]Booleanfalsetrue の場合、XR は独自の run ループを使用する必要があります。 false の場合、独自の実行ループを用意し、 runPreRenderrunPostRender を自分で呼び出す必要があります。(高度なユーザーのみ)
cameraConfig: {direction} [Optional]Object{direction: XR8.XrConfig.camera().BACK}使用したいカメラ。 サポートされているdirection の値は、 XR8.XrConfig.camera().BACK または XR8.XrConfig.camera().FRONTです。
glContextConfig [Optional]WebGLContextAttributesnullWebGL canvas contextを構成する属性です。
allowedDevices [Optional]XR8.XrConfig.device()XR8.XrConfig.device().MOBILEパイプラインで実行するデバイスの種類を指定します。 現在のデバイスがそのクラスにない場合は、カメラを開く前に実行が失敗します。 allowedDevicesが XR8.XrConfig.device().ANYの場合は、常にカメラを開きます。 ワールド・トラッキングは、 XR8.XrConfig.device().MOBILEでのみ使用できることに注意してください。

xrConfig [Optional] は、以下のプロパティを持つオブジェクトです。

パラメータ説明
enableLighting [Optional]true の場合、ライト情報の推定値を返します。
enableWorldPoints [Optional]true の場合、トラッキングに使用するマップポイントを返します。
disableWorldTracking [Optional]true の場合、効率化のためにSLAMトラッキングをオフにします。
imageTargets [Optional]検出するイメージ・ターゲットの名称のリスト。 実行時に変更可能です。 注意事項: 現在アクティブなイメージターゲットはすべて、このリストで指定されたものに置き換わります。
leftHandedAxes [Optional]true の場合、左手座標系を使用します。
imageTargets [Optional]true の場合、出力で左右を反転させる。

戻り値

XRエンジンをBabylonカメラに接続し、カメラフィードとトラッキングを開始するBabylon JSのビヘイビアです。

let surface, engine, scene, camera

const startScene = () => {
const canvas = document.getElementById('renderCanvas')

engine = new BABYLON.Engine(canvas, true, { stencil: true, preserveDrawingBuffer: true })
engine.enableOfflineSupport = false

scene = new BABYLON.Scene(engine)
camera = new BABYLON.FreeCamera('camera', new BABYLON.Vector3(0, 3, 0), scene)

initXrScene({ scene, camera }) // シーンへのオブジェクト追加とカメラの開始位置の設定です。

// XRエンジンにカメラを接続し、カメラフィードを表示する
camera.addBehavior(XR8.Babylonjs.xrCameraBehavior())

engine.runRenderLoop(() => {
scene.render()
})

window.addEventListener('resize', () => {
engine.resize()
})
}