Closed22

Azure Spatial Anchorsの空間アンカーをHoloとスマホで共有したい

にー兄さんにー兄さん

Hololensとスマホで空間を共有したい案件が出てきた
ということで一番文献が多いだろうAzure Spatial Andhorsを使用してみる

にー兄さんにー兄さん

想定環境は以下の通り

  • Unity 2021.3.2f1
  • HoloLens2
  • Pixel 4a 5G android 12
  • MRTK 2.7.2
  • ARFoundation
にー兄さんにー兄さん

HoloLensであれば、Unityのプロジェクトを1から作れるチュートリアルもある
ちゃんと勉強するならこちらをやるのが良さそうな気がしている。いったんこれを進めてみようかな
適当にifディレクティブで囲めばAndroidへのビルドもできるのではないか
https://docs.microsoft.com/ja-jp/azure/spatial-anchors/tutorials/tutorial-new-unity-hololens-app?tabs=azure-portal

にー兄さんにー兄さん

とりあえずまずはクイックスタートのHoloLensからやってみる

にー兄さんにー兄さん

MRFeatureToolアプデして、クローンしたリポジトリのUnityディレクトリに

  • asa core
  • asa android
  • asa windows

をインポート

にー兄さんにー兄さん

サンプルの動作を確認した
MRTKが入っていないピュアなプロジェクトなのでちょっとUIにビビったが、普通に実行できた

にー兄さんにー兄さん

sharingのサンプルも試している
なんかWebサイトが上手くデプロイされないな~~~と唸っていたら
発光ボタン押してないだけだった......

コードの中にAADの情報を入れる場所があったけど、ここはノータッチでも大丈夫なんだ

にー兄さんにー兄さん

ひとまずここで切る

WebサーバーはASP.NETがわからないなりに読んでみたが、
どうやらアンカーのキーをメモリキャッシュに保存したりCosmosDBに保存したりするらしい

AppSerivrces は20分でタイムアウトするため、メモリキャッシュが消えるので
永続化したい場合はCosmosDBなどを使うと良い

にー兄さんにー兄さん

まだ動作確認すらできていないけど、
WebAppsにデプロイしたASP.NET Coreサーバーの実装を見ていた
シンプルなAPI鯖なのだけども、内容としては

  • anchorNumberというlong型をGETで受け取ってanchorKeyというstring型のレスポンスを返す
  • anchorKey:stringをPOSTで受け取って内部のanchorNumberをインクリメントして登録する

というシンプルなものだった
とりあえず{long anchorNumber, string anchorKey}というデータを保存できていればよいのかな

にー兄さんにー兄さん

せっかくなので、オブジェクトの表示を共有したい
アンカーの姿勢を基準にGameObjectの姿勢をholo⇔android間でosc通信をして、
リアルタイムで反映させたい

androidでオブジェクト移動させるのはUX的にアレなので
基本はHoloでの作業をAndroidに反映させる形になりそう

にー兄さんにー兄さん

OSCライブラリの選定

keijiroさんが出しているJackOSCを最近知ったので使いたかったが、
Requirementsに2021.3 or Laterと書いてあったので、とりあえず保留
https://github.com/keijiro/OscJack

あとはhecomiさんのuOSC
こちらは元から知っていたので、これを使おうと思う

にー兄さんにー兄さん

オブジェクトを手で持って移動させたかったので、そのためにMRTKを入れたら
途中でデモアプリの進行ができなくなってしまう事態が発生

これはMRTKが悪さをしていそうなので
デモアプリで凝った挙動を実装するのはやめておこう

このスクラップは2022/05/25にクローズされました