演習 - HoloLens 2 用の Azure Cloud Services
連続する各章では、新しい Azure Cloud サービスを追加して、アプリケーション機能とユーザー エクスペリエンスを拡張しながら、各 Azure クラウド サービスの基礎について説明します。
注
このモジュール シリーズでは HoloLens 2 に焦点を当てますが、Unity のクロスプラットフォームの性質により、これらのレッスンのほとんどはデスクトップ アプリケーションとモバイル アプリケーションにも適用されます。
アプリケーションの目標
このモジュール シリーズでは、画像からオブジェクトを検出してその空間の場所を見つけることができる HoloLens 2 アプリケーションを構築します。 これらのオブジェクトは 追跡対象オブジェクトと見なします。
ユーザーは、 追跡対象オブジェクト を作成して、コンピューター ビジョン、空間位置、またはその両方を介して一連の画像を関連付けることができます。 すべてのデータをクラウドに保持する必要があります。
特徴
- データとイメージの基本的な管理
- 画像のトレーニングと検出
- 空間位置の保存とその案内
Azure クラウド サービス
上記の機能を実装するには、次の Azure Cloud サービスを使用します。
Azure Storage
Azure Storage を使用してデータを保持します。 Azure Storage を使用すると、テーブルにデータを格納し、画像などの大きなバイナリをアップロードできます。
Azure カスタム ビジョン
Azure AI Custom Vision (Azure AI サービスの一部) を使用すると、一連の画像を追跡対象オブジェクトに関連付け、作成したセットで機械学習モデルをトレーニングし、追跡対象オブジェクトを検出できます。
Unity プロジェクトを作成して準備する
このセクションでは、新しい Unity プロジェクトを作成し、MRTK 開発の準備をします。
まず、 HoloLens 2 ラーニング パスの手順に従います。ただし、次の手順を含むデバイスへのアプリケーションのビルド手順は除きます。
- Unity プロジェクトを作成し、適切な名前を付けます ( Azure Cloud チュートリアルなど)
- ビルド プラットフォームの切り替え
- TextMeshPro Essential リソースのインポート
- Mixed Reality Toolkit のインポート
- Unity プロジェクトの構成
- シーンを作成して構成し、シーンに適切な名前を付けます (例: AzureCloudServices)
チュートリアルのアセットをインポートする
次の Unity カスタム パッケージを 一覧の順序でダウンロードしてインポートします。
チュートリアル アセットをインポートすると、プロジェクト ウィンドウは次のようになります。
シーンを準備する
このセクションでは、いくつかのチュートリアル プレハブを追加してシーンを準備します。
[プロジェクト] ウィンドウで、 Assets>MRTK.Tutorials.AzureCloudServices>Prefabs>Manager フォルダーに移動します。 Ctrl ボタンを押しながら、 SceneController、 RootMenu 、 DataManager を選択して、次の 3 つのプレハブを選択します。
SceneController (プレハブ) には、SceneController (スクリプト) と UnityDispatcher (スクリプト) の 2 つのスクリプトが含まれています。 SceneController スクリプト コンポーネントには、いくつかの UX 関数が含まれており、写真キャプチャ機能が容易になりますが、UnityDispatcher は Unity メイン スレッドでアクションを実行するためのヘルパー クラスです。
RootMenu (プレハブ) は、さまざまな小さなスクリプト コンポーネントを介して相互に接続されているすべての UI ウィンドウを保持し、アプリケーションの一般的な UX フローを制御する主要な UI プレハブです。
DataManager (プレハブ) は Azure Storage との通信を担当しており、次のチュートリアルでさらに説明します。
次に、3 つのプレハブを選択したまま、[階層] ウィンドウにドラッグしてシーンに追加します。
シーン内のオブジェクトにフォーカスを合わせるには、 RootMenu オブジェクトをダブルクリックしてから、もう一度少し縮小します。 RootMenu オブジェクトを選択したまま、Transform コンポーネントの値を次のように変更します。
位置: X = 0.0、Y = 1.6、Z = 0.6
ヒント
シーン内の大きなアイコン (たとえば、大きなフレームの 'T' アイコン) が見つからない場合は、ギズモをオフの位置 に切り替えることで 非表示にすることができます。
シーンの構成
このセクションでは、 SceneManager、 DataManager、 RootMenu を接続して、次の Azure ストレージ統合チュートリアルの作業シーンを作成します。
オブジェクトを接続する
[階層] ウィンドウで、 DataManager オブジェクトを選択します。
[インスペクター] ウィンドウで、 DataManager (スクリプト) コンポーネントを見つけます。 On Data Manager Ready () イベントに空のスロットが表示されます。 SceneController オブジェクトを [階層] ウィンドウから On Data Manager Ready () イベントにドラッグします。
イベントのドロップダウン メニューがアクティブになりました。 ドロップダウン メニューを選択し、 SceneController に移動し、サブメニューで Init () オプションを選択します。
[階層] ウィンドウで、 SceneController オブジェクトを選択します。 インスペクターには SceneController (スクリプト) コンポーネントがあります。
現在、いくつかの未設定のフィールドがあります。変更してみましょう。 [階層] から [データ マネージャー] フィールドに DataManager オブジェクトを移動し、[階層] から [メイン メニュー] フィールドに RootMenu>MainMenu GameObject を移動します。
[階層] ウィンドウで、 MRTK XR Rig オブジェクトを選択します。 MRTK Speech 子オブジェクトが有効になっていることを確認します。 これにより、"メニューを開く" と言ってメニューを開きます。
これで、シーンは次回以降のチュートリアルへの準備が整いました。 プロジェクトに保存することを忘れないでください。
プロジェクトビルドパイプラインを準備する
注
HoloLens 2 でのビルドとテストは必須ではありません。 HoloLens デバイスがない場合は、 HoloLens 2 エミュレーター でテストできます。 HoloLens.com でデバイスを購入できます。
シーンを終了する前に、 HoloLens 2 用にビルドするプロジェクトを準備しましょう。
1. その他の必要な機能を追加する
Unity メニューの [編集>プロジェクト設定... を選択して、[プロジェクト設定] ウィンドウを開きます。
[プロジェクト設定] ウィンドウで、[ プレーヤー] を選択し、[ 発行設定] を選択します。
[発行設定] で、[機能] セクションまで下にスクロールし、InternetClient、Microphone、SpatialPerception の機能 (チュートリアルの開始時にプロジェクトを作成したときに有効にした機能) が有効になっていることを再確認します。 次に、 InternetClientServer、 PrivateNetworkClientServer、および Web カメラ の機能を有効にします。
2. HoloLens 2 にアプリを展開する
このチュートリアル シリーズで使用するすべての機能を Unity エディター内で実行することはできません。 そのため、HoloLens 2 デバイスまたはエミュレーターにアプリケーションをデプロイする方法について理解しておく必要があります。
ヒント
Unity プロジェクトをビルドして HoloLens 2 にデプロイする方法のリマインダーについては、概要チュートリアルの「 アプリケーションのビルドとデプロイ 」の手順を参照してください。
3. HoloLens 2 でアプリを実行し、アプリ内の指示に従います
注意事項
すべての Azure サービスはインターネットを使用するため、デバイスがインターネットに接続されていることを確認します。
アプリケーションがデバイスで実行されている場合は、次の要求された機能へのアクセスを許可します。
- マイク
- カメラ
これらの機能は、 Custom Vision などのサービスが正常に機能するために必要です。