3.Azure Spatial Anchors の保存、取得、および共有3. Saving, retrieving, and sharing Azure Spatial Anchors

このチュートリアルでは、HoloLens 2 のストレージにアンカー ID を保存することにより、複数のアプリ セッションにわたって Azure Spatial Anchors を保存する方法について学習します。In this tutorial, you will learn how to save Azure Spatial Anchors across multiple app sessions by saving the anchor ID to the HoloLens 2's storage. また、このアンカー ID を他のデバイスと共有して、複数デバイスのアンカーの位置合わせ行う方法についても学習します。You will also learn how to share this anchor ID to other devices for a multi-device anchor alignment.

目標Objectives

  • 複数のアプリ セッション間で空間的な位置合わせを実現する方法を学習する。Learn how to achieve spatial alignment across multiple app sessions.
  • 複数のデバイス間で空間的な位置合わせを実現する方法を学習する。Learn how to achieve spatial alignment between multiple devices.

シーンの準備Preparing the scene

[階層] ウィンドウで、 [ButtonParent] オブジェクトを展開します。In the Hierarchy window, expand the ButtonParent object. 最後の 4 つの子ボタンのオブジェクトを選択します。Select the last four child button objects. [インスペクター] ウィンドウで、名前フィールドの横にあるチェックボックスをオンにして、すべてのオブジェクトをアクティブにします。In the Inspector window, check the checkbox next to the name field to make all the objects active.

mr-learning-asa

[階層] ウィンドウで、 [ButtonParent] オブジェクトを選択します。In the Hierarchy window, select the ButtonParent objects. 次に、[インスペクター] ウィンドウで [GridObjectCollection] コンポーネントを見つけ、 [Update Collection](コレクションの更新) ボタンをクリックして、すべての [ButtonParent] オブジェクトの子オブジェクトの位置を更新します。Then in the Inspector window, locate the GridObjectCollection component and click the Update Collection button to update the position of all the ButtonParent object's child objects.

mr-learning-asa

アプリ セッション間での Azure Spatial Anchors の永続化Persisting Azure Spatial Anchors between app sessions

このセクションでは、Azure Anchor ID を HoloLens のローカル ディスクに保存したり、そこから取得したりする方法について学習します。In this section, you will learn how to save and retrieve the Azure Anchor ID to and from the HoloLens' local disk. これにより、異なるアプリ セッション間で同じアンカー ID の Azure に対してクエリを実行できます。This will allow you to query Azure for the same anchor ID between different app sessions. 固定されたホログラムを前のアプリ セッションと同じ場所に配置できるようになります。It will enable the anchored holograms to be positioned at the same location as in the previous app session.

[階層] ウィンドウで [ButtonParent] オブジェクトを展開し、SaveAzureAnchorIdToDiskGetAzureAnchorIdFromDisk という名前の 2 つのボタンを探します。In the Hierarchy window, expand the ButtonParent object and locate the two buttons named SaveAzureAnchorIdToDisk and GetAzureAnchorIdFromDisk:

mr-learning-asa

前のチュートリアルのシーンを操作するためのボタンの構成と同じ手順に従い、 [Interactable (Script)] コンポーネントを次の 2 つのボタンそれぞれに対して構成します。Follow the same steps as in the configuring the buttons to operate the scene instructions from the previous tutorial to configure the Interactable (Script) component on each of the two buttons:

  • [SaveAzureAnchorIdToDisk] ボタン オブジェクトの場合、[AnchorModuleScript] を [SaveAzureAnchorIdToDisk ()] 関数に割り当てます。For the SaveAzureAnchorIdToDisk button object, assign the AnchorModuleScript > SaveAzureAnchorIdToDisk () function.
  • [GetAzureAnchorIdFromDisk] ボタン オブジェクトの場合、[AnchorModuleScript] を [GetAzureAnchorIdFromDisk ()] 関数に割り当てます。For the GetAzureAnchorIdFromDisk button object, assign the AnchorModuleScript > GetAzureAnchorIdFromDisk () function.

