1.HoloLens 2 用の Azure Cloud Services1. Azure Cloud Services for HoloLens 2

概要Overview

このチュートリアル シリーズへようこそ。ここでは、Azure クラウド サービスを HoloLens 2 アプリケーションに導入することに重点を置いています。Welcome to this series of tutorials focused on bringing Azure Cloud services into a HoloLens 2 application. この 5 部構成のチュートリアル シリーズでは、複数の Azure クラウド サービスを HoloLens 2 用の Unity プロジェクトに統合する方法について学習します。In this five-part tutorial series, you will learn how to integrate several Azure Cloud services into a Unity project for HoloLens 2. 連続する各章では、新しい Azure クラウド サービスを追加して、アプリケーションの機能とユーザー エクスペリエンスを拡張しながら、各 Azure クラウド サービスの基礎について学びます。With each consecutive chapter, you will add new Azure Cloud services to expand the application features and user experience, while teaching you the fundamentals of each Azure Cloud service.

注意

このチュートリアル シリーズでは HoloLens 2 に重点を置いていますが、Unity のクロスプラットフォームの性質により、学習内容のほとんどがデスクトップおよび Smartphone アプリケーションにも適用されます。This tutorial series will focus on the HoloLens 2 but due the cross-platform nature of Unity, most of your learnings will also apply for Desktop and Smartphone applications.

この最初のチュートリアルでは、シリーズの目標、使用する各 Azure Cloud サービス、および最初の Unity プロジェクトの設定について紹介します。In this first tutorial, you'll be introduced to the goals of the series and each Azure Cloud service you'll be using, as well as setting up the initial Unity project.

2 番目のチュートリアルである「Azure Storage の統合」では、Azure Storage をデモ アプリケーションの永続化ソリューションとして統合することから始めます。In the second tutorial, Integrating Azure Storage, you'll start off by integrating Azure Storage as the persistence solution for the demo application. また、Blob Storage と Table Storage の違いについて学習し、必要なプロジェクト リソースを準備して、シーンを設定します。You'll also learn the differences between Blob Storage and Table Storage, prepare the needed project resources, setup the scene. 最後に、データの読み取り、更新、および削除操作を確認する方法について説明します。Finally, you'll learn how to verify the read, update, and delete data operations.

3 番目のチュートリアルである、「Azure Custom Vision の統合」に進んで、Azure Custom Vision を使用して、HoloLens 2 アプリケーションで画像をトレーニングおよび検出します。Continuing with the third tutorial, Integrating Azure Custom Vision, you will use Azure Custom Vision to train and detect images in the HoloLens 2 application. この章では、まず、独自の Azure Custom Vision リソースを設定し、シーン コンポーネントを準備し、アプリケーション内部から独自の画像をトレーニングおよび検出してアクションを開始します。The chapter starts off with setting up your own Azure Custom Vision resource, preparing the scene components and getting into action by training and detecting your own images from inside the application.

次に、4 番目のチュートリアルである、「Azure Spatial Anchors の統合」に進んで、Azure Spatial Anchors サービスを調べて場所の保存と検索を行い、主要概念について学習し、必要なリソースを準備し、シーンを設定してアプリケーションでの新機能の使用を開始します。Next you advance in the fourth tutorial, Integrating Azure Spatial Anchors, with exploring Azure Spatial Anchors service to save and find locations, learn the core concepts, prepare necessary resources, setup the scene and start using the new feature in the application.

Azure Bot Service と LUIS との統合に関する、5 番目のチュートリアルでは、アプリケーションに自然言語という新しいユーザー操作の方法を与えることで完了します。With the fifth tutorial, Integrating Azure Bot Service with LUIS, you finalize by giving the application a new method of user interaction: natural language! この機能は、Azure Bot Framework を Language Understanding (LUIS) と共に使用することで実現されます。This feature will be realized by using the Azure Bot Framework together with Language Understanding (LUIS). この最後の章では、Azure Bot Service の基本について説明し、プロセスを高速化するために、Bot Framework Composer をゼロ コード ソリューションとして使用します。This final chapter teaches you the basics of Azure Bot Service and to speed up the process you will be using the Bot Framework Composer as a zero code solution. ボットが作成されたら、それをシーンに統合し、HoloLens 2 アプリケーションの最終ステージで実行します。Once the bot is created, you will integrate it into the scene and give it a run with the final stage of the HoloLens 2 application.

