Immersal ARアプリでARCore Record & Playback APIを使ってみる(失敗)
動機
- Immersalを使ったARアプリを作っている
- 特定の場所に行かないと体験できない
- ゆえに場所に行かないとデバッグできない
- 新しく出たARCore APIを使ってみたい
- Record &Playback APIが良さげ
ImmersalとUnityについては公式ドキュメントを参照:
ARCore Playback APIについてはじゅんこさんの記事を参照
数少ない日本語文献。。。
ARCore(ARFoundation)もImmersalもどちらもsampleプロジェクトがあるけど
このさいチュートリアルに沿って新しいシーンを作ってもいいかなって思う
懸念点として、ARFoundation4.2-previewを使うにはUnity20201.2が必要ってREADMEに書かれていて。jyunkoさんもそういわれている
しかしARFoundationのページにはUnity2020.3以降で動くって書いてある、からわんちゃん動くことを願っている
Immersal SDK for Unityに関しては2020.3で動作する保証はなさそう、悲しい
手順としては、
- ImmersalのサンプルプロジェクトをクローンしてUnity2020.3で動くかやってみる
- ARFoundationのバージョンを上げる→テスト
- Streaming Assetsに別のRecord API使って撮った動画を入れて
- ARFoundation Samplesを参考にPlayback APIをたたいてみる
とりあえず自分の部屋をRecording APiでキャプチャしたものを取得した
これを使って部屋のImmersalアプリを試してみる
immersalのサンプルプロジェクトをクローンしてImmersal SDK 1.13.1をインポートする
今回はMultiMapSampleを使用する
Immersal SDK > Open SettingsからImmersalアカウントでログインして、
AR Map Downloderで自室のマップをDLする
ここまではすんなりって感じですな
自分もかなり慣れてきている
普通に2020.3でも動いた。
最初の関門を突破ですな
とりまARCore Session Recorderスクリプトをarfoudation-smapleを参考に作成し、シーンにアタッチした
できるかどうかわからないけど、Unity2021.2でビルドしたarfoundation-samplesの、
recording apiで取得した動画ファイルを、今回のプロジェクトのpersistantDataPathに突っ込んで、
それをAwakeでplaybackするようにしてみた
どうなるんだろうか......
ファイルは存在することが分かった
しかしPlaybackが開始されない
深夜テンションなのでこれ以上ちまちま作業していられるか!!ノリでUnity 2021.2betaにバージョンアップしていくぞいくぞいくぞ~~
Immersal君どうか耐えてくれ
Immersalが動くかもわからない、ただRecord & Playback APIが動くための条件な可能性が高い
Immersalが動かないようだったら、もうこれらのライブラリは相いれないものだったと諦めるかな
No ARCoreSessionSubsystem availableと出てしまった、いきなりこれは何だろうな......
arcoreのほうでエラーが出るのは想定外、というかおかしいな
別のアプローチをとって見よう
arfoundation-samplesのほうでサンプルシーンにImmersalを使ってみる
Immersal SDK 1.13.1とTextMeshProをインポートして、
シーンにImmersal SDKプレハブ(AR Localizerをアタッチ)とAR Spaceを作成
ビルドしてみたら見たことないエラーが出た、なんだろうこれ
ビルドができたの実行してみた結果、まずImmersalは動作していなさそうだった
ずっとスマホをかざしていたがマップの点群の位置が変化することはなかった
そしてなぜかPlaybackのときにクラッシュする
同じ構成でImmersalがない状態だとうまくPlaybackするのに、なぜかImmersalが一緒になるとクラッシュするようになってしまった
試しにImmersalをサーバーサイド位置合わせにしてみたが依然変わらなかった
考え得ることはすべてやったが、今回は達成できなかった