Unreal Engine 初心者が ARCore のサンプル HelloARUnreal を試す

普段はUnityでARCoreに触れることが多いですが、今回は諸々あってUnreal EngineでARCoreを動かそうと思います。
この記事ではUnreal Engineのセットアップを簡単に触れつつ、ARCoreのサンプルであるHelloARUnrealを動かします。
Unreal Engine初心者のため間違い等あるかもしれません。その際はご指摘ください。

## 環境

- Unreal Engine 4.25.3
- Windows 10 Pro Version.1909
- Android Studio 4.0.1
- ARCore SDK for Unreal v1.7.0

## 参考サイト

- [Quickstart for Unreal  |  ARCore  |  Google Developers](https://developers.google.com/ar/develop/unreal/quickstart)
- [Unreal Engine に Android SDK および NDK を設定する | Unreal Engine Documentation](https://docs.unrealengine.com/ja/Platforms/Mobile/Android/Setup/AndroidStudio/index.html)
- [Android クイック スタート | Unreal Engine Documentation](https://docs.unrealengine.com/ja/Platforms/Mobile/Android/GettingStarted/index.html)

## Unreal Engine

[Quickstart for Unreal  |  ARCore  |  Google Developers](https://developers.google.com/ar/develop/unreal/quickstart) を読むと

> Build Unreal Engine 4.20 with the GoogleARCore plugin from source code by following these steps:

とありますが、今回はUnreal Engineをインストーラーからインストールしようと思います。

下記サイトからインストーラーをダウンロードしてインストールします。

[最高にパワフルな 3D 制作プラットフォーム - Unreal Engine](https://www.unrealengine.com/ja/)


## Android SDK, NDKの設定

設定方法を検索するとCodeWorks for Androidを使用する方法が見つかります。
しかし、CodeWorks for AndroidはUnreal Engine 4.25で提供されなくなったようです。

参考サイト：
- [CodeWorks for Android をインストールする | Unreal Engine Documentation](https://docs.unrealengine.com/ja/Platforms/Mobile/Android/InstallingAndroidCodeWorksAndroid/index.html)

Unreal Engine 4.25では下記サイトの通りに、Android Studioをインストールして SetupAndroid スクリプトを実行すればいいだけのようです。
このためAndroid SDK, NDKの設定は、下記サイトの1～3を行います。

- [Unreal Engine に Android SDK および NDK を設定する | Unreal Engine Documentation](https://docs.unrealengine.com/ja/Platforms/Mobile/Android/Setup/AndroidStudio/index.html)

もし手動で設定する場合のパスは下記のようなパスになると思います。
JAVAのPathはAndroid Studioのjreのパスにしてみました。

|SDKConfig|Path|
|---|---|
|Location of Android SDK|C:\Users\[Username]\AppData\Local\Android\Sdk|
|Location of Android NDK|C:\Users\[Username]\AppData\Local\Android\Sdk\ndk\21.1.6352462|
|Location of JAVA|C:\Program Files\Android\Android Studio\jre|


## ARCoreのサンプル HelloARUnrealの実行

### HelloARUnrealの取得

1. [google-ar/arcore-unreal-sdk](https://github.com/google-ar/arcore-unreal-sdk/releases) からarcore-unreal-sdk-1.7.0.zipをダウンロードして、任意の場所に展開します。

### Android開発環境のセットアップ

1. Unreal Engineを起動します。
2. arcore-unreal-sdk-1.7.0を展開したフォルダ内にある「HelloARUnreal」を開きます。
    ![](https://developers.google.com/ar/develop/unreal/images/unreal1.png)
3. [編集] > [プロジェクト設定] をクリックして、[プロジェクト設定] ウィンドウを表示します。
    ![](https://docs.unrealengine.com/Images/Platforms/Mobile/Android/GettingStarted/AQS_ProjectSettings.webp)
4. [プラットフォーム] > [Android] を選択します。
5. [APKのパッケージ化] の下の部分に「プロジェクトが Android プラットフォーム用に設定されていません」という警告が自動的に表示されます。[いますぐ設定] ボタンをクリックすると、必要なプラットフォーム ファイルを書くためにプロジェクトを自動的に設定します。
    ![](https://docs.unrealengine.com/Images/Platforms/Mobile/Android/GettingStarted/AQS_ConfigureForAndroid.webp)
6. [プラットフォーム] > [Android SDK] を選択します。
7. Android SDK、Android NDK、JAVAのインストールパスがに正しく設定されていることを確認します。[SDK API Level] を「matchndk」に、[NDK API Level] をandroid-24以上に設定します。
    ![](https://developers.google.com/ar/develop/unreal/images/unreal3.png)
8. ツールバー で [設定] > [描画レベルをプレビュー] をクリックして、[Android ES 3.1]を選択します。
    ![](https://docs.unrealengine.com/Images/Platforms/Mobile/Android/GettingStarted/AQS_PreviewLevel.webp)


### HelloARUnrealの実行

1. [ARCore対応のAndroid端末](https://developers.google.com/ar/discover/supported-devices)のUSBデバッグを有効にします。
2. PCとAndroid端末を接続します。
3. ツールバーの[起動]アイコンの横の小さな三角形または、 [起動オプション] をクリックします。接続したAndroid端末をクリックします。
4. 実行されます。
    ![](https://developers.google.com/ar/images/hello-ar.png)

## その他
- サンプルにはHelloARUnreal以外にも「AugmentedFaces」、「AugmentedImages」、「CloudARPin」があるようです。
- 機能は限定されますが、[Android Emulator](https://developers.google.com/ar/develop/java/emulator) で動くかも確認したいところです。