はじめに
株式会社GENEROSITY様でインターンをさせていただき、AR技術を使ったサービスの企画提案と必要最小限の機能を持ったプロダクト(Minimum Viable Product)を制作しました。AR技術を使った制作で普段とは違った開発に戸惑いながらなんとか形にすることができました。
前半では作ったサービスの概要と開発環境、位置情報の求め方についてまとめてあります。
目次
概要
開発環境
位置情報を把握するための技術
制作
実行・テスト
まとめ
概要
「屋内で行きたい場所にARを使って案内するアプリ」を制作しました。
この製品を作った理由
ショッピングモールや大型施設を訪れた際、目的の店舗や施設にたどり着けず困ったことはありませんか? そんな悩みを解決するために「屋内で行きたい場所にARを使って案内するアプリ」を開発しました。
広大なショッピングモールや大型施設内で目的地が見つからないこと。どこに行きたいお店があるのか、どんなお店があるのか。全体のレイアウトが分からずストレスを感じることはありませんか? 私は売り場がどこにあるかわからず右往左往した経験があります。
このアプリは、そんな問題を解消するために生まれました。目的の場所やお店を選ぶと、AR(拡張現実)技術を使って、スマートフォンの画面上に矢印を表示し案内してくれます。これにより、道に迷うことなく、スムーズに目的地に到達できます。
イメージ図
開発環境
・Unity (2022.3.56f1)
・ARFoundation 5.1.5
・Google ARCore XR Plugin 5.1.5
実行デバイス
・OPPO Reno 10 Pro 5G
Unity Habとプロジェクトの生成
注意
こちらではUnityアカウントを持っている前提で話していきます。
上のリンクからUnity Habをインストールしプロジェクトを作ります。
インストールが完了したら自分のアカウントでログインし、Unity HabのInstallsに移動してInstall Editorを押しUnity(2022.3.56f1)をインストールします。
次にProjectに戻りNew Projectを押し3D Coreを選択しプロジェクトを作成します。
これらを選択していればプロジェクトを作ってOKです。
ARFoundationとGoogle ARCore XR Pluginのインストール
次にAndroidでARを開発するのに必要なパッケージのインストールを行います。
プロジェクトが開いた後、左上にある Window > Package Manager を選択します。
その後 Package: In Project を Package: Unity Registry に変更します。
その後ARという項目が出てくるので選択しInstallを押します。
その他の調整箇所
次に左上の File
> Build Setting...
を選択しBuild Settingsの画面を出します。
左下にある Player Settings...
を押して Project Settings
の中の Player
の設定を変更します。
1.Other Settings
を開き Auto Graphics API
のチェックを外し Vulkan
を消します。
2.Minimum API Level
を API level 27
以上にします。
3.Scripting Backend
を IL2CPP
に変更します。
4.Traget Architectures
の中の ARM64
にチェックを入れます。
次に XR Pulg-in Management
を Android settings
にして Google ARCore
にチェックを入れます。
以上で Unity を使ったAR開発に必要な基本的な環境が整います。
位置情報を把握するための技術
・GPS( Global Positioning System )
・Wi-Fi位置情報
・Bluetoothビーコン
・カメラおよびコンピュータビジョン
・IMU(慣性計測ユニット)
・SLAM(Simultaneous Localization and Mapping)
・NFC(近距離無線通信)
主にこの7つが位置情報を把握するのに必要なシステムとなっています。
今回 GPS は屋内での使用を想定しているため使いません。
今回は SLAM の一種 vSLAM(Visual SLAM) を利用して開発していきます。
vSLAM(Visual SLAM) とは…
カメラやイメージセンサーを用いて自己位置(自分がいる場所)の推定と周囲の環境地図作成(周辺の空間把握)を同時に行う技術のことです
今回vSLAMを使う理由は
1.屋内環境に強いこと
2.スマートフォンを使うため
3.様々な場所で動作させるため
などの理由があります。
おまけ
Android端末に Build した際 Deubug.Log
を読み取ることができないためどこでスクリプトが止まっているのかわからないという事はないですか?
そんなときに便利な Android Logcat
という Package があり、端末をパソコンにつないだ状態でアプリを起動すればLogを確認することができます。
Logを確認したい時に Window
> Analysis
> Android Logcat
からウィンドウを出すことができるのでぜひ試してみてください。