HIKI Tech Blog

yhikishimaのブログ。ゆるくUE4やUnity、web開発の記事を書いてます。

【Unity】ARDKを使用してAndroidでAR開発 vol.1

1. はじめに

AR開発者キット「Niantic Lightship ARDK」が一般公開されたので、さっそく使用してみた。

ARDKには「Mapping (リアルタイムでの現実世界の再現)」,「Understanding (環境の理解)」,「Sharing (体験の共有)」というAR機能の3つの核を処理するツールや,技術がまとめられており,世界中の開発者が持つARの世界観を実現できるようになる。

とのこと。

残念ながらUnrealのSDKはなかったので、UnityのSDKを使用。

ドキュメント

Niantic AR Development Kit (ARDK): Augmented Reality Development Kit

2. 開発環境のセットアップ

開発環境の要件は以下。

Niantic AR Development Kit (ARDK): ARDK System Requirements

Niantic AR Development Kit (ARDK): Getting Started with ARDK

上記ドキュメント通りにセットアップ。

今回は以下の環境でセットアップ。

OS Unity ver ARDK SDKver
Windows10 Unity2020.3.22f1 v1.0.1

2-1. APIトークンキーの取得

Sign in – Niantic Lightship

アカウント作成後に上記ダッシュボードに移動。

疋島康成

↑のようになっていると思うので、 App name を入力して Create。

ライセンスキーが発行されるので、copy。

2-2. Unityのインストール

ARDK is officially supported on the Unity 2019.4 LTS release. To download Unity, visit https://unity3d.com/get-unity/download.

とのことなので、 Unity 2020.3.22f1 (LTS) をダウンロード

疋島康成

Unityのインストールが完了したら、以下にアクセスしてunityPackageをインストール。(アカウント作成が必要)

Niantic AR Development Kit (ARDK): Getting Started with ARDK

適当にUnityプロジェクトを作成して、unitypackageをインポート。

疋島康成

3. サンプルシーン

Sign in – Niantic Lightship

↑のARDKのサンプルシーンよりunitypackageをダウンロード & プロジェクトにインポート。

疋島康成

AnchorsWithoutPlanes のサンプルを開き、Playして確認。

以下のエラーが表示されるようであれば、 Project SettingsTags And LayerlayerARDK_MockWorld を追加。

#Niantic.ARDK.VirtualStudio.AR.Mock._MockFrameBufferProvider#: Add the ARDK_MockWorld layer to the Layers list (Edit > ProjectSettings > Tags and Layers) in order to render in Mock AR sessions.

Playして確認。

疋島康成

4. 認証

ネットワーク機能を使用するには認証が必要。

Niantic AR Development Kit (ARDK): Authentication

上記ドキュメント通り設定。

Sampleをインポート済なので、以下の ArdkAuthConfig ファイルのApikeyに2.1 にてコピーしたキーを設定。

疋島康成

サンプルの LowLevelNetworking シーンを開いて起動。

起動したら InitConnect を押して、下記のようになっていれば成功!

疋島康成

5. Androidビルド

Build Settingsにて Android にSwitch Platformする。

Player SettingsOther SettingsRendering セクションで、Auto Graphics API 設定のチェックを外し、Vulkanレンダラーが存在する場合は削除。

疋島康成

Scripting BackendIL2CPP に選択。

API Compatibllity Level.Net 4.x を選択。

Target Architectures の ARMv7ARMv64 にチェックをいれる。

疋島康成

ビルドして手元のAndroidにインストール。。。。

AR表示にならない。。

よくよく確認すると Android11では API Targetlevel 30 のビルドが動かないよう。。

Android11およびAPIレベル30はARCoreを使用できません。現在、ARDKおよびAndroid 11を実行している電話との競合があります。ARDKアプリがUnityからターゲットAPIレベル30で構築されている場合、Android 11デバイスでARCoreは、インストールされているかどうかに関係なく使用できないように見えます。最も簡単な修正は、アプリがAPIレベル29以下をターゲットにする必要があることです。詳細については、システム要件のAndroid開発に関するセクションを参照してください。

Target Api Levelを29にして再ビルド。

疋島康成

それでもAR表示にならず。。

一旦サンプルで起動するのは諦めて、チュートリアルのプロジェクトをドキュメント通りに作成。

Niantic AR Development Kit (ARDK): Basic Placement Tutorial

かなり詳しく書いてあるので、手順通りやれば問題なさそう。

再度ビルドしてAndroidにインストール。

アプリ起動。。。。

疋島康成

成功!!

地面を平面として認識してくれて、その上をタップするとサンプル通りにオブジェクトが追加されました。

サンプルの動かし方が不明のままなので、サンプルの使い方などを次からやってみようと思う。

参考

Niantic AR Development Kit (ARDK): Augmented Reality Development Kit