5.Azure Spatial Anchors の共有エクスペリエンスへの統合5. Integrating Azure Spatial Anchors into a shared experience

このチュートリアルでは、Azure Spatial Anchors (ASA) を共有エクスペリエンスに統合する方法を学習します。In this tutorial, you will learn how to integrate Azure Spatial Anchors (ASA) into the shared experience. ASA により複数のデバイスが現実の世界への共通の参照を持てるようになり、ユーザーは互いの姿をその現実の物理的な位置に見たり、共有エクスペリエンスを同じ場所で見たりすることができるようになります。ASA allows multiple devices to have a common reference to the physical world so that the users see each other in their actual physical location and see the shared experience in the same place.

目標Objectives

  • ASA を共有エクスペリエンスに統合し、複数デバイスで位置合わせするIntegrate ASA into a shared experience for multi-device alignment
  • ASA がローカル共有エクスペリエンスのコンテキストでどのように機能するかについての基本を学ぶLearn the fundamentals of how ASA works in the context of a local shared experience

シーンの準備Preparing the scene

[Hierarchy](ヒエラルキー) ウィンドウで SharedPlayground オブジェクトを展開し、TableAnchor オブジェクトを展開してその子オブジェクトを公開します。In the Hierarchy window, expand the SharedPlayground object, then expand the TableAnchor object to expose its child objects:

SharedPlayground と TableAnchor オブジェクトが展開された Unity

[Project](プロジェクト) ウィンドウで [Assets](アセット) > [MRTK.Tutorials.MultiUserCapabilities] > [Prefabs](プレハブ) フォルダーの順に移動して、Buttons プレハブを TableAnchor 子オブジェクト上にドラッグし、TableAnchor オブジェクトの子としてシーンに追加します。In the Project window, navigate to the Assets > MRTK.Tutorials.MultiUserCapabilities > Prefabs folder and drag the Buttons prefab onto the TableAnchor child object to add it to your scene as a child of the TableAnchor object:

新しく追加された Buttons プレハブが選択されている Unity

シーンを操作するためのボタンの構成Configuring the buttons to operate the scene

このセクションでは一連のボタン イベントを構成して、Azure Spatial Anchors を使用して共有エクスペリエンスでの空間的な位置合わせを実現する方法の基本を示します。In this section, you will configure a series of button events demonstrating the fundamentals of how Azure Spatial Anchors can be used to achieve spatial alignment in a shared experience.

[Hierarchy](ヒエラルキー) ウィンドウで Button オブジェクトを展開し、StartAzureSession という名前の最初の子ボタン オブジェクトを選択します。In the Hierarchy window, expand the Button object and select the first child button object named StartAzureSession:

StartAzureSession ボタン オブジェクトが選択されている Unity

[Inspector](インスペクター) ウィンドウで Interactable (Script) コンポーネントを探し、OnClick () イベントを次のように構成します。In the Inspector window, locate the Interactable (Script) component and configure the OnClick () event as follows:

  • **[None (Object)](なし (オブジェクト))** フィールドに、**TableAnchor** オブジェクトを割り当てるTo the None (Object) field, assign the TableAnchor object
  • [No Function](関数なし) ドロップダウンから、 [AnchorModuleScript] > StartAzureSession () 関数の順に選択するFrom the No Function dropdown, select the AnchorModuleScript > StartAzureSession () function

StartAzureSession ボタンの OnClick イベントが構成された Unity

[Hierarchy](ヒエラルキー) ウィンドウで CreateAzureAnchor という名前の 2 番目の子ボタン オブジェクトを選択し、[Inspector](インスペクター) ウィンドウで Interactable (Script) コンポーネントを探して OnClick () イベントを次のように構成します。In the Hierarchy window, select the second child button object named CreateAzureAnchor, then in the Inspector window, locate the Interactable (Script) component and configure the OnClick () event as follows:

  • **[None (Object)](なし (オブジェクト))** フィールドに、**TableAnchor** オブジェクトを割り当てるTo the None (Object) field, assign the TableAnchor object
  • [No Function](関数なし) ドロップダウンから、 [AnchorModuleScript] > CreateAzureAnchor() 関数の順に選択するFrom the No Function dropdown, select the AnchorModuleScript > CreateAzureAnchor () function
  • 表示される新しい "None (Game Object)"(なし (ゲーム オブジェクト)) フィールドに、TableAnchor オブジェクトを割り当てるTo the new None (Game Object) field that appears, assign the TableAnchor object

CreateAzureAnchor ボタンの OnClick イベントが構成された Unity

