物体トラッキングとモーション トラッキングの組み合わせ
本稿では、3D物体トラッキングとデバイスのモーション トラッキング機能を統合し、複雑なシーンでのトラッキング安定性とユーザー体験を向上させる方法を紹介します。内容は、基本原理、期待される効果、および潜在的な問題分析を含みます。
基本原理
モーション フュージョン(Motion Fusion) は、3D物体トラッキングの姿勢データとデバイスのモーション トラッキングの姿勢データを組み合わせることで、よりロバストな姿勢推定を実現します。以下にそのコアプロセスを示します:
データの同期と補完
- ビジュアル トラッキング:画像特徴点のマッチングを通じて現在フレームの姿勢(位置+回転)を算出しますが、遮蔽、ぼやけ、または高速移動の影響を受けやすいです。
- モーション トラッキング:IMUセンサーの高頻度出力とビジュアル画像の出力を利用してデバイスのモーション データを取得しますが、累積的なドリフト誤差が発生します。
- 融合メカニズム:
- ビジュアル トラッキングの姿勢とデバイスモーション トラッキングの姿勢を座標系で位置合わせします。
- ターゲット物体が明確に可視で安定した動きの場合:ビジュアル トラッキングを主とします。システム全体の累積ドリフトを低減するため、ビジュアル トラッキング姿勢を継続的に融合モジュールに送信して修正します。
- ターゲット物体がロスト、または画面内で極小、高速移動の場合:ビジュアル トラッキングが無効化され、モーション トラッキングを主とします。現在のモーション トラッキング姿勢に基づき融合姿勢を予測します。
キーテクノロジーポイント
- タイムスタンプ同期:ビジュアルフレームのタイムスタンプとモーション トラッキングデータを同期し、遅延によるジャッキングを防止します。
- 座標系の位置合わせ:ビジュアル トラッキングの軌跡とモーション トラッキングの軌跡に基づき座標系を位置合わせします。
- 再位置特定:ターゲット物体が再出現した際、ビジュアル トラッキングが引き継ぎ、累積誤差を迅速に補正し、仮想物体を正しい位置に「引き戻し」ます。
適用シーンと制限
モーション フュージョンは全てのシーンに適するわけではありません。以下のいずれかに該当する場合は、モーション フュージョン機能を使用できません:
- ターゲットデバイスが ARCore/ARKit 等のモーション トラッキング機能をサポートしていない。詳細なデバイスサポートリストは以下を参照:モーション トラッキング デバイスサポート。
- ターゲット物体がシーン内で動的である(例:手に持った玩具、フィギュア)。
上記以外のシーンでは、モーション フュージョンの使用により、3D物体トラッキングのユーザー体験が大幅に向上します。以下の使用ケースを含みますがこれらに限定されません:
- 高速移動:ユーザーがデバイスを高速で移動させ、モーションブラーによりビジュアル トラッキングが無効化される場合。
- ターゲット消失:画面からターゲット自体が外れる、または動的物体(歩行者など)に遮蔽された際も、シーン内の仮想コンテンツの表示を維持。
- ターゲットからの離脱:ユーザーがデバイスを遠ざけターゲット物体が画面内で極小化しても、安定した持続的トラッキングを実現。
- 低照度環境:ビジュアル トラッキング性能が低下しても体験を維持。
効果と期待される結果
シーンが適用可能な前提で、モーション フュージョンの使用は単純な3D物体トラッキングよりも安定性と滑らかさを向上させます。
理想的な効果
- より安定したトラッキング:仮想物体が揺れず、跳躍しない。
- 滑らかな遷移:ビジュアル トラッキングが無効化された際、融合姿勢の変化が連続的かつ自然。
- 耐障害性:ターゲット物体のロストや遮蔽、デバイスの高速移動等の状況下でも、仮想物体がデバイスの動きに追随して持続的にトラッキングされる。
非理想的な状況と対応策
| 現象 | 原因 | ユーザー知覚 | ソリューション |
|---|---|---|---|
| 初期未作動 | モーション トラッキングの初期化に時間を要する | 初期段階でコンテンツ消失 | UI表示によるシステム初期化完了の明示 |
| 顕著なドリフト | システム誤差の累積、かつ長期間ビジュアル補正なし | 仮想物体が元位置から逸脱 | ユーザーに対し遮蔽時間短縮の誘導、またはビジュアル再位置特定の表示強化 |
| 性能低下 | 長時間の二重機能実行 | フレームレート低下、カクつき | 正常現象。API経由でモーション フュージョンをオフ可能 |
期待結果の検証方法
サポートデバイスを使用した実シーンでのテスト手順:
- ターゲット物体に向け、仮想物体の安定性を確認。
- 物体を手で2秒間遮蔽しデバイスを移動。仮想物体が滑らかに移動するかを観察。
- 手を離し、仮想物体が素早く正確に復帰し跳躍がないことを確認。
まとめとベストプラクティス
モーション フュージョンは多くのシーンで3D物体トラッキングのロバスト性を著しく向上させますが、デバイスのハードウェアサポートと十分な性能が必要です。開発者はターゲットユーザーデバイスに基づきこの機能を選択的に有効化し、低性能デバイスでは代替案を提供すべきです。
モーション フュージョンのリアルタイムON/OFF APIリファレンス:
- ネイティブ: setResultPostProcessing
- Unity:EnableMotionFusion