クイックスタート: Azure Object Anchors を使用する HoloLens アプリを Unity で作成する
このクイックスタートでは、Azure Object Anchors を使用する Unity HoloLens アプリを作成します。 Azure Object Anchors は、3D アセットを HoloLens の物体認識 Mixed Reality エクスペリエンスを実現する AI モデルに変換するマネージド クラウド サービスです。 作業を終えると、Unity で作成された HoloLens アプリで、物理世界のオブジェクトを検出できるようになります。
学習内容は次のとおりです。
- Unity のビルド設定を準備する。
- HoloLens Visual Studio プロジェクトをエクスポートする。
- HoloLens 2 デバイスにアプリを配置して実行する。
前提条件
このクイック スタートを実行するには、以下が必要です。
- ご利用環境にある対象物と、その 3D モデル (CAD またはスキャン済みのいずれか)。
- 以下がインストールされている Windows マシン。
- Git for Windows
- ユニバーサル Windows プラットフォーム開発ワークロードを含む Visual Studio 2019 と Windows 10 SDK (10.0.18362.0 以降) コンポーネント
- Unity 2019.4
- 開発者モードが有効になっている最新の HoloLens 2 デバイス。
- HoloLens を最新のリリースに更新するには、[設定] アプリを開き、[更新とセキュリティ] を選択し、[更新プログラムの確認] を選択します。
Object Anchors アカウントを作成する
まず、Object Anchors サービスを使用してアカウントを作成する必要があります。
Azure portal にアクセスし、 [リソースの作成] を選択します。
Object Anchors リソースを検索します。
「Object Anchors」を検索します。
検索結果の Object Anchors リソースで、[作成] -> [Object Anchors] の順に選択します。
[オブジェクト アンカー アカウント] ダイアログ ボックスで以下を行います。
- 一意のリソース名を入力します。
- リソースを接続するサブスクリプションを選択します。
- リソース グループを作成するか、既存のものを使用します。
- リソースが属するリージョンを選択します。
[作成] を選択して、リソースの作成を開始します。
リソースが作成されたら、[リソースに移動] を選択します。
概要ページで、以下を行います。
アカウント ドメインをメモします。 この情報は後で必要になります。
アカウント ID をメモします。 この情報は後で必要になります。
[アクセス キー] ページに移動し、主キーをメモします。 この情報は後で必要になります。
デバイスのセットアップ
HoloLens にアプリを展開するには、HoloLens をコンピューターとペアリングする必要があります。
- HoloLens で、[設定] -> [更新とセキュリティ] -> [開発者向け] に移動します。
- [Pair](ペアリング) をクリックし、最初の展開時に Visual Studio に PIN を入力するまで画面を開いたままにします。
モデルをアップロードする
アプリを実行する前に、モデルをアプリで使用できるようにする必要があります。 Object Anchors モデルをまだお持ちでない場合は、モデルの作成の手順に従ってモデルを作成します。 その後、ここに戻ります。
HoloLens をオンにして開発デバイス (PC) に接続したら、次の手順に従って、HoloLens の 3D Objects フォルダーにモデルをアップロードします。
Ctrl キーと C キー (Ctrl + C) を押しながら、操作するモデルを選択してコピーします。
Windows ロゴ キーと E キー (Win + E) を押して、エクスプローラーを起動します。 HoloLens が他のドライブやフォルダーと共に、左側のウィンドウに表示されます。
HoloLens のリンクをタップすると、HoloLens デバイスのストレージが右側のペインに表示されます。
エクスプローラーで、[内部ストレージ] > [3D Objects] にアクセスします。 これで、Ctrl キーを押しながら V キー (Ctrl + V) を押すことで、3D Objects フォルダーにモデルを貼り付けることができます。
サンプル プロジェクトを開く
次のコマンドを実行して samples リポジトリを複製します。
git clone https://github.com/Azure/azure-object-anchors.git
cd ./azure-object-anchors
次の手順は、Unity 用 Azure Object Anchors パッケージのダウンロードです。
ここで Unity 用 Azure Object Anchors パッケージ (com.microsoft.azure.object-anchors.runtime
) を見つけます。 目的のバージョンを選択し、 [Download]\(ダウンロード\) ボタンを使用してパッケージをダウンロードします。
Unity で quickstarts/apps/unity/basic
プロジェクトを開きます。
こちらの手順に従い、Unity Package Manager を使用して、ダウンロードした Azure Object Anchors パッケージを Unity プロジェクトにインポートします。
アカウント情報を構成する
次のステップは、自分のアカウントの情報を使用するようにアプリを構成することです。 [Object Anchors アカウントの作成] セクションのアカウント キー、アカウント ID および アカウント ドメイン値をメモします。
[プロジェクト] ウィンドウで Assets\AzureObjectAnchors.SDK\Resources
に進みます。
ObjectAnchorsConfig を選択します。 [インスペクター] ペインで [Object Anchors アカウント キー] の値として Account Key
を、 [Object Anchors アカウント ID] の値として Account ID
を、 [Object Anchors アカウント ドメイン] の値として Account Domain
を入力します。
アプリのビルドと実行
サンプル シーンをビルドする
Unity Editor で、Assets/MixedReality.AzureObjectAnchors/Scenes に移動し、AOASampleScene を開いて、ビルドするシーンの一覧に追加します。
[File](ファイル) -> [Building Settings](ビルド設定) を選択します。 [ユニバーサル Windows プラットフォーム] を選択し、 [Switch Platform](プラットフォームの切り替え) を選択します。 最初にいくつかのコンポーネントをダウンロードする必要がある旨のメッセージが Unity Editor に表示された場合は、それらをダウンロードしてインストールします。 次のスクリーンショットに従って、ビルド設定を構成します。 AOASampleScene のチェック ボックス "だけ" がオンになっていることを確認します。それ以外のシーンは含めないでください。
[Build](ビルド) を選択し、出力フォルダーを選択します。 これで、VS プロジェクトを出力フォルダーに生成できるようになりました。
アプリを構築してデプロイする
Unity によって生成された .sln
ファイルを開きます。 ビルド構成を次のように変更します。
次に、アプリをデプロイし、デバッグするために、 [Remote Machine IP address](リモート マシンの IP アドレス) を構成する必要があります。
[App project](アプリ プロジェクト) を右クリックし、 [Properties](プロパティ) をクリックします。 [Properties](プロパティ) ページで、[Configuration Properties](構成プロパティ) -> [Debugging](デバッグ) を選択します。 [Machine Name](マシン名) の値を HoloLens デバイスの IP アドレスに変更し、 [Apply](適用) をクリックします。
プロパティ ページを閉じます。 [Remote Machine](リモート マシン) をクリックします。 アプリのビルドとリモート デバイスへのデプロイが開始されます。 デバイスがアクティブであることを確認します。
Unity のスプラッシュ スクリーンの後に、オブジェクト オブザーバーが初期化されたことを示すメッセージが表示されます。
アプリによって、ビューの現在のフィールドでオブジェクトが検索され、検出されるとそれらが追跡されます。 インスタンスは、ユーザーの場所から 6 メートル離れると削除されます。 デバッグ テキストには、ID、更新されたタイムスタンプ、サーフェス カバレッジの比率など、インスタンスの詳細が表示されます。
トラブルシューティング
ヒント
オブジェクトが検出されない場合は、次の手順を試すことができます。
- オブジェクトに正しいモデルを使用していることを再確認します。
- 検索領域を視覚化し、ターゲット オブジェクトが対象になっていることを確認します。
MinSurfaceCoverage
を減らしてみます。- Windows デバイス ポータルで、[表示] -> [3D Views](3D ビュー) をクリックし、スキャンが完了したかどうかを確認します。