Posted at

Azure Spatial Anchors v1.1.0 Unity Android版のデモアプリをビルドしてみる


はじめに

先日、Azure Spatial Anchors v1.1.0がリリースされた。ARCore 1.7に対応した他、HoloLens 2に正式対応したらしい。ぱっと見Unity版のサンプルの構成が微妙に変わっていて英語版のドキュメントも微妙に更新されているが、日本語版はまだ追従していない感じ。まあどっちにしろMSの公式ドキュメントはそのままやっても完了しない場合があるので適当にみながらやってみようと思う

今回は公式の英語版をもとにUnity版 Androidのサンプルアプリのビルドまでをやってみる。環境は以下のような構成でやった


  • Unity 2018.3.12f1 for Mac

  • Android SDK API Level 28 (Android 9.0)

  • Android Studio 3.4

  • Google Pixel 3 (Android 9)

UnityのAndorid SDK設定など、開発に必要なセットアップは終えているものとする


Spatial Anchorsのリソースを作成する

Azure Portalの上部検索フォームにSpatial Anchorsと入力してSpatial Anchors Accounts (プレビュー)を選択する

s1.png

追加ボタンをクリックしてSpatial Anchors AccountブレードのResource Nameサブスクリプションリソースグループ場所 を入力し、New ボタンをクリックする

デプロイが完了したらリソースに移動し、アカウントIDをコピーして控えておく

スクリーンショット 2019-04-23 21.25.39.png

Keys に移動し、Primary Keyをコピーして控えておく

スクリーンショット 2019-04-23 21.31.55.png

Portal側はこれで完了


サンプルプロジェクトをビルドする

arcore-unity-sdkからarcore-unity-sdk-1.7.0.unitypackageをダウンロードする

以下でazure-spatial-anchors-samplesをクローンする

git clone https://github.com/Azure/azure-spatial-anchors-samples.git

Unityを起動して、./azure-spatial-anchors-samples/Unity ディレクトリを開く

バージョンの異なるエディタで...ダイアログが表示された場合、続行 をクリックする

スクリーンショット 2019-04-23 21.39.21.png

ファイル -> ビルド設定 を選択する

スクリーンショット 2019-04-23 21.41.56.png

ビルドに含まれるシーン はデフォルトのまま全選択。プラットフォームAndroidを選択しSwitch Platformボタンをクリックする

スクリーンショット 2019-04-23 21.44.02.png

設定が完了したらビルド設定 を閉じる

アセット -> パッケージをインポート -> カスタムパッケージ を選択する

スクリーンショット 2019-04-23 21.45.29.png

先ほどダウンロードしておいたarcore-unity-sdk-1.7.0.unitypackageを選択してOpenボタンをクリックする

パッケージの内容がすべて選択されているのを確認してインポート ボタンをクリックする

スクリーンショット 2019-04-23 21.47.30.png

プロジェクトからAssets -> AzureSpatialAnchorsPlugin -> Examples -> Resources とフォルダを選択して、AzureSpatialAnchorsDemoConfig アセットを選択する

スクリーンショット 2019-04-23 21.52.44.png

インスペクターで控えておいたSpatial Anchor AccountのAccount IDPrimary Keyを入力してプロジェクトを保存する

スクリーンショット 2019-04-23 21.54.12.png

以下は任意だが、ビルド前にやっておいたほうがいいかもしれない。アセット -> すべてを再インポートを選択してアセットを再構成する

公式のNoteに記載があるが、ビルド後apkを端末で起動するとカメラが正常に起動しない場合がある。そうなったときにアセットを再インポートして再ビルドするとカメラが正常に起動するようになる。ちなみにぼくは再インポートしない場合はすべてカメラが起動しなかった。なので事前にやっといたほうが無難かも

再インポートするとUnityが再起動してアセットが再構成される

スクリーンショット 2019-04-23 21.56.35.png

スクリーンショット 2019-04-23 21.57.32.png

端末(Pixel3)をPCにUSBで接続し、デバッグモードにしておく

ファイル -> ビルド設定 を選択する

スクリーンショット 2019-04-23 22.06.44.png

デバイスを実行しますでPixel3を選択しRefreshボタンをクリックする

ビルドして実行 ボタンをクリックする

スクリーンショット 2019-04-23 22.07.22.png

適当な名前を入力してSaveをクリックする

スクリーンショット 2019-04-23 22.09.06.png

ビルドが完了すると端末にデモアプリが表示される。Go! ボタンをタップする

Screenshot_20190423-221246.png

BasicDemoは基本的に画面中の説明にしたがってNext Stepボタンをタップしていくことで進んでいく。途中で画面をタップしてオブジェクトを配置し、オブジェクトの周囲をまわってスキャンしてAnchorをセーブしてからオブジェクトを一旦削除、その後Anchorをクエリしてオブジェクトを同一の場所に再配置する。というプロセスでAzure Spatial Anchorsの機能を説明している

途中で動きがおかしくなった場合はUnityで再ビルド&インストールするとうまくいく

Screenshot_20190423-221852.png

Screenshot_20190423-221940.png

Spatial Anchor Accountの概要を更新してみると、該当するアカウントにアクセスした記録が確認できる

スクリーンショット 2019-04-23 22.45.28.png


まとめ

デモアプリのランチャーにはBasicDemoの他にNearbyDemoLocalShareが収録されている。複数端末間のシェアリングがキモなので次はこれを試してみたい。

そのうちiOS版も試そうと思う。HoloLens 2ではいつになったら試せるのやら。