はじめに
先日、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 (プレビュー)**を選択する
追加ボタンをクリックしてSpatial Anchors AccountブレードのResource Name、 サブスクリプション、 リソースグループ 、場所 を入力し、New ボタンをクリックする
デプロイが完了したらリソースに移動し、アカウントIDをコピーして控えておく
Keys に移動し、Primary Keyをコピーして控えておく
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
ディレクトリを開く
バージョンの異なるエディタで...
ダイアログが表示された場合、続行 をクリックする
ファイル -> ビルド設定 を選択する
ビルドに含まれるシーン はデフォルトのまま全選択。プラットフォーム で Android
を選択しSwitch Platformボタンをクリックする
設定が完了したらビルド設定 を閉じる
アセット -> パッケージをインポート -> カスタムパッケージ を選択する
先ほどダウンロードしておいたarcore-unity-sdk-1.7.0.unitypackage
を選択してOpenボタンをクリックする
パッケージの内容がすべて選択されているのを確認してインポート ボタンをクリックする
プロジェクトからAssets -> AzureSpatialAnchorsPlugin -> Examples -> Resources とフォルダを選択して、AzureSpatialAnchorsDemoConfig
アセットを選択する
インスペクターで控えておいたSpatial Anchor AccountのAccount IDとPrimary Keyを入力してプロジェクトを保存する
以下は任意だが、ビルド前にやっておいたほうがいいかもしれない。アセット -> すべてを再インポートを選択してアセットを再構成する
公式のNoteに記載があるが、ビルド後apkを端末で起動するとカメラが正常に起動しない場合がある。そうなったときにアセットを再インポートして再ビルドするとカメラが正常に起動するようになる。ちなみにぼくは再インポートしない場合はすべてカメラが起動しなかった。なので事前にやっといたほうが無難かも
再インポートするとUnityが再起動してアセットが再構成される
端末(Pixel3)をPCにUSBで接続し、デバッグモードにしておく
ファイル -> ビルド設定 を選択する
デバイスを実行しますでPixel3を選択しRefreshボタンをクリックする
ビルドして実行 ボタンをクリックする
適当な名前を入力してSaveをクリックする
ビルドが完了すると端末にデモアプリが表示される。Go! ボタンをタップする
BasicDemoは基本的に画面中の説明にしたがってNext Stepボタンをタップしていくことで進んでいく。途中で画面をタップしてオブジェクトを配置し、オブジェクトの周囲をまわってスキャンしてAnchorをセーブしてからオブジェクトを一旦削除、その後Anchorをクエリしてオブジェクトを同一の場所に再配置する。というプロセスでAzure Spatial Anchorsの機能を説明している
途中で動きがおかしくなった場合はUnityで再ビルド&インストールするとうまくいく
Spatial Anchor Accountの概要を更新してみると、該当するアカウントにアクセスした記録が確認できる
まとめ
デモアプリのランチャーにはBasicDemo
の他にNearbyDemo
、LocalShare
が収録されている。複数端末間のシェアリングがキモなので次はこれを試してみたい。
そのうちiOS版も試そうと思う。HoloLens 2ではいつになったら試せるのやら。