見出し画像

【Unity】Android用のARアプリを作る

Googleが提供しているARCoreフレームワークを使って、スマホ等で遊べる簡単なARアプリを作る方法です。

1. ARCore対応端末

ARCoreフレームワークは全てのAndroid端末で使えるわけではないので、まずは持っている端末がARCoreに対応しているかどうか確認する必要があります。

公式サイト(英語)

日本語でまとめてくれているサイトもあります。


2. 開発環境(Unity、ARCore)の準備

(1) Unityのインストール

Unityがまだ導入されていない場合は、まずUnity Hubをインストールします。ダウンロードは以下から。

インストール後、Unity Hubを起動したら、[インストール]タブの[インストール]ボタンから、バージョンを選んでUnityをインストールします。以後、Unity2019の前提で話を進めます。

モジュール選択画面では「Android Build Support」および[>]をクリックすると出てくる「Android SDK & NDK Tools」「OpenJDK」をオンにしておきます。

画像1

(2) ARCore SDKの入手

以下から「arcore-unity-sdk-1.16.0.unitypackage」(バージョンは最新のもの)をダウンロードし、保管しておきます。


3. プロジェクトの作成と編集

(1) プロジェクトの新規作成

Unity Hubを起動し、[プロジェクト]タブを表示させて[新規作成]をクリックします。Unityのバージョンが複数ある場合は▼から選択します。

画像2

次の画面では「3D」テンプレートを選択し、プロジェクト名(プロジェクトフォルダ名)と保存先(プロジェクトフォルダを作成する場所)を指定して[作成]をクリックします。

画像3

プロジェクトが作成され、Unityの編集画面が立ち上がります。

画像4

(2) パッケージの追加

まず[ウィンドウ]メニューの[Package Manager]を開き、
「Multiplayer HLAPI」
「XR Legacy Input Helper」
の2つのパッケージをインストールします。パッケージ名で検索すると該当のものが見つかるので、下部の[Install]ボタンをクリックします。

画像5

次に[編集]メニューの[パッケージをインポート]-[カスタムパッケージ]を開き、2.の(2)で保存しておいたARCore SDKのパッケージファイル(arcore-unity-sdk-1.16.0.unitypackageのような名前)を指定します。

すべてチェックされていることを確認して[インポート]をクリックします。

画像6


4. シーンの確認とビルド

インポートしたARCore SDKのパッケージにはサンプルのシーンが含まれているので、これを利用します。

(1) サンプルシーンを開く

プロジェクトブラウザの「Assets」-「GoogleARCore」-「Examples」-「HelloAR」-「Scenes」を選択し、「HelloAR」をダブルクリックしてシーンを開きます。

画像7

(2) ビルド設定

ここではUSBケーブルを使わず、書き出したapkファイルから端末上にインストールする方法を使っています。

[ファイル]メニューの[ビルド設定]を開き、プラットフォームからAndroidを選んで「Switch Platform」を実行してAndroidアプリを書き出せるようにします。処理に少し時間がかかります。

画像8

処理が終わったら「プレイヤー設定」をクリックします。

「その他の設定」を開き、以下の設定を変更します。
「Graphics APIs」「Vulkan」を削除(リストから選択して[-]をクリック)
「最低APIレベル」「Android 7.0 'Nougat'」またはそれより新しいものにする

そして「XR設定」を開き、「ARCoreサポート」をオンにします。

画像9

(3) ビルド実行

プレイヤー設定の画面を閉じたら、「ビルド」をクリックし、インストールパッケージの名前を設定して保存します。ビルドには時間がかかるので気長に待ちます。

画像10


もしうまくいかない場合は、Unity Hubのインストール画面を開き、必要なモジュールが正しくインストールされているかどうか確認してください。


5. Android端末へのインストールと実行

作成したインストールパッケージのファイル(.apk)をAndroid側で開きます。GoogleDriveなどのクラウドストレージを使うと簡単です。

インストールが完了したら、アプリを実行します。端末によっては、インストールや実行、カメラ使用などの権限を許可する必要があるので、適宜処理してください。

アプリが立ち上がると、カメラで周りを見渡すように言われるので、ぐるぐる室内を見回していると、そのうち平面を認識してくれます。認識した平面上をタップすると、サンプルの立体オブジェクトが配置されます。

画像11


6. 応用

Unityの編集画面に戻り、ヒエラルキーウィンドウの「HelloAR Controller」を選択すると、インスペクタ(初期設定ではウィンドウ右側)に「Game Object ...」などの欄が出てきます。ここで指定されている「ARCorePawn」というのが、アプリ上でタップしたときに配置されるオブジェクトを表しています。

画像13

したがって、これを別の形状に差し替えれば、好きなオブジェクトを配置することができるようになります。

さらに、少しC#の知識があれば、プロジェクトブラウザの「HelloAR」-「Scripts」に入っている「HelloARController」のスクリプトを書き換えることで、例えば以下のようにランダムで花を植えるようにプログラムすることができます。

この例の花のデータは、アセットストアの「Lowpoly Flowers」を利用しています。

画像14


7. 参考サイト

公式のクイックスタート(英語)

日本語ではこちらが参考になりました。




この記事が気に入ったらサポートをしてみませんか?