ARCore入門チュートリアル(Unity)

こんにちはJUNOと申します。

最近本屋でAR開発に関する本を探していますがまだ数は少ないようです。

そこで今回、AR初心者向けに
AR開発環境(Unity)の導入方法とAndroidにおけるチュートリアルアプリを紹介します。

参考元：[Google公式ドキュメント](https://developers.google.com/ar/develop/unity/quickstart-android)

#私の環境
・Unity
・エディタ
　　VisualStudio2019(今回のチュートリアルでは使用しません)
・開発PC
　　MacBookPro(恐らくWindowsでも同じように動作する)
・Android端末
　　HUAWEI P20 LITE(Android v9)

#要件
###ハードウェア
・[ARCore対応端末](https://developers.google.com/ar/discover/supported-devices)を確認してください。
・デバイスと開発PCがUSBケーブルで接続できるもの
###ソフトウェア
それぞれ後ほどダウンロードしていきます。
・Unity 2017.4.34f1　以降のバージョン
・Android SDK 7.0 (API Level 24) 以降のバージョン
・ARCore SDK for Unity 1.13.0 以降のバージョン


【参考】
AndroidSDKを導入するため、以前はAndroidStudio(以下AS)をインストールする必要がありましたが、今はUnityHubでインストールできるのでASはなくても大丈夫かと思われます。
（検証していないため、UnityHubでAndroidSDKが導入できない場合はASを導入してください。）

#Unity導入
Unity及びAndroidSDKを導入していない方は以下の手順で導入してください。
今回はUnity Hubを用いてUnityを導入してみます。

Unity HubというのはUnity本体ではなく、Unityのバージョンを管理してくれるツールです。
これでUnityの各種バージョンを導入でき、同時に各種モジュール(AndroidSDKなど)のインストールも行えます。

Unity Hubは[こちら](https://unity3d.com/jp/get-unity/download)からダウンロードしてください。

<img width="500" alt="スクリーンショット 2019-12-18 1.44.55.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360790/bdbde012-c2d9-15ba-9796-73cf5704e0f3.png">

DLしたら開いて、Unityをインストールします。
Unity2019で良いでしょう。

<img width="500" alt="スクリーンショット 2019-12-18 1.40.20.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360790/00fc96f9-213b-0e95-bf87-1cec959e2d23.png">

追加するモジュールにAndroidBuildSupportにチェックを入れてください。
ここがチェックされていればAndroidSDKも導入できます。
他のモジュールはチェックをいれなくても良いです。

<img width="500" alt="スクリーンショット 2019-12-18 1.40.30.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360790/c90f9002-e3dc-a2e0-da97-7143458fb0cc.png">

この状態でインストールしてください。
これでUnityの導入は完了です。

#ARCoreSDKのダウンロード
[こちら](https://github.com/google-ar/arcore-unity-sdk/releases)からダウンロードしてください。
<img width="500" alt="スクリーンショット 2019-12-18 22.41.41.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360790/f3fea14c-5e6b-5cae-6499-988351a674eb.png">


#プロジェクトの作成
ここからは実際にプロジェクトを作成し、サンプルアプリをAndroid端末に導入していきます。

#####①新規作成
「プロジェクト」の「新規作成」を押します。
テンプレートは「３D」で、プロジェクト名に適当な名前を入力して「作成」を押してください。
<img width="500" alt="スクリーンショット 2019-12-18 22.35.00.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360790/60a6dd5a-c627-4d7c-6e97-17ca483cfaed.png">

これでプロジェクトが作成されます。

<img width="500" alt="スクリーンショット 2019-12-18 22.49.09.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360790/79d0e029-bf59-600f-bc7c-c25af408db8b.png">


#####②Unity2019の場合パッケージをインストールする。
メニューバーからWindow > Package Managerを開く。
<img width="500" alt="スクリーンショット 2019-12-18 22.56.11.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360790/339c68e6-c208-0229-4955-a170195abdaa.png">
開いたら、この中から下記２つのパッケージをインストールする。
・**Multiplayer HLAPI**
・**XR Legacy Input Helpers**
<img width="500" alt="スクリーンショット 2019-12-18 23.05.03.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360790/832401be-4cb1-5162-f9b0-6442d4f8237a.png">

インストールが完了したらPackageManagerを閉じる。

#####③ARCoreSDKのインポート
メニューバーからAssets > Import Package > Custom Packageで先ほどDLしたARCoreSDKパッケージ(arcore-unity-sdk-1.14.unitypackage)を選択する。

<img width="500" alt="スクリーンショット 2019-12-18 23.13.07.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360790/e8247cf6-1398-2703-d9d2-cf30a4e2286b.png">

Import Unity Packageが表示されたら「Import」を押す。
<img width="373" alt="スクリーンショット 2019-12-18 23.13.23.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360790/227b6f20-4223-7d0b-5f93-b20297ccd0cb.png">

これでARCoreSDKのインストールが完了しました。

#####④シーンを開く
Assets/GoogleARCore/Eamples/HelloAR/Scenes/HelloARを開く。
Hiearchy内のHelloAR Controllerをクリックする。
Inspectorでオブジェクトの設定などができる。「ARCorePawn」というのが設置するオブジェクトで右側の点を押して変更もできる。
<img width="500" alt="スクリーンショット 2019-12-18 23.22.37.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360790/38a6417c-389b-c4b6-e462-52fddf4e2434.png">

#####⑤ビルドセッティング
メニューバーからFile>Build Settingsを開く。
Platformは「Android」を選択し、SwitchPlatformをクリック。
PlayerSettingsを押し、設定画面を開き、以下の設定を行う。

OtherSettingｓを開き、
・GraphicｓAPIs中で「Vulkan」を選択し-で削除する。
・PackageNameをユニークな名前に設定する(初期値でもOK！)
(ex:com.DefaultCompany.ARCoreApp)
・Minimum API LevelをAndroid7.0'Nougat'より高いものに設定する
XR Settingsを開き、
・ARCoreSupportedにチェックを入れる。

<img width="500" alt="スクリーンショット 2019-12-19 0.13.20.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360790/cf7247f9-0e78-6521-5102-9a4341cc4def.png">

<img width="500" alt="スクリーンショット 2019-12-19 0.39.30.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360790/bb6841d5-b0ed-3cc9-6b62-26ad33d710bc.png">
<img width="500" alt="スクリーンショット 2019-12-19 0.39.36.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360790/5cdb13ae-478c-7ce4-0a08-b78688ddabb5.png">

ここまで設定できたら設定画面を閉じる。

#####⑥Build＆RUN
Android端末とPCをUSBケーブルで接続する。
この時、Androidはデバックモードを設定し、かつファイル送信可能にしておく。
<img width="500" alt="スクリーンショット 2019-12-19 1.05.25.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360790/1289eff3-cdd5-7872-e75f-d55e79d7fcf7.png">
Build And Runをクリックする。
端末でアプリが起動する。

![Screenshot_20191219_012331_com.DefaultCompany.ARCore.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360790/13637b26-0e92-1c5d-f472-568666c95c17.jpeg)


平面を認識して、その平面上でタップするとオブジェクトが出現する。

#終わりに

今回はUnityを導入してARCoreのチュートリアルを体験しました。
環境を作って設定するだけでARを体験できるのはすごいですね。
機会があれば次なるステップの記事をあげられたらいいなと思います。