演習 - Azure Spatial Anchors の概要

完了

このユニットでは、次の操作に必要な手順を調べます。

  • Azure Spatial Anchors セッションを開始および停止する。
  • 1 つのデバイスで Azure Spatial Anchors を作成、アップロード、ダウンロードする。

この Learn モジュールの前提条件を満たすと、OpenXR と MRTK3 用に Unity プロジェクトが設定および構成されているはずです。 そのプロジェクトを開き、適切な機能が選択されていることを確認します。

  1. [編集] > [プロジェクト設定] >[プレーヤー] > [公開の設定] の順に移動します。
  2. [機能] セクションまで下にスクロールし、まだ選択していない場合は、次の機能を選択します。
  • SpatialPerception
  • InternetClient
  • PrivateNetworkClientServer

完了したら、[プロジェクト設定] ウィンドウを閉じて、次の手順に進みます。

組み込みの Unity パッケージをインストールし、チュートリアル アセットをインポートする

  1. メニュー バーで、[ウィンドウ]>[パッケージ マネージャー] の順に選択します。

  2. AR Foundation バージョン 5.0.3 または最新バージョンがインストールされていることを確認します。

    Screenshot of selections for verifying the AR Foundation version for Package Manager.

チュートリアルのアセットをインポートする

  1. こちらのチュートリアルに従って、Azure Spatial Anchors SDK V2.12 または最新バージョンをプロジェクトに追加します。

  2. 次の Unity カスタム パッケージを、次の順序でダウンロードしてインポートします。

    Note

    MRTK3 と ASA の両方をインポートすると、ARFoundation パッケージ バージョンとインポートされた ARSubsystems バージョンが一致しない場合にエラーが発生することがあります。 これが修正されるまでは、回避策として手動でプロジェクトのパッケージ マネージャーに com.unity.xr.arsubsystems バージョン 5.0.2 を追加できます。

    ARSubsystems が非推奨になったという警告が表示されますが、無視してかまいません。 また、"WorldAnchor.SetNativeSpatialAnchorPtr(IntPtr)" が古いことを示す CS0618 警告が表示された場合も、無視してかまいません。

シーンを準備する

このセクションでは、いくつかのチュートリアル プレハブを追加することでシーンを準備します。

  1. [プロジェクト] ペインで、[アセット]>[MRTK.Tutorials.AzureSpatialAnchors]>[プレハブ] フォルダーの順に移動し、次のプレハブを [階層] ペインにドラッグしてシーンに追加します。

    • ButtonParent プレハブ
    • Instructions プレハブ
    • ParentAnchor プレハブ
    • ButtonParent の [Tranform/Position] (変換/位置) の値を次のように変更します: X = 0.0、Y = 1.6、Z = 0.6
    • Instructions の [Tranform/Position] (変換/位置) の値を次のように変更します: X = -0.8、Y = 2.0、Z = 2.0
    • ParentAnchor の [Tranform/Position] (変換/位置) の値を次のように変更します: X = -0.3、Y = 1.5、Z = 0.6 Screenshot of prefabs added to the Hierarchy pane.

    ヒント

    シーン内の大きなアイコン (たとえば、大きなフレームで囲まれた "T" アイコンなど) が邪魔になる場合は、Gizmos ドロップダウンを開き、個々のオブジェクトのアイコン表示をオフにすることで、それらを非表示にすることができます。

  2. [階層] ペインで [MRTK XR Rig]>[カメラのオフセット] の順に選択します。

  3. [インスペクター] ペインで、[コンポーネントの追加] ボタンを使用して次のコンポーネントを追加します。

    • AR アンカー マネージャー (スクリプト)
    • DisableDiagnosticsSystem (スクリプト)

    Note

    [AR Anchor Manager (Script)] (AR Anchor Manager (スクリプト)) コンポーネントを追加すると、[XR Origin] (XR の原点) コンポーネントが自動的に追加されます。これは、[AR Anchor Manager (Script)] (AR Anchor Manager (スクリプト)) コンポーネントにはこのコンポーネントが必要であるためです。

    Screenshot of adding AR Anchor Manager.

シーンを操作するボタンを構成する

