📱

Lightship ARDK 3.0 Beta 試してみた

2023/10/03に公開

Key Visual

概要

AWE2023でLightship ARDK 3.0の発表があり、3.0 Beta版が触れるようになりました。

久しぶりにLightshipのダッシュボードを訪れたところ、触れるようになっていたことを思い出したので、遅ればせながらインストールして試してみました。

https://lightship.dev/blog/lightship-ardk-3-0/

image

UnityプロジェクトLightship ARDKインストール手順

ということで、UnityにLightship ARDKをインストールしてプロジェクト環境を整えていきます。

1. Unityプロジェクト作成

  • Unity バージョン2021.3.29f1をインストール
  • 3Dテンプレートを選択してプロジェクトを作成
  • Build SettingsからiOSまたはAndroidにSwitch Platform

image

image

image

2. Lightship ARDKインストール

Lightship ARDKをgit URL経由でインストールします。

  • Package Managerを開く(上部メニューから [Window] -> [Package Manager]

image

  • 左上の[+]ボタンを押下して[Add package from git URL...]ボタンを押下

image

  • URL入力欄に以下URLを入力して[Add]ボタンを押下
    (ARDK 3.0がインストールされるので待ちます)
https://github.com/niantic-lightship/ardk-upm.git

image

image

インストールが完了すると、Packagesの一覧に「Nianitc Lightship AR Plugin」がインストールされていることがわかります。(ARKit XR PluginARCore XR Pluginと同様にxxxxx Pluginという命名になっているのかなと思いました。)

image

3. プラットフォーム設定

iOS, Androidのプラットフォームごとの設定をします。

  • Project Settingsを開く(上部メニューから [Edit] -> [Project Settings...]
  • 左側のメニューからPlayerを開き、使用プラットフォームのOther Settingsの内容を設定

image

iOSの場合 :

  • Bundle Identifierを設定
  • Camera Usage Descriptionを入力
  • 最小ターゲットをiOS14.0に設定(Scanningを無効にする場合は11.0に設定可)
  • アーキテクチャをARM64に設定

image
image
image
image

Androidの場合 :

  • レンダリング設定
    • 自動グラフィックスAPIのチェックを外す
    • Graphics APIsのリストにVulkanが表示されている場合は削除
  • 最小APIレベルをAndroid 7.0 'Nougat' (API レベル 24)以降に設定
  • Scripting Backend設定
    • IL2CPPを選択
    • ARMv7とARM64の両方を有効

image
image
image

4. Lightship Plugin Provider 有効

XR Plug-in ManagementでLightship ARDKを有効にします。

  • Project Settingsを開く(上部メニューから [Edit] -> [Project Settings...]
  • 左側のメニューからXR Plugins Managementを選択して、使用するプラットフォームのPlug-In ProvidersからNitntic Lightship SDKにチェックを入れる

image
image

5. APIキー設定

次に、UnityプロジェクトにAPIキーを設定します。

  • ダッシュボードから[新しいプロジェクト]を選択してプロジェクトを作成
    (※ 作成済みのプロジェクトを使用する場合は一覧から選択してください)

image

  • APIキーの横にあるコピーアイコンをクリック

image

  • Unityプロジェクトで上部メニューから[Lightship] > [Settings]を選択し、Lightshipの設定を開く

image
image

  • Credentialsの[Api Key]欄に先ほどコピーしたAPIキーを入力

image

6. 【Androidのみ】Gradleインストール&設定

大体Unityプロジェクトの準備は完了しましたが、Androidを使用する場合にはGradleのカスタムインストールが必要のようです。そのため、Gradleをダウンロードして、UnityデフォルトのGradleをダウンロードしたものに置き換えていきます。

  • 以下URLのページからGradle 6.7.1をダウンロード
https://gradle.org/releases/#6.7.1
  • Preferencesを開きます(上部メニューから[File]->[Preferences]
  • 左側のメニューから[External Tools]を選択してAndroid項目を以下設定
    • [Gradle installed with Unity (recommended)]のチェックを外す
    • GradleのパスをダウンロードしたGradle 6.7.1のフォルダパスに設定

image

ARシーン構築

動作確認するために、ARカメラが動作する最低限の要素でARシーンを構築してみます。

  • 新規Sceneを作成します

  • デフォルトのMainCameraを削除します

image

  • AR Sessionをシーンに追加します

image

  • XR Originをシーンに追加します

image

そして、アプリをビルドしてみます。
ARカメラが動作すればOKです。

image

ARDKの機能を実装してみる

プロジェクト環境が整ったので、実際にARDKのOcclusionとMeshingの機能を実装してみます。

Occlusion機能

先ほどの最低限の要素で構成したARシーンと同様の状態から、Occlusion機能を動作させるために以下を設定します。

  • Main CameraAR Occlusion Managerを追加
  • Main Camera配下にCubeを配置

image
image

これだけで、Occlusion機能が動作しました。
(机が遮蔽となりCubeが隠れました)

image

Meshing機能

先ほどの最低限の要素で構成したARシーンと同様の状態から、Meshing機能を動作させるために以下を設定します。

MeshManager設定

  • XR Origin配下にMeshManagerという名前で空オブジェクトを作成
  • MeshManagerに以下を追加
    • ARMeshManager
    • Niantic Lightship Meshing Extension Settings
      image
      image

Meshing用オブジェクト準備&設定

Meshing機能で生成するためのオブジェクトを準備していきます。

  • シーン上にMeshChunkという名前で空オブジェクトを作成

  • MeshChunkに以下を追加します。

    • Mesh Filter
    • Mesh Renderer
    • Mesh Collider
      image
      image
  • MeshChunkにマテリアルを設定(今回は公式サンプルプロジェクトの中にあるMaterial「InvisibleMeshWithShadowsMat」を使用しました)

image

  • MeshChunkオブジェクトをプレハブ化
    image
  • プレハブ化したMeshChunkARMeshManager[Mesh Prefab]に設定します。

image

これで、Meshing機能が動作するようになりました。

適当にボールを投げる処理を入れて空間にボールを投げると、Meshing機能によって生成された透明のメッシュに沿うことで、現実世界の物に衝突しているかのような動きが実現できたりします。

image

Other : サンプルを触ってみる

公式のサンプルプロジェクトがあり、それぞれの機能を試せるシーンが入っているので、触ってみると機能がどのようなものかを知れると思います。また、スクリプトの中身を見ることで実装の参考にもできるかもしれません。

以下URLからサンプルプロジェクトがダウンロードできます。

https://github.com/niantic-lightship/ardk-samples

(サンプルシーンを触ってみた感じだと2.x系までのサンプルと内容が異なるようなので、機能の用途イメージを掴むためにどちらも試してみるのも良いかもしれません。)
image
サンプルシーン

※ もし2.x系までのバージョンで開発経験をしている方であれば、以下の移行ガイドを見ることで、一部の機能クラスの置き換わりが分かり、実装のイメージがつけやすくなるかと思います。

https://lightship.dev/docs/beta/ardk/migration_guide/

(筆者も過去ARDKを活用したプロジェクトに携わったことがあったので、既存のアプリを移行する場合にはもちろんですが、新規アプリを構築する場合にも確認すると良さそうだと感じました。)

おわりに

今回、UnityにARDK 3.0をインストールして、一部機能の実装を簡単に試してみました。

AR Foundationとの互換性が導入されているので、ARDKを触ったことがなくても、一部の機能はAR Foundationでのアプリ開発経験のある人も慣れているManagerクラスを追加することで、簡単に機能追加できるような印象を受けました。

他にもARDKには機能があり、まだ触ったことのない物もあるので試してみようと思います。
(久しぶりにShared AR機能を使って体験を作るのも楽しそうだなと思ったりもしました。)

Experimentalですが、Semantic Segmeantationの種類が過去に触っていた頃よりも増えていたので(foodやpetなど10種類ほど追加)、組み合わせるとおもしろそうなギミックや表現など作れそうな気がしたので、ぜひみなさんも試してみてください。

書いた人

AND

安藤 正仁

C向けの自社プロダクトを開発・運営するベンチャーにて、Webエンジニアとしてバックエンド・フロントエンド・インフラも少々と様々な領域を経験。その後、XRを扱う企業にて、WebバーチャルファションショーやスマホARなど、XRのアプリ開発をいくつか経験。フリーランスになりMESONで業務委託としての携わりを経て2022年7月に入社。

Twitter

MESON Works

MESONの制作実績一覧もあります。ご興味ある方はぜひ見てみてください。

https://meson.tokyo/works

MESON Works

Discussion