アプリケーションの目標Application goals

このチュートリアル シリーズでは、画像からオブジェクトを検出し、その空間位置を見つけることができる HoloLens 2 アプリケーションをビルドします。In this tutorial series, you will build a HoloLens 2 application that can detect objects from images and find its spatial location. ドメインの言語を設定するために、追跡対象オブジェクト からこのようなエンティティを呼び出すことができます。To set a domain language, you call such entities from now Tracked Object. ユーザーは 追跡対象オブジェクト を作成し、コンピューター ビジョンまたは空間位置、あるいはその両方を使用して画像のセットを関連付けることができます。The user can create a Tracked Object to either or both associate a set of images via computer vision and/or a spatial location. すべてのデータをクラウドに保存する必要があります。All data must be persisted into the cloud. さらに、アプリケーションの一部の側面は、ボットを通じてサポートされる自然言語によって制御されることもあります。Furthermore some aspects of the application will be optionally controlled by natural language assisted through a bot.

機能Features

  • データと画像の基本的な管理Basic managing of data and images
  • 画像のトレーニングと検出Image training and detection
  • 空間位置の格納とそのガイダンスStoring a spatial location and guidance to it
  • 自然言語を介して一部の機能を使用するためのボット サポートBot assistant to use some features via natural language

Azure クラウド サービスAzure Cloud services

以下の Azure Cloud サービスを使用して、上の機能を実装します。You'll use the following Azure Cloud services to implement the above features:

Azure Storage に関するページAzure Storage

永続化ソリューションには、Azure Storage を使用します。You will use Azure Storage for the persistence solution. これにより、データをテーブルに格納し、画像のような大きなバイナリをアップロードすることができます。It allows you to store data on a table and upload large binaries like images.

Azure Custom VisionAzure Custom Vision

Azure Custom Vision (Azure Cognitive Services の一部) を使用すると、画像のセットを "追跡対象オブジェクト" に関連付けたり、そのセットで機械学習モデルをトレーニングしたり、"追跡対象オブジェクト" を検出したりすることができます。With Azure Custom Vision (part of the Azure Cognitive Services) you can associate to Tracked Objects a set of images, train a machine learning model on the set and detect the Tracked Object.

Azure Spatial AnchorsAzure Spatial Anchors

"追跡対象オブジェクト" の場所を格納し、それを見つけられるようにガイドするには、Azure Spatial Anchors を使用します。To store a Tracked Object location and give a guided directions to find it, you use Azure Spatial Anchors.

Azure Bot ServiceAzure Bot Service

アプリケーションは主に従来の UI で起動するため、Azure Bot Service を使用して、何らかの個性を加え、新しい操作方法として機能するようにします。The application is mainly driven by traditional UI, so you use the Azure Bot Service to add some personality and act as a new interaction method.

前提条件Prerequisites

ヒント

入門チュートリアル シリーズをまだ完了していない場合は、まずこれらのチュートリアルを完了することをお勧めします。If you have not completed the Getting started tutorials series yet, it's recommended that you complete those tutorials first.

  • 正しいツールがインストールされている構成済みの Windows 10 PCA Windows 10 PC configured with the correct tools installed
  • Windows 10 SDK 10.0.18362.0 以降Windows 10 SDK 10.0.18362.0 or later
  • 基本的な C# プログラミング能力Some basic C# programming ability
  • 開発用に構成された HoloLens 2 デバイスA HoloLens 2 device configured for development
  • Unity エディターからテストする場合は、接続された Web カメラA connected webcam if you like to test from Unity editor
  • Unity 2019 LTS がインストールされ、ユニバーサル Windows プラットフォーム ビルド サポート モジュールが追加された Unity HubUnity Hub with Unity 2019 LTS installed and the Universal Windows Platform Build Support module added

注意事項

このチュートリアル シリーズで推奨されている Unity バージョンは、Unity 2019 LTS です。The recommended Unity version for this tutorial series is Unity 2019 LTS. これは、上のリンクされた前提条件に記載されている Unity のバージョン要件または推奨事項に代わるものです。This supersedes any Unity version requirements or recommendations stated in the prerequisites linked above.