更新されたアプリを HoloLens にビルドすると、Azure Anchor ID を保存することで、アプリ セッション間で Azure Spatial Anchors を永続化できるようになります。If you build the updated app to your HoloLens, you can now persist Azure Spatial Anchors between app sessions by saving the Azure Anchor ID. これをテストするには、次の手順を実行します。To test it out, you can follow these steps:

  1. Rover Explorer を目的の場所に移動しますMove the Rover Explorer to the desired location
  2. Azure セッションを開始しますStart Azure Session
  3. Azure Anchor を作成します (Rover Explorer の場所にアンカーを作成します)Create Azure Anchor (creates anchors at the location of the Rover Explorer)
  4. Azure Anchor ID をディスクに保存しますSave Azure Anchor ID to Disk
  5. アプリを再起動しますRestart the app
  6. ディスクから Azure Anchor を取得します (保存したアンカー ID を読み込みます)Get Azure Anchor from Disk (loads the anchor ID you just saved)
  7. Azure セッションを開始しますStart Azure Session
  8. Azure Anchor を見つけます (手順 3 の場所に Rover Explorer を配置します)Find Azure Anchor (positions the Rover Explorer at the location from step 3)

注意

アプリを完全に再起動するには、イマーシブ アプリ ビューを終了した後、[スタート] メニューからこれを再起動する前に、Mixed Reality ホームのアプリ ウィンドウを閉じる必要があります。To fully restart the app, after exiting the immersive app view, the app window in the mixed reality home needs to be closed before relaunching it from the Start menu. 詳細については、「HoloLens でアプリを使用する」のドキュメントを参照してください。For additional details, you can refer to the Using apps on HoloLens documentation.

デバイス間での Azure Spatial Anchors の共有Sharing Azure Spatial Anchors between devices

このセクションでは、複数のデバイス間で Azure Anchor ID を共有する方法について学習します。In this section, you will learn how to share the Azure Anchor ID between multiple devices. これにより、複数のデバイスが同じアンカー ID を Azure に対してクエリできるようになり、固定されたホログラムを空間的に位置合わせできるようになります。This will allow multiple devices to query Azure for the same anchor ID, allowing the anchored holograms to be spatially aligned. 空間的な位置合わせ、つまり複数のデバイス間で同じ物理的な場所に同じホログラムを表示できることは、HoloLens 2 のローカル共有エクスペリエンスにとって重要です。Spatial alignment, i.e., seeing the same holograms in the same physical location between multiple devices, is key to local shared experiences in the HoloLens 2.

Azure Anchor ID をデバイス間で転送するには、マルチユーザー機能のチュートリアル シリーズで説明されている方法など、さまざまな方法があります。There are many ways to transfer Azure Anchor IDs between devices, including methods outlined in the Multi-user capabilities tutorials series. この例では、デバイス間でアンカー ID をアップロードおよびダウンロードする単純な Web サービスを使用します。In this example, you will use a simple web service to upload and download anchor IDs between devices.

[階層] ウィンドウで、 [ButtonParent] オブジェクトを展開します。In the Hierarchy window, expand the ButtonParent object. ShareAzureAnchorIdToNetwork と、GetAzureAnchorIdFromNetwork という名前の 2 つのボタンを見つけます。Locate the two buttons named ShareAzureAnchorIdToNetwork and GetAzureAnchorIdFromNetwork:

mr-learning-asa

前のチュートリアルのシーンを操作するためのボタンの構成と同じ手順に従い、 [Interactable (Script)] コンポーネントを次の 2 つのボタンそれぞれに対して構成します。Follow the same steps as in the configuring the buttons to operate the scene instructions from the previous tutorial to configure the Interactable (Script) component on each of the two buttons:

  • [ShareAzureAnchorIdToNetwork] オブジェクトの場合は、[AnchorModuleScript] > [ShareAzureAnchorIdToNetwork ()] 関数を割り当てます。For the ShareAzureAnchorIdToNetwork object, assign the AnchorModuleScript > ShareAzureAnchorIdToNetwork () function.
  • [GetAzureAnchorIdFromNetwork] オブジェクトの場合は、[AnchorModuleScript] > [GetAzureAnchorIdFromNetwork ()] 関数を割り当てます。For the GetAzureAnchorIdFromNetwork object, assign the AnchorModuleScript > GetAzureAnchorIdFromNetwork () function.

