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