Unity プロジェクトの作成と準備Creating and preparing the Unity project

このセクションでは、新しい Unity プロジェクトを作成し、MRTK 開発用に準備します。In this section, you will create a new Unity project and get it ready for MRTK development.

このためには、まず「プロジェクトと最初のアプリケーションの初期化」に従ってください (「デバイスへのアプリケーションのビルド」の手順は除く)。これには、次の手順が含まれます。For this, first follow the Initializing your project and first application, excluding the Build your application to your device instructions, which includes the following steps:

  1. Unity プロジェクトを作成し、"Azure クラウド チュートリアル" などの適切な名前を付けるCreating the Unity project and give it a suitable name, for example, Azure Cloud Tutorials
  2. ビルド プラットフォームを切り替えるSwitching the build platform
  3. TextMeshPro の重要なリソースをインポートするImporting the TextMeshPro Essential Resources
  4. Mixed Reality Toolkit をインポートするImporting the Mixed Reality Toolkit
  5. Unity プロジェクトを構成するConfiguring the Unity project
  6. シーンを作成して構成し、シーンに AzureCloudServices などの適切な名前を付けるCreating and configuring the scene and give the scene a suitable name, for example, AzureCloudServices

その後、「空間認識表示オプションの変更」の手順に従って、シーンの MRTK 構成プロファイルを [DefaultHoloLens2ConfigurationProfile] に変更し、空間認識メッシュの表示オプションを [Occlusion](オクルージョン) に変更します。Then follow the Changing the Spatial Awareness Display Option instructions to change the MRTK configuration profile for your scene to the DefaultHoloLens2ConfigurationProfile and change the display options for the spatial awareness mesh to Occlusion.

組み込みの Unity パッケージのインストールInstalling inbuilt Unity packages

Unity メニューで、 [ウィンドウ] > [パッケージ マネージャー] の順に選択して、[パッケージ マネージャー] ウィンドウを開きます。その後、 [AR Foundation] を選択し、 [インストール] ボタンをクリックしてパッケージをインストールします。In the Unity menu, select Window > Package Manager to open the Package Manager window, then select AR Foundation and click the Install button to install the package:

AR Foundation が選択されている Unity Package Manager ウィンドウ

注意

Azure Spatial Anchors SDK で必要になるため、AR Foundation パッケージをインストールします。これは、次のセクションでインポートします。You are installing the AR Foundation package because the Azure Spatial Anchors SDK requires it, which you will import in the next section.

チュートリアルのアセットのインポートImporting the tutorial assets

次の Unity カスタム パッケージを、記載されている順で ダウンロードして インポート します。Download and import the following Unity custom packages in the order they are listed:

ヒント

Unity カスタム パッケージをインポートする方法については、「Mixed Reality Toolkit をインポートする」の手順を参照してください。For a reminder on how to import a Unity custom package, you can refer to the Import the Mixed Reality Toolkit instructions.

チュートリアルのアセットをインポートすると、プロジェクト ウィンドウは次のようになります。After you have imported the tutorial assets your Project window should look similar to this:

チュートリアルのアセットがインポートされた後の Unity の [Hierarchy](階層)、[Scene](シーン)、[Project](プロジェクト) ウィンドウ

注意

"WorldAnchor.SetNativeSpatialAnchorPtr(IntPtr)" と "WorldAnchor.GetNativeSpatialAnchorPtr()" が廃止されていることに関する CS0618 警告が表示されても、無視してかまいません。If you see any CS0618 warnings regarding 'WorldAnchor.SetNativeSpatialAnchorPtr(IntPtr)' and 'WorldAnchor.GetNativeSpatialAnchorPtr()' being obsolete, you can ignore these warnings.

シーンの作成と準備Creating and preparing the scene

このセクションでは、チュートリアルのプレハブをいくつか追加してシーンを準備します。In this section, you will prepare the scene by adding some of the tutorial prefabs.

[プロジェクト] ウィンドウで、Assets > MRTK.Tutorials.AzureCloudServices > Prefabs > Manager フォルダーの順に移動します。In the Project window, navigate to Assets > MRTK.Tutorials.AzureCloudServices > Prefabs > Manager folder. CTRL ボタンを押したまま、 [SceneController][RootMenu] および [DataManager] をクリックして、3 つのプレハブを選択します。While holding down the CTRL button, click on SceneController, RootMenu and DataManager to select the three prefabs:

