MegaTrackerの概念とワークフロー
このドキュメントでは、MegaTrackerの基本概念と、MegaTrackerがWeChatネイティブのARシステムVisionKitおよびレンダリングフレームワークxr-frameとどのように連携するかについて説明します。
開始前に
Megaの概要を通じて以下を理解してください:
- Megaの位置特定と追跡の基本原理
- Mega Blockとは何か
- Mega統合後の期待される結果
平面ARトラッカーとは何か
xr-frameの平面ARトラッカーは、本質的にVisionKit 6DoF-平面機能のラッパーです。
xr-frameのカメラコンポーネントでisARCameraを有効にすると、カメラの3D変換はフレームごとにARシステム(VisionKit)と同期されます。
xr-frameが3Dレンダリング機能を提供し、VisionKitが現実空間座標系での運動追跡機能を提供します。
平面ARトラッカーは他のARトラッカーと同時に使用できません。
MegaTrackerとは何か
MegaTrackerは、WeChat ARシステム(VisionKit)とMega空間計算サービスを接続するコアアルゴリズムコンポーネントであり、クラウドベースの位置特定機能を提供します。
- 入力:各フレームでVisionKitが計算するVisionKit座標系でのカメラ姿勢(6DoFデータ)、およびMega位置特定を実行したフレーム時のカメラ画像
- 出力:現在位置特定および追跡中のMega Blockにおけるカメラ姿勢
MegaTrackerがxr-frame上でどのように動作するか
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のカメラコンポーネントは平面ARトラッカーの結果によってフレームごとに直接更新されます
- Megaミニプログラムのデータフローでは、VisionKit座標系でのカメラ姿勢(6DoFデータ)および位置特定フレームの画像データがMegaTrackerに入力されます。クラウド位置特定とローカル計算後、現在位置特定および追跡中のMega Blockでのカメラ姿勢が出力され、最終的にxr-frameシーン内のカメラのMega Blockノード下でのLocalTransformが更新されます。この時点でMegaTrackerがカメラの制御を引き継ぎ、xr-frameはARトラッカーに基づくカメラ更新を行いません
MegaTrackerの動作は、平面トラッカーが提供する6DoF運動データに深く依存しています。したがって、平面トラッカーが初期化を完了し安定した追跡状態を確立するまでは、MegaTrackerは動作を開始できません。さらに、AR追跡の安定性は環境特徴に制限されます。無地の広い領域(白い壁など)や長時間のカメラ遮蔽などの極端なシナリオでは、WeChat基盤の平面追跡がドリフトまたは喪失した場合、MegaTrackerは信頼できる入力源を失い、同期して機能停止状態に陥ります。