[Hierarchy](ヒエラルキー) ウィンドウで ShareAzureAnchor という名前の 3 番目の子ボタン オブジェクトを選択して、[Inspector](インスペクター) ウィンドウで Interactable (Script) コンポーネントを探して OnClick () イベントを次のように構成します。In the Hierarchy window, select the third child button object named ShareAzureAnchor, then in the Inspector window, locate the Interactable (Script) component and configure the OnClick () event as follows:

  • **[None (Object)](なし (オブジェクト))** フィールドに、**TableAnchor** オブジェクトを割り当てるTo the None (Object) field, assign the TableAnchor object
  • [No Function] (関数なし) ドロップダウンから、 [SharingModuleScript] > ShareAzureAnchor() 関数の順に選択するFrom the No Function dropdown, select the SharingModuleScript > ShareAzureAnchor () function

ShareAzureAnchor ボタンの OnClick イベントが構成された Unity

[Hierarchy](階層) ウィンドウで GetAzureAnchor という名前の 4 番目の子ボタン オブジェクトを選択して、[Inspector](インスペクター) ウィンドウで Interactable (Script) コンポーネントを探して OnClick () イベントを次のように構成します。In the Hierarchy window, select the fourth child button object named GetAzureAnchor, then in the Inspector window, locate the Interactable (Script) component and configure the OnClick () event as follows:

  • **[None (Object)](なし (オブジェクト))** フィールドに、**TableAnchor** オブジェクトを割り当てるTo the None (Object) field, assign the TableAnchor object
  • [No Function] (関数なし) ドロップダウンから、 [SharingModuleScript] > GetAzureAnchor() 関数の順に選択するFrom the No Function dropdown, select the SharingModuleScript > GetAzureAnchor () function

GetAzureAnchor ボタンの OnClick イベントが構成された Unity

シーンを Azure リソースに接続するConnecting the scene to the Azure resource

[Hierarchy](ヒエラルキー) ウィンドウで SharedPlayground オブジェクトを展開し、TableAnchor オブジェクトを選択します。In the Hierarchy window, expand the SharedPlayground object and select the TableAnchor object.

[Inspector](インスペクター) ウィンドウで Spatial Anchor Manager (Script) コンポーネントを探し、このチュートリアル シリーズの「前提条件」の部分で作成した Azure Spatial Anchors アカウントからの資格情報を使用して、 [Credentials](資格情報) セクションを構成します。In the Inspector window, locate the Spatial Anchor Manager (Script) component and configure the Credentials section with the credentials from the Azure Spatial Anchors account created as part of the Prerequisites for this tutorial series:

  • "Spatial Anchors Account ID"(Spatial Anchors アカウント ID) フィールドに、Azure Spatial Anchors アカウントからの アカウント ID を貼り付けるIn the Spatial Anchors Account ID field, paste the Account ID from your Azure Spatial Anchors account
  • "Spatial Anchors Account Key"(Spatial Anchors アカウント キー) フィールドに、Azure Spatial Anchors アカウントからのプライマリまたはセカンダリ アクセス キー を貼り付けるIn the Spatial Anchors Account Key field, paste the primary or secondary Access Key from your Azure Spatial Anchors account

Spatial Anchor Manager が構成された Unity

ヒント

シーン内で空間アンカー アカウント ID およびキーを設定するのでなく、プロジェクト全体に対してそれを設定することもできます。ASA を使用して複数のシーンを用意する場合は、これが有利です。Instead of setting the Spatial Anchors Account ID and Key in the scene, you can set it for your entire project, this can be advantageous if you have multiple scenes using ASA. それを行うには、[Project](プロジェクト) ウィンドウで、[Assets](アセット) > [AzureSpatialAnchors.SDK] > [Resources](リソース) > [SpatialAnchorConfig] アセットの順に移動し、次に [Inspector](インスペクター) ウィンドウで値を設定します。To do this, in the Project window, navigate to the Assets > AzureSpatialAnchors.SDK > Resources > SpatialAnchorConfig asset, then set the values in the Inspector window.

[Hierarchy](階層) ウィンドウで、 [TableAnchor] オブジェクトを選択してから、[Inspector](インスペクター) ウィンドウで Anchor Module (Script) コンポーネントを探し、それを次のように構成します。In the Hierarchy window, select the TableAnchor object, then in the Inspector window, locate the Anchor Module (Script) component and configure it as follows:

  • [Public Sharing Pin](パブリック共有ピン) フィールドで、いくつかの数字を変更します。これにより、ピンが自分のプロジェクトに固有のものとなります。In the Public Sharing Pin field, change a few digits, so the pin becomes unique to your project

Anchor Module Script が構成された Unity

