平面 ar トラッカー異常処理
この記事では、コールバックを登録して wechat 平面 ar トラッカーの例外を処理する方法について説明します。
開始前に
megatracker ワークフローを通じて以下を理解してください:
- xr-frame の平面 ar トラッカーは本質的に visionkit 6dof-平面能力のラッパーです。
- megatracker が xr-frame 上でどのように動作するか。
ar session の概念とフローを理解する
平面検出異常が発生する理由
特定の状況下(例:画面に広い白い壁が映る、カメラが長時間遮蔽されるなど)では、wechat 平面 ar トラッカーが異常状態になることがあります。
この時、平面 ar トラッカーはフレームごとのカメラ姿勢(6dof データ)を正常に出力できず、これにより megatracker が機能しなくなります。
画面が正常(テクスチャが豊富、カメラが遮蔽されていない)な状態が一定時間続くと、平面 ar トラッカーは動作を再開し、megatracker も復旧します。
平面検出異常時の動作設定
setPlaneDetectionErrorBehavior(behavior) を使用して例外処理コールバックを登録します。異常が検出されるとこのコールバックがトリガーされ、開発者はカスタム通知の表示、3d コンテンツの非表示、その他の処理ロジックを実装できます。
session.setPlaneDetectionErrorBehavior(() => {
wx.showToast({
icon: 'none',
title: `wechat平面検出結果が異常です。トラッキングを復元するにはカメラを平面に向けて往復移動してください`,
duration: 2000,
});
});
この例では、session の setPlaneDetectionErrorBehavior(behavior) インターフェースを使用して toast ウィンドウを表示するコールバックを登録しており、平面検出異常時にトリガーされます。