前回の記事では、Android端末を使った現実世界の3Dマップ作成と、サンプルプロジェクトの作成を行いました。
本記事では、Android端末にアプリを入れ、スキャンした現実世界にオブジェクトを表示させます。
ARCloudを使った開発の流れ
今回は「⑤マップとオブジェクトの位置関係を設定」「⑥アプリをビルド」「⑦サーバーと通信し自己位置推定」の部分を紹介します!
マップとオブジェクトの位置関係を設定
まずは、アプリで使用する3Dマップの「Map Key」を設定します。
ARCloudの開発者画面から、使用する3DマップのMap keyをコピーしてください。
下記の画像の階層にある「DirectMapselection」に、Map keyを入力して完了です。
次に、アプリで表示させたいオブジェクトを配置していきます。
今回は例として、3Dスキャンを行った際に設定したアンカーの位置に、キューブを置いています。
Android端末へのビルドの準備
次に、PretiaSDKを使ったアプリをAndroid端末にビルドするための準備を解説していきます。
ARCoreプラグインを有効化する
UnityがサポートしているARの基本機能「ARCore」を有効化します。
「Project Settings」を開き、下記画像の通りに「ARCore」の設定を有効にします。
Android Player Settingsの設定
次に、Android用アプリの基本設定を行います。
下記の画像の通りに、Auto Graphics API からチェックを外し、 Vulkan を Graphics APIs リストから削除します。
・Multithreaded Rendering のチェックを外します。
・Minimum API LevelをAndroid 7.0 ‘Nougat’ (Api Level 24)に設定します。
・Scripting Backend を IL2CPP に変更します。
・64bit端末でも動作させるため、 Target Architectures で ARM64 を有効にします。また、32bit端末をサポートするためにARMv7は有効にしたままにしてください。
Android端末へアプリをビルド
お待たせしました…!
Android端末へアプリをビルドする最後のステップです!
まずは、Android端末の開発者メニューから「USBデバッグ」を有効にし、端末をPCに接続してください。
プラットフォーム切り替え・ビルド
アプリのビルド対象デバイスを変更します。下図の通りに設定を行ってください。
「Build And Run」をクリックして、ビルドを開始します!
最初のビルドでは、「IL2CPP」によるコンパイルがかなり時間がかかるので、15分~30分程度かかることもあります。
実演
実際に3Dマップをスキャンした場所に行き、アプリを操作します。
以前の記事で取得した3Dマップと、現実世界の対応付け(Relocalization)が終わると、Unityで配置したオブジェクトがカメラ越しに見えます!
Relocalizationから、オブジェクトの表示まで一連を動画にしました。
以上で、ARCloudを使ったARアプリの第一歩を踏み出すことができました!
好きな場所でマップを作り、好きなオブジェクトを配置してARライフを楽しみましょう!