MegaTracker の概念とワークフロー
このドキュメントでは、MegaTracker の基本概念、および MegaTracker と WeChat ネイティブ AR システム VisionKit、レンダリングフレームワーク xr-frame との関係について説明します。
始める前に
Mega の概要 で次の内容を理解してください。
- Mega ローカライズとトラッキングの基本原理。
- Mega Block とは何か。
- Mega を統合した後に期待される結果。
Plane AR Tracker とは
xr-frame の Plane AR Tracker は、本質的には VisionKit 6DoF plane 機能 のラッパーです。
xr-frame のカメラコンポーネントで isARCamera を有効にすると、カメラの 3D 変換は AR システム(VisionKit)と毎フレーム同期されます。
xr-frame は 3D レンダリング機能を提供し、VisionKit は現実空間座標系におけるモーショントラッキング機能を提供します。
Plane AR Tracker は他の AR トラッカーと併用できません。
MegaTracker とは
MegaTracker は、WeChat AR システム(VisionKit)と Mega 空間コンピューティングサービスを接続する中核アルゴリズムコンポーネントであり、クラウドローカライズ機能を提供します。
入力: VisionKit が各フレームで計算したVisionKit 座標系におけるカメラ姿勢(つまり 6DoF データ)と、Mega ローカライズを行うフレームのカメラ画像。
出力: 現在ローカライズおよびトラッキングされている Mega Block 配下のカメラ姿勢。
xr-frame 上で MegaTracker はどのように動作するか
flowchart BT
subgraph Using xr-frame Only
direction BT
PlaneARTracker_1[PlaneARTracker] -->|MotionData & Image| XRFrame_1[xr-frame]
end
subgraph Using Mega Plugin
direction BT
PlaneARTracker_2[PlaneARTracker] -->|MotionData & Image| MegaTracker
MegaTracker -->|CameraTransform| XRFrame_2[xr-frame]
end
- WeChat ネイティブが提供するデータフローでは、xr-frame のカメラコンポーネントはPlane AR Tracker の結果によって毎フレーム直接更新されます。
- Mega ミニプログラムが提供するデータフローでは、VisionKit 座標系におけるカメラ姿勢(つまり 6DoF データ)とローカライズフレームの画像データが MegaTracker に入力されます。クラウドローカライズとローカル計算の後、現在ローカライズおよびトラッキングされている Mega Block 配下のカメラ姿勢が出力され、最終的に xr-frame シーン内の Mega Block ノード配下にあるカメラの LocalTransform が更新されます。この時点で MegaTracker がカメラの制御を引き継ぎ、xr-frame は AR トラッカーに基づいてカメラを更新することはなくなります。
MegaTracker の動作は、plane tracker が提供する 6DoF モーションデータに深く依存しています。そのため、plane tracker が初期化を完了し、安定したトラッキング状態を確立するまでは、MegaTracker は動作に介入できません。また、AR トラッキングの安定性は環境特徴に制限されます。広い無テクスチャ領域(白い壁など)やカメラの長時間遮蔽といった極端なシナリオでは、WeChat 下位層の plane tracking がドリフトまたはロストすると、MegaTracker も信頼できる入力源を失うため、同時に失敗状態に入ります。