PRETIA AR を使ってみた
はじめに
以前からARの共有には興味を持っていたのですが、ARCoreのCloudAncherで挫折して以来、あきらめていました。そんな状況でしたが、先日PRETIA-ARという日本製のARソフトがあるのを見つけ、これは試すしかないと。公式webサイトはこちら
https://arcloud.pretiaar.com/home
これまでとは一味違ったAR体験が期待できそうです。
まずはサンプルのMultiplayerSampleでAR共有を体験
まずは事前に3Dスキャナアプリで空間の登録が必要です。
こちらが3Dスキャン中の画面で、赤点が特徴点として認識に使っているようです。
このアプリで空間認識の確認もできて、あっという間に認識できたのが感動的でした。
ARCoreのCloudAnchorをやったときはうんざりしていたので、雲泥の差です。
また空間認識の精度もアンカーの位置を見る限り何度やってもほとんど変動せず、なかなかよさそうな印象です。ちょっと試したところでは数cm程度のずれでした。ただ、ここは環境に依存する感じがします。
後から気が付きましたが、このスキャンデータにはGPSデータが必須のようです。自宅がバレバレなのがちょっとプライバシー的に気になります。せめて選択できるといいのですが。。。
つぎにサンプルにあったMultiplayerSampleを試してみます。
ARCoreが動作するスマホが2台あったのでこれで共有をしてみました。
起動後は自動的に空間認識をはじめて、認識ができると次のようなログインの画面になります。1台目を起動したときはCreateNewSessionで、2台目はJoinSessionを選ぶことで共有できるようです。
こちらが2台で共有したときの画面です。これをやるだけでもなかなか楽しいです。
1台目が赤のドローン、2台目が青のドローンです。
チュートリアルをやってみる
自分でいじらないことには何もできないので、まずはこちらに従って進めてみました。UNITY2020.3.46f1を使用しました。
サンプルをやる中で、私がミスっているのか発展途上なのかわかりませんが、いくつか改善してほしいなというところがありました。
・mapの番号を入れ忘れてハマった。自分が悪いがエラー出してくれるとありがたい。
・webのチュートリアルに従うだけでは不明なところがあり、YOUTUBEにあるチュートリアルで補足して何とかできた
ネットワークのチュートリアルでハマる
ARの共有をやりたかったので、次のページでネットワーク系のチュートリアルを進める。
しかし、ここでハマってしまう。
下記のページのコードでエラーがでて、コンパイルが通りません。コピペしただけなのに…
using PretiaArCloud.Multiplayer.Matchmaking;を追加したら解決。
さらに、次のページでもエラーが発生。Start()の部分でネットワーク系のエラーが出ていました。デバッグをしたところ、OnEnable()の処理と、Start()での処理の順がおかしくなっていました。awaitによるものかと想像しますが、詳しくないのでわかりません。
ただ、Start()内にある処理をOnEnable内にすべて移動したら、正常に動作するようになりました。メモしていないので忘れてしまいましたが、ほかにも数か所あったと思います。
注)私が何かミスっているのかもしれないので、決して苦情ではありません…
内容の理解には役立ちましたが、こちらのチュートリアルではAR共有までたどり着けませんでした。
サンプルプロジェクトが一番役立った
MultiplayerSampleはすでにARの共有が実装されており、そのまま動作できます。こちらを自分の目的に合わせて修正することにしました。
私は電波可視化でAR共有がしたかったので、画像認識と組み合わせてみました。
なお、ARFondationの使い方はCHATGPTに大変お世話になりました。
とりあえず空間に絵を描くだけですが、書いている様子をほかのスマホから見れるのは新鮮でした。こんな短時間でできるとは思いませんでした。
最後に
電波可視化への応用を考えたときに、いくつか課題がありそうに感じました。
・企業などは情報セキュリティ的に空間情報やGPS情報のクラウドへのアップロードを嫌いそう。
・不特定多数の人が使いたいとなった場合はユーザー登録が必要だったり、どれだけサーバーに通信がされるかわからないので、GooglePlayへのアップやGITでの公開は難しそう。
・インスタントトラッキングができたらとても便利そう。せめて3Dスキャナをユーザーソフトと統合できると、スマートになりそうです。