SceneController、RootMenu、DataManager の各プレハブが選択されている Unity

SceneController (プレハブ) には、SceneController (スクリプト)UnityDispatcher (スクリプト) の 2 つのスクリプトが含まれています。The SceneController (prefab) contains two scripts, SceneController (script) and UnityDispatcher (script). SceneController スクリプト コンポーネントには、いくつかの UX 関数が含まれており、写真キャプチャ機能が促進されますが、UnityDispatcher は、Unity メイン スレッドでのアクションの実行を許可するヘルパー クラスです。The SceneController script component contains several UX functions and facilitates the photo capture functionality while UnityDispatcher is a helper class to allow execute actions on the Unity main thread.

RootMenu (プレハブ) は、さまざまな小さいスクリプト コンポーネントを介して相互に接続され、アプリケーションの一般的な UX フローを制御する UI ウィンドウをすべて保持する主要な UI プレハブです。The RootMenu (prefab) is the primary UI prefab that holds all UI windows that are connected to each other through various small script components and control the general UX flow of the application.

DataManager (プレハブ) は、Azure Storage との対話を担当します。これについては、次のチュートリアルで詳しく説明します。The DataManager (prefab) is responsible for talking to Azure storage and will be explained further in the next tutorial.

ここで、3 つのプレハブを選択したまま、それらを [階層] ウィンドウにドラッグしてシーンに追加します。Now with the three prefabs still selected, drag them into the Hierarchy window to add them to the scene:

新しく追加された SceneController、RootMenu、DataManager の各プレハブがまだ選択されている Unity

シーン内のオブジェクトに焦点を合わせるために、RootMenu オブジェクトをダブルクリックし、もう一度少しズームアウトすることができます。To focus in on the objects in the scene, you can double-click on the RootMenu object, and then zoom slightly out again:

RootMenu オブジェクトが選択されている Unity

ヒント

シーンに大きいアイコンが表示されている場合 (たとえば、大きいフレームの 'T' アイコンが邪魔になる場合)、ギズモをオフに切り替えることによってこれらを非表示にすることができます。If you find the large icons in your scene, for example, the large framed 'T' icons distracting, you can hide these by toggling the Gizmos to the off position.

シーンの構成Configuring the scene

このセクションでは、SceneManagerDataManager および RootMenu を一緒に接続し、作業シーンを次の「Azure Storage の統合」チュートリアルのために準備します。In this section, you will connect SceneManager, DataManager and RootMenu together to have a working scene to be ready for the following Integrating Azure storage tutorial.

オブジェクトを接続するConnect the objects

[階層] ウィンドウで、DataManager オブジェクトを選択します。In the Hierarchy window, select the DataManager object:

DataManager オブジェクトが選択されている Unity

[インスペクター] ウィンドウで、DataManager (Script) コンポーネントを見つけます。On Data Manager Ready () イベントには空のスロットが表示されます。In the Inspector window, locate the DataManager (Script) component and you will see an empty slot on the On Data Manager Ready () event. ここで、[階層] ウィンドウから、SceneController オブジェクトを On Data Manager Ready () イベントにドラッグします。Now from the Hierarchy window drag the SceneController object into the On Data Manager Ready () event.

DataManager イベント リスナーが追加された Unity

イベントのドロップダウン メニューがアクティブになったことがわかります。このドロップダウン メニューをクリックして、SceneController に移動し、サブ メニューで [Init ()] オプションを選択します。You will notice that the dropdown menu of the event became active, click on the dropdown menu and navigate to SceneController and in the sub menu select the Init () option:

DataManager イベント アクションが追加された Unity

[階層] ウィンドウで SceneController オブジェクトを選択すると、[インスペクター] に SceneController (スクリプト) コンポーネントが表示されます。From the Hierarchy window, select the SceneController object, there in the Inspector you will find the SceneController (script) component.

SceneController が選択されている Unity

設定されていないフィールドがいくつかあることがわかります。これを変更してみましょう。You will see that there are several unpopulated fields, let's change that. DataManager オブジェクトを [階層] から [データ マネージャー] フィールドに移動し、RootMenu GameObject を [階層] から [メイン メニュー] フィールドに移動します。Move the DataManager object from the Hierarchy into the Data Manager field and move the RootMenu GameObject from the Hierarchy into the Main Menu field.