TableAnchor オブジェクトを選択したまま、[Inspector](インスペクター) ウィンドウですべてのスクリプト コンポーネントが 有効 になっていることを確認します。With the TableAnchor object still selected, in the Inspector window, make sure all the script components are enabled:

  • Spatial Anchor Manager (Script) コンポーネントの隣にあるチェックボックスをオンにして有効にするCheck the checkbox next to the Spatial Anchor Manager (Script) components to enable it
  • Anchor Module Script (Script) コンポーネントの隣にあるチェックボックスをオンにして有効にするCheck the checkbox next to the Anchor Module Script (Script) components to enable it
  • Sharing Module Script (Script) コンポーネントの隣にあるチェックボックスをオンにして有効にするCheck the checkbox next to the Sharing Module Script (Script) components to enable it

TableAnchor スクリプト コンポーネントが有効にされた Unity

空間的な位置合わせのエクスペリエンスを試すTrying the experience with spatial alignment

注意

Azure Spatial Anchors を Unity で実行することはできません。Azure Spatial Anchors can not run in Unity. そのため、Azure Spatial Anchors の機能をテストするには、最低 2 台のデバイスにプロジェクトを配置する必要があります。Consequently, to test the Azure Spatial Anchors functionality, you need to deploy the project to a minimum of two devices.

Unity プロジェクトをビルドして 2 台のデバイスに配置すると、Azure Anchor ID を共有してデバイス間で空間的な位置合わせを実現できます。If you now build and deploy the Unity project to two devices, you can achieve spatial alignment between the devices by sharing the Azure Anchor ID. これをテストするには、次の手順を実行します。To test it out, you can follow these steps:

  1. デバイス 1 の場合: アプリを開始する (Rover エクスプローラーのインスタンスが作成され、テーブルに配置されます)On device 1: Start the app (the Rover Explorer is instantiated and placed on the table)
  2. デバイス 2 の場合: アプリを開始する (両方のユーザーが Rover エクスプローラーのあるテーブルを見ることができますが、テーブルは同じ場所には表示されず、ユーザー アバターはユーザーが実際にいるところに表示されません)On device 2: Start the app (both users see the table with the Rover Explorer, but the table does not appear in the same place, and the user avatars do not appear where the users are)
  3. デバイス 1 の場合: [Start Azure Session](Azure セッションの開始) ボタンを押すOn device 1: Press the Start Azure Session button
  4. デバイス 1 の場合: [Create Azure Anchor](Azure Anchor の作成) ボタンを押す (TableAnchor オブジェクトの場所にアンカーが作成され、アンカーの情報が Azure リソースに保存されます)。On device 1: Press the Create Azure Anchor button (creates anchor at the location of the TableAnchor object and stores the anchor information in the Azure resource).
  5. デバイス 1 の場合: [Share Azure Anchor](Azure Anchor の共有) ボタンを押す (他のユーザーとアンカー ID がリアルタイムで共有されます)On device 1: Press the Share Azure Anchor button (shares the anchor ID with other users in real-time)
  6. デバイス 2 の場合: [Start Azure Session](Azure セッションの開始) ボタンを押すOn device 2: Press the Start Azure Session button
  7. デバイス 2 の場合: [Get Azure Anchor](Azure Anchor の取得) ボタンを押す (Azure リソースに接続して共有アンカー ID のアンカー情報が取得され、TableAnchor オブジェクトはデバイス 1 でアンカーを作成した場所に移動します)On device 2: Press the Get Azure Anchor button (connects to the Azure resource to retrieve the anchor information for the shared anchor ID, then moves the TableAnchor object to the location where the anchor was created with the device 1)

ヒント

2 台の HoloLens デバイスへのアクセス権がない場合は、モバイル デバイス用の Azure Spatial Anchors のビルドに関するページに従って、ご利用のモバイル デバイスにプロジェクトを配置することができます。If you don't have access to two HoloLens devices, you may follow the Building Azure Spatial Anchors for mobile devices to deploy the project to your mobile device.

結論Congratulations

このチュートリアルでは、Azure の強力な Spatial Anchors を統合して、複数のデバイスを共有エクスペリエンスの中に配置する方法を学習しました。In this tutorial, you learned how to integrate Azure's powerful Spatial Anchors to align devices in a shared experience.

これでこのチュートリアル シリーズは終了となります。Photon アカウントを設定し、PUN アプリを作成し、PUN を Unity プロジェクトに統合し、ユーザー アバターと共有オブジェクトを構成し、最後に Azure Spatial Anchors を使用して複数の参加者を配置する方法を学習しました。This also concludes this tutorial series where you learned how to set up a Photon account, create a PUN app, integrate PUN into the Unity project, configure user avatars and shared objects, and finally align multiple participants using Azure Spatial Anchors.