このセクションでは、スクリプトをシーンに追加して、アプリでのローカルのアンカーと空間アンカーの両方の基本的な動作方法を示す一連のボタン イベントを作成します。

  1. [階層] ペインで、[ButtonParent] オブジェクトを展開し、最初の子オブジェクト [StartAzureSession] を選択します。

  2. [Inspector] (インスペクター) ペインで [Pressable Button] (押すことができるボタン) コンポーネントに移動します。 On Clicked () イベントがあります。

  3. [Hierarchy] (階層)ParentAnchor オブジェクトを選び、それを [Inspector] (インスペクター) にドラッグし、On Click() イベントの [None (Object)] (なし (オブジェクト)) フィールドにドロップします。

  4. [No Function] (関数なし) ドロップダウンを選び、AnchorModuleScript>StartAzureSession () を選びます。 この関数は、イベントがトリガーされたときに実行されます。

    Screenshot that shows Unity with the StartAzureSession button's OnClick event configured.

  5. [ButtonParent] 子リストの [階層] ペインで、[StopAzureSession] を選択します

  6. [Inspector] (インスペクター) ペインで [Pressable Button] (押すことができるボタン) コンポーネントに移動します。

  7. [階層][ParentAnchor] オブジェクトを選択して、それを [インスペクター] にドラッグし、[On Click()] イベントの [なし (オブジェクト)] フィールドにドロップします。

  8. [No Function] (関数なし) ドロップダウンを選び、AnchorModuleScript>StopAzureSession () を選びます。

    Screenshot of Unity with the StopAzureSession button's OnClick event configured.

  9. [ButtonParent] 子リストの [階層] ペインで、[CreateAzureAnchor] を選択します。

  10. [Inspector] (インスペクター) ペインで [Pressable Button] (押すことができるボタン) コンポーネントに移動します。

  11. [階層][ParentAnchor] オブジェクトを選択して、それを [インスペクター] にドラッグし、[On Click()] イベントの [なし (オブジェクト)] フィールドにドロップします。

  12. [関数なし] ドロップダウンを選択してから、[AnchorModuleScript]>[CreateAzureAnchor] の順に選択します。

  13. [ParentAnchor] オブジェクトをもう一度選択して、それを [インスペクター] にドラッグし、[AnchorModuleScript.CreateAzureAnchor] のパラメーターにドロップします。

    Screenshot of Unity with the CreateAzureAnchor button's OnClick event configured.

  14. [ButtonParent] 子リストの [階層] ペインで、[RemoveLocalAnchor] を選択します。

  15. [Inspector] (インスペクター) ペインで [Pressable Button] (押すことができるボタン) コンポーネントに移動します。

  16. [階層][ParentAnchor] オブジェクトを選択して、それを [インスペクター] にドラッグし、[On Click()] イベントの [なし (オブジェクト)] フィールドにドロップします。

  17. [関数なし] ドロップダウンを選択してから、[AnchorModuleScript]>[RemoveLocalAnchor] の順に選択します。

  18. [ParentAnchor] オブジェクトをもう一度選択して、それを [インスペクター] にドラッグし、[AnchorModuleScript.RemoveLocalAnchor] のパラメーターにドロップします。

    Screenshot of Unity with the RemoveLocalAnchor button's OnClick event configured.

  19. [ButtonParent] 子リストの [階層] ペインで、[FindAzureAnchor] を選択します。

  20. [Inspector] (インスペクター) ペインで [Pressable Button] (押すことができるボタン) コンポーネントに移動します。

  21. [階層][ParentAnchor] オブジェクトを選択して、それを [インスペクター] にドラッグし、[On Click()] イベントの [なし (オブジェクト)] フィールドにドロップします。

  22. [関数なし] ドロップダウンを選択してから、[AnchorModuleScript]>[FindAzureAnchor] の順に選択します。

    Screenshot of Unity with the FindAzureAnchor button's OnClick event configured.

  23. [ButtonParent] 子リストの [階層] ペインで、[DeleteAzureAnchor] を選択します。

  24. [Inspector] (インスペクター) ペインで [Pressable Button] (押すことができるボタン) コンポーネントに移動します。

  25. [階層][ParentAnchor] オブジェクトを選択して、それを [インスペクター] にドラッグし、[On Click()] イベントの [なし (オブジェクト)] フィールドにドロップします。

  26. [関数なし] ドロップダウンを選択してから、[AnchorModuleScript]>[DeleteAzureAnchor] の順に選択します。

    Screenshot of Unity with the DeleteAzureAnchor button's OnClick event configured.

シーンを Azure リソースに接続する

  1. [階層] ウィンドウで、[ParentAnchor] オブジェクトを選択します。

  2. [インスペクター] ウィンドウで 空間アンカー マネージャー (スクリプト) コンポーネントを見つけます。

  3. このチュートリアル シリーズの「前提条件」の一環として作成した Azure Spatial Anchors アカウントの資格情報を使用して、[資格情報] セクションを構成します。

    • [Spatial Anchors アカウント ID] フィールドに、Azure Spatial Anchors アカウントの [アカウント ID] の値を貼り付けます。
    • [Spatial Anchors アカウント] フィールドに、Azure Spatial Anchors アカウントのプライマリまたはセカンダリ [アクセス キー] の値を貼り付けます。
    • [Spatial Anchors アカウント ドメイン] フィールドに、Azure Spatial Anchors アカウントの [アカウント ドメイン] の値を貼り付けます。

    Screenshot of Unity with the Spatial Anchor Manager configured.

Azure Spatial Anchors の基本動作を試す

Azure Spatial Anchors は Unity では実行できません。 Azure Spatial Anchors の機能をテストするには、ご利用のデバイスにプロジェクトをビルドし、アプリをデプロイする必要があります。

ヒント

Unity プロジェクトをビルドして HoloLens 2 にデプロイする方法については、セクション「(オプション) アプリケーションをビルドおよび展開」から始まる記事「アプリケーションを HoloLens 2 にビルドする」を参照してください。

ご利用のデバイスでアプリが実行されているときに、Azure Spatial Anchor チュートリアルの手順パネルに表示される画面の指示に従います。

  1. キューブを別の場所に移動します。
  2. Azure セッションを開始します。
  3. キューブの場所に Azure アンカーを作成します。
  4. Azure セッションを停止します。
  5. ローカル アンカーを削除して、ユーザーがキューブを移動できるようにします。
  6. キューブを別の場所に移動します。
  7. Azure セッションを開始します。
  8. Azure アンカーを検出して、手順 3 の場所にキューブを配置します。
  9. Azure アンカーを削除します。
  10. Azure セッションを停止します。

注意事項

Azure Spatial Anchors では、インターネットを使用してアンカー データの保存と読み込みを行うため、 ご利用のデバイスがインターネットに接続されていることを確認してください。