デバイスマッピング
デバイスマッピングとは?
デバイスマッピングは、実世界のオブジェクトをスキャンして追跡するシステムで、コンテンツを実世界に合わせて配置することができます。 表面的にはVPSと機能的に似ているが、デバイス・マッピング・システムはすべての処理をデバイス上で行い、ローカライズにネットワーク接続を必要としない。 その代わりに、デバイスマッピングは、あるクライアントデバイスからのスキャンをシリアライズし、それを他のデバイスに配布し、そのデバイスがデータをデシリアライズしてスキャンされたマップを 再作成する。 これにより、複数のデバイスでマップを共有し、インターネット接続なしでマルチプレイを楽しむことができる。
デバイスマッピングの仕組みについては、VPSと比較してみてください:
VPS | デバイスマッピング | |
---|---|---|
どこで使えますか? | VPS作動ロケーションのみ | どこでも |
地図はどのように作られるのですか? | 多くのユーザーからの異なる時間帯のスキャンを使用 | シングル・スキャン |
地図を使うにはスキャンが必要ですか? | いいえ | はい |
ローカライズにネットワーク接続は必要ですか? | はい | いいえ |
地図データはどこにあるのか? | ナイアンティック・サーバー | お使いのデバイス |
ローカライゼーションのロバスト性 | 複数のスキャンからマップを生成するため、一貫性がある。 | 堅牢性はシングルスキャンの品質に依存する |
関連するビジュアル・データへのアクセス方法 | インターネットからメッシュをダウンロードする | デバイスの地図データから点群を抽出 |
ハイレベルAPIの概要
高レベルでは、デバイスマッピングAPIは以下のステップを踏む:
- マッピング
- ARDeviceMappingManager`を使用して、デバイスマップをスキャンして生成する。
- ARDeviceMap`を使って、シリアライズされたデバイスマップデータを、デバイスのローカルファイルシステムなどのどこかに保存する。
- トラッキング
- 再び
ARDeviceMap
を使って、デバイス上のシリアル化されたマップデータからデバイスマップを復元する。 - ARPersistentAnchorManager
を使用して、
ARDeviceMappingManager`を介してデバイスマップを設定することで、スキャンされた実世界のデータを追跡します。 - デバイスがトラッキングを達成したら、仮想オブジェクトを
ARPersistentAnchor
の下に配置し、実世界にアライメントして表示します。
- 再び
StopMapping()が呼ばれ、最終的なマップが生成されると、
ARDeviceMappingManager.DeviceMapFinalizedイベントがトリガーされ、
ARDeviceMapがマップデータをシリアライズできるようになります。 ARDeviceMap
は、この地図データを後で復元するために必要なAPIも提供する。 オプションとして、ARDeviceMappingManager.DeviceMapUpdated
イベントをリッスンし、それを可能にする追加のデバイスマップデータを受信することによって、デバイスマップのカバレッジをユーザーに表示することもできます。
制限事項
デバイスマッピングには、VPSと同じように、以下のようなローカライズの制限があります:
- マッピングとローカリゼーションの間で変化する視覚条件(照明、天候、時間帯
- 区別できる特徴がほとんどない地図上のエリア(草原や色の違いがほとんどない屋内エリアなど)
- 限られた視野角からのスキャン
複数のスキャンからマップを生成するロバスト性がなければ、デバイスマッピングは、これらの制限が作用した場合、VPSよりもパフォーマンスが低下する可能性がある。 マルチプレイヤー体験が、定期的に変更されるエリアに依存していたり、特徴的な機能が欠けていたりする場合は、代わりにVPSの使用を検討してください。
次のステップ
デバイス・マッピングを使い始めるには、デバイス・マップの作成方法を参照してください。