SceneController が構成された Unity

これで、今後のチュートリアルのためにシーンの準備ができました。Now your scene is ready for the upcoming tutorials. これは必ずプロジェクトに保存してください。Don't forget to save it into your project.

プロジェクト ビルド パイプラインを準備するPrepare project build pipeline

プロジェクトにはまだコンテンツが入力されていませんが、いくつかの準備を行い、プロジェクトを HoloLens 2 用にビルドできるようにする必要があります。While the project yet has to be filled with content, you have to perform some preparations, so the project is ready for building for HoloLens 2.

1.必要な機能をさらに追加する1. Add additional required capabilities

Unity メニューで、 [Edit](編集) > [Project Settings...](プロジェクト設定...) を選択し、[Project Settings](プロジェクト設定) ウィンドウを開きます。In the Unity menu, select Edit > Project Settings... to open the Project Settings window:

[Project Settings](プロジェクト設定) が開かれている Unity

[Project Settings](プロジェクトの設定) ウィンドウで、 [Player](プレーヤー) [Publishing Settings](公開の設定) の順に選択します。In the Project Settings window, select Player and then Publishing Settings:

Unity の [Publishing Settings](公開の設定)

[Publishing Settings](公開の設定) で、 [Capabilities](機能) セクションまで下にスクロールし、チュートリアルの最初にプロジェクトを作成したときに有効にした InternetClientMicrophone および SpatialPerception の機能が有効になっていることを再確認します。In the Publishing Settings, scroll down to the Capabilities section and double-check that the InternetClient, Microphone and SpatialPerception capabilities, which you enabled when you created the project at the beginning of the tutorial, are enabled. その後、InternetClientServerPrivateNetworkClientServer、および Webcam の機能を有効にします。Then, enable the InternetClientServer, PrivateNetworkClientServer, and Webcam capabilities:

Unity の機能

2.HoloLens 2 にアプリをデプロイする2. Deploy the app to your HoloLens 2

このチュートリアル シリーズで使用するすべての機能が、Unity エディター内で実行できるわけではありません。つまり、アプリケーションを HoloLens 2 デバイスにデプロイする方法についてよく理解しておく必要があります。Not all features that you will use in this tutorial series can run inside the Unity editor, this means that you need to be familiar with deploying the application to your HoloLens 2 device.

ヒント

HoloLens 2 に Unity プロジェクトをビルドしてデプロイする方法については、「入門チュートリアル」のデバイスへのアプリケーションのビルドに関するセクションの手順を参照してください。For a reminder on how to build and deploy your Unity project to HoloLens 2, you can refer to the Getting started tutorials - Build your application to your device instructions.

3.HoloLens 2 でアプリを実行し、アプリ内の指示に従う3. Run the app on your HoloLens 2 and follow the in-app instructions

注意事項

すべての Azure Services でインターネットが使用されるため、デバイスがインターネットに接続されていることを確認してください。All Azure Services uses the internet, so make sure your device is connected to the internet.

アプリケーションがデバイスで実行されている場合は、次の要求された機能へのアクセスを受け入れます。When the application is running on your device, accept access to the following requested capabilities:

  • マイクMicrophone
  • カメラCamera

これらの機能は、"チャット ボット" や Custom Vision などのサービスを正しく機能させるために必要です。These capabilities are required for services like Chat Bot and Custom Vision to function properly.

結論Congratulations

このチュートリアルでは、チュートリアル シリーズの概要を確認し、実装する機能についてと、HoloLens 2 アプリケーションの実行と Azure クラウド サービスがどのように結び付いているかについて学習しました。In this tutorial, you were introduced to the tutorial series, learned about the features you will implement and how Azure Cloud services tie in to making your HoloLens 2 application happen. 必要なコンポーネントをプロジェクトに追加し、このチュートリアル シリーズのためにシーンを準備しました。You added the required components into the project and prepared the scene for this tutorial series.

次のレッスンでは、データと画像を格納するためのクラウド ベースの永続化ソリューションとして、Azure Storage を使用します。In the next lesson, you will use Azure storage as a cloud based persistence solution for storing data and images.