LightshipARDKを使って初めてのAR開発

Lightship ARDKとは

ポケモンGOなどで知られているNiantic社のAR開発ツール。 Lightship ARDKの強みとしては

があります。

Lightship VPS

Visual Positioning Systemのこと。ある特定のスポットを特定、把握することでデバイスを現実の位置と同期させることができる。
例えば、ある場所にARオブジェクトを隠してそれを他のユーザーに見つけてもらう、みたいな宝探しゲームもできちゃったりする。

導入方法

  1. Lightshipアカウントを作る
  2. ARDKをダウンロードする
  3. Unityプロジェクトを作る
    ※UnityHubでAndroid Build Supportを入れておく
  4. 2でダウンロードしたARDKのunityパッケージをインポートする

APIキーの認証

  1. アカウントダッシュボードAPIキーを作る
  2. APIキーを認証する
    1. Resources/ARDKフォルダにArdkAuthConfigアセットを追加
    2. ArdkAuthConfigのインスペクタのApiKeyにさっき作ったAPIキーを入力する
    3. Unityを再起動

平面検知をしてオブジェクトを配置する

こんなものを作ります
(参考: チュートリアル: 基本の配置 — Niantic Lightship Augmented Reality Developer Kit release-2.4.1 ドキュメント)

www.youtube.com

カメラの設定

シーンを開いたらまずMainCameraに以下のコンポーネントをアタッチする

そしたらインスペクタのCameraのところにMainCameraをドラッグアンドドロップ

Cameraコンポーネントは以下のように設定する

セッションマネージャー

シーンに空のゲームオブジェクトを作って、名前をSessionManagerにします(名前はなんでもいい)。
SessionManagerには以下のコンポーネントをアタッチしていきます。

  • ARSessionManagerコンポーネント
    • ARセッションのセットアップを処理する
  • ARPlaneManager
    • シーン内のARオブジェクトを保存・トラッキングしてくれる
    • Planeに基づく配置が可能に
    • 配置したオブジェクトの保存
    • 配置したオブジェクトの固定(たぶんカメラを動かしたときに位置を一定に保つ)
  • AndroidPermissionRequester(Android向けのみ)
    • 実行時にユーザーに対してカメラ使用許可を求めるようになる
    • PermissionsにCameraを追加
  • ARCursorRenderer
    • カメラからRayみたいなのを飛ばして、物を検知するとそこにCursorObjectが表示される
  • ARHitTester
    • タップしたところにプレハブを配置する

ビルド

今回はAndroidでのビルドをしていきます。

設定

Project Settings

  • Player→Other Settings
    • GraphicsAPIsからVulkanを削除
    • Scripting BackendはIL2CPPを選択
    • Target ArchitecturesはARMv7とARM64を選択
  • Player → Publishing settings
    • Custom Main ManifestとCustom Base Gradle Templateにチェックを入れる
    • 追加されたAndroidManifest.xmlに以下を追記する

        <queries>
                <package android:name="com.google.ar.core" />
        </queries>
      

Gradleの設定

  • gradleをダウンロードして解凍(たぶん新しいので大丈夫)
  • 追加されたbaseProjectTemplate.gradle(Assets->Plugins->Androidの中)を編集
    • classpathを 'com.android.tools.build:gradle:4.2.0’にする
  • Preferences → External ToolsでGradle Installed with Unityのチェックを外してさっき解凍したフォルダを選択

ビルド

  1. スマホを開発者モードにする(「設定」アプリ内で「ビルド番号」を7回連続してタップ)
  2. スマホで開発者向けオプションのUSBデバッグをONにする
  3. PCとスマホをUSBで接続する
  4. UnityのBuild SettingsでSwitch platform
  5. Run Deviceで自分の端末を選択する
  6. Build And Runで実行!

動いた!

www.youtube.com

感想

まさかコードを書かずに動くとは...! 開発環境を整えるのが結構簡単だったのと、公式のチュートリアルも細かく説明してくれているのですぐに実機で動かせることができました。もっといろんな機能があるのでチュートリアルを進めながら試していきたいと思います。早く自由にARゲーム作れるようになりたいな~

最後にちょっと自分語り

ARやろうと思ったきっかけ

「誰でも楽しめるXRコンテンツを作りたい」という目標ができたのがきっかけです。最近いろいろあって親孝行したいなっていう感情が芽生えまして...。お金稼げるようになってからいろいろ買ってあげようとか考えてはいるんですが、大学生のうちからできることないかなーとか思ったんですよね。でもVRHMDが無いとできないし、慣れてないと疲れちゃうし...とか考えた結果、ARなら家族でも楽しめるコンテンツを作れるんじゃないか、ってことでAR開発を勉強することになりました。そこからいろいろ広がって、誰でも楽しめるXRコンテンツを作りたいという目標ができたわけです。
もちろんVR楽しいので今まで通りVR開発していきますが、ARのほうもちょっとずつやっていきたいなと思います。