本文へスキップ

デバイスマッピング

デバイスマッピングとは?

デバイスマッピングは、実世界のオブジェクトをスキャンして追跡するシステムで、コンテンツを実世界に合わせて配置することができます。 表面的にはVPSと機能的に似ているが、デバイス・マッピング・システムはすべての処理をデバイス上で行い、ローカライズにネットワーク接続を必要としない。 その代わりに、デバイスマッピングは、あるクライアントデバイスからのスキャンをシリアライズし、それを他のデバイスに配布し、そのデバイスがデータをデシリアライズしてスキャンされたマップを再作成する。 これにより、複数のデバイスでマップを共有し、インターネット接続なしでマルチプレイを楽しむことができる。

デバイスマッピングの仕組みについては、VPSと比較してみてください:

VPSデバイスマッピング
どこで使えますか?VPS作動ロケーションのみどこでも
地図はどのように作られるのですか?多くのユーザーからの異なる時間帯のスキャンを使用シングル・スキャン
地図を使うにはスキャンが必要ですか?いいえはい
ローカライズにネットワーク接続は必要ですか?はいいいえ
地図データはどこにあるのか?ナイアンティック・サーバーお使いのデバイス
ローカライゼーションのロバスト性複数のスキャンからマップを生成するため、一貫性がある。堅牢性はシングルスキャンの品質に依存する
関連するビジュアル・データへのアクセス方法インターネットからメッシュをダウンロードするデバイスの地図データから点群を抽出

ハイレベルAPIの概要

高レベルでは、デバイスマッピングAPIは以下のステップを踏む:

  • マッピング
    • ARDeviceMappingManager`を使用して、デバイスマップをスキャンして生成する。
    • ARDeviceMap`を使って、シリアライズされたデバイスマップデータを、デバイスのローカルファイルシステムなどのどこかに保存する。
  • トラッキング
    • 再び ARDeviceMap を使って、デバイス上のシリアル化されたマップデータからデバイスマップを復元する。
    • ARPersistentAnchorManager を使用して、ARDeviceMappingManager`を介してデバイスマップを設定することで、スキャンされた実世界のデータを追跡します。
    • デバイスがトラッキングを達成したら、仮想オブジェクトを ARPersistentAnchor の下に配置し、実世界にアライメントして表示します。

StopMapping()が呼ばれ、最終的なマップが生成されると、ARDeviceMappingManager.DeviceMapFinalizedイベントがトリガーされ、ARDeviceMapがマップデータをシリアライズできるようになります。 ARDeviceMapは、この地図データを後で復元するために必要なAPIも提供する。 オプションとして、ARDeviceMappingManager.DeviceMapUpdatedイベントをリッスンし、それを可能にする追加のデバイスマップデータを受信することによって、デバイスマップのカバレッジをユーザーに表示することもできます。

制限事項

デバイスマッピングには、VPSと同じように、以下のようなローカライズの制限があります:

  • マッピングとローカリゼーションの間で変化する視覚条件(照明、天候、時間帯
  • 区別できる特徴がほとんどない地図上のエリア(草原や色の違いがほとんどない屋内エリアなど)
  • 限られた視野角からのスキャン

複数のスキャンからマップを生成するロバスト性がなければ、デバイスマッピングは、これらの制限が作用した場合、VPSよりもパフォーマンスが低下する可能性がある。 マルチプレイヤー体験が、定期的に変更されるエリアに依存していたり、特徴的な機能が欠けていたりする場合は、代わりにVPSの使用を検討してください。

次のステップ

デバイス・マッピングを使い始めるには、デバイス・マップの作成方法を参照してください。