更新されたアプリを 2 つの HoloLens デバイスにビルドすると、Azure Anchor ID を共有することで、空間的な位置合わせを実現できるようになります。If you build the updated app to two HoloLens devices, you can now achieve spatial alignment by sharing the Azure Anchor ID. これをテストするには、次の手順を実行します。To test it out, you can follow these steps:

  1. HoloLens デバイス 1 で次のようにします。Rover Explorer を目的の場所に移動します。On HoloLens device 1: Move the Rover Explorer to the desired location.
  2. HoloLens デバイス 1 で次のようにします。Azure セッションを開始します。On HoloLens device 1: Start Azure Session.
  3. HoloLens デバイス 1 で次のようにします。Azure Anchor を作成します (Rover Explorer の場所にアンカーを作成します)。On HoloLens device 1: Create Azure Anchor (creates anchors at the location of the Rover Explorer).
  4. HoloLens デバイス 1 で次のようにします。Azure Anchor ID をネットワークに共有します。On HoloLens device 1: Share Azure Anchor ID to Network.
  5. HoloLens デバイス 2 で次のようにします。アプリを起動します。On HoloLens device 2: Start the app.
  6. HoloLens デバイス 2 で次のようにします。ネットワークから共有アンカー ID を取得します (HoloLens デバイス 1 から共有されたアンカー ID を取得します)。On HoloLens device 2: Get Shared Anchor ID from Network (fetches the anchor ID just shared from HoloLens device 1).
  7. HoloLens デバイス 2 で次のようにします。Azure セッションを開始します。On HoloLens device 2: Start Azure Session.
  8. HoloLens デバイス 2 で次のようにします。Azure Anchor を見つけます (手順 3 の場所に Rover Explorer を配置します)。On HoloLens device 2: Find Azure Anchor (positions the Rover Explorer at the location from step 3).

ヒント

HoloLens が 1 つしかない場合でも、2 つ目の HoloLens デバイスを使用する代わりにアプリを再起動することで、機能をテストできます。If you only have one HoloLens, you can still test the functionality by restarting the app instead of using a second HoloLens device.

結論Congratulations

このチュートリアルでは、Azure Spatial Anchor ID を HoloLens のローカル ディスクに保存して、アプリのセッションとアプリの再起動の間で Azure Spatial Anchors を永続化する方法について学習しました。In this tutorial, you learned how to persist Azure Spatial Anchors between app sessions and app restarts by saving the Azure Spatial Anchor ID to the local disk on HoloLens. また、Azure Spatial Anchors を複数のデバイス間で共有し、基本的なマルチユーザーの静的ホログラム共有エクスペリエンスを実現する方法についても学習しました。You also learned how to share Azure Spatial Anchors between multiple devices for a basic multi-user, static hologram shared experience.

次のチュートリアルでは、リアルタイムのフィードバックをユーザーに提供する方法について学習します。In the next tutorial, you will learn how to provide users with real-time feedback. このフィードバックには、アンカーの作成、環境の品質についての理解、および Azure セッションの状態に関する情報が含まれています。This feedback will include information about Anchor creation, the quality of environment understanding, and the Azure session's state. フィードバックがなければ、アンカーが Azure に正常にアップロードされたかどうか、環境の品質がアンカーの作成に十分であるかどうか、または現在の状態をユーザーが知ることができません。Without feedback, users may not know whether an anchor has successfully been uploaded to Azure, whether the quality of the environment is sufficient for anchor creation, or the current state.

次のチュートリアル:4.Azure Spatial Anchors フィードバックの表示Next Tutorial: 4. Displaying Azure Spatial Anchor feedback