見出し画像

【Lightship ARDK3.0を使ってみた】エンジニアが解説!最新バージョンの魅力とは?

こんにちは!デザイニウムの佐久間(@ppengotsu) です。
Niantic Lightship ARDKの最新バージョン”3”が正式リリースされました。
追加された機能や変更点を紹介する連載記事(全3回)の第1回目です。
開発者(クリエイター)の視点で、気になる変更点をさらっと見ていこうと思います。

💡ワンポイントアドバイス
 ARDK 「2」のサポート期限は、2024/4/1までと公式アナウンスされました。今からARDKを使うなら、”3”がおすすめです。ARDKの概要は弊社の過去記事を読むと把握しやすいかと思います。

気になる変更点

サポートするUnityバージョンの変更

ARDK 2までは、Unity2020LTS , 2021LTSを公式サポートしていました。
ARDK 3は、Unity2021LTS、 2022LTSがサポートされるようです。

💡ワンポイントアドバイス
Unity2021,2022を使用するには、細かい設定変更が必要なようです。

  • Unity2021かつAndroid向けの開発:Gradleのバージョンを上げる必要があります。

  • Unity2022:Visual Scriptingのバージョン1.9.1以上

セットアップ詳細
https://lightship.dev/docs/ardk/setup/

💡ワンポイントアドバイス
今後の新規開発には、Unity2022のLTSを推奨します。

クラスの変更

Unityのバージョンが更新されて、ARFoundationの仕様も大きく変わりました。それと同時に、ARDKのクラスなども大きく変更されたようです。

詳細は、公式サイトのARDK2から3への変更点をみてもらうとよいのですが、ざっくりと列挙すると以下の通りです。

  • ARDK独自クラス(例:ARRenderingManager)で処理されていたものがARFoundationのクラスで、できるだけ処理されるように変更

  • ARDKによる追加機能は、下記のような独立したクラスでパラメータを編集するように変更

    • オクルージョン、セマンティックセグメンテーション関連は、LightshipOcclusionExtensionクラス

    • メッシュ関連は、LightshipMeshingExtensionクラス

全体的に見ると、基本的な機能についてはARFoundationを活用することで、直感的で簡単な開発が可能です。一方で、より細かいカスタマイズが必要な場面では、ARDK独自のクラスを追加コンポーネントして、より高度な調整を行うことができます。

ARDK2から3へアップデート詳細
https://lightship.dev/docs/ja/ardk/migration_guide/

💡ワンポイントアドバイス
ARDK3 Betaからも一部クラス名などが変更されています。
https://lightship.dev/docs/ja/ardk/release_notes/release3.0/

VPSによる共有AR機能の追加

多人数がリアルタイムで同じ状態のAR空間を覗くには、セッションIDのようなAR空間のIDを入力する必要がありました。ARDK3では体験者がIDを入力しなくても、VPS機能でローカライズした場所をIDとして、同じAR空間を体験できる実装が可能になったようです。

💡ワンポイントアドバイス
公式サンプルでは、現在地の近辺で一般公開されているVPSのポイントの中から、共有AR空間のためのスポットを選択する必要があります。

プライベートスキャンした場所を使う方法を共有します。

  1. ARDK管理サイト上で、プライベートスキャンした場所のメッシュをダウンロードし、jsonファイルを開いてください。

  2. jsonファイル中のAnchorPayloadの項目にある文字列をコピーします。

  3. サンプルコードのVpsColocalizationDemoクラスのOnLocationSelectedメソッド中の”ISharedSpaceTrackingOptions.CreateVpsTrackingOptions”に、コピーした値を渡すようにします。

  4. アプリを実行してみると、どの場所を選んでもプラベートスキャンした場所をローカライズする動作になっているでしょう。

画像追跡コロカライゼーション

昔ながらのARでは、特定のマーカー画像上に3Dモデルを重ねて表示する手法がありました。ARDK3では、同一のマーカーを見ている複数のユーザー間でAR空間を共有する機能が、簡単に使えるように改良されました。

公式ドキュメント
https://lightship.dev/docs/ja/ardk/how-to/shared_ar/use_image_tracking_colocalization/

メッシングの距離がより広範囲にも対応

ARDK3では、メッシュ範囲が数十メートル以上になりました。
公式サンプルをベースに、広範囲のメッシュを生成する設定にして、比較してみました。

動画上の設定

  • 共通

    • iPhone12Proで動作確認

  • ARDK2の設定

    • Unity2021.3.30f1 

    • URP

Lightship ARDK2の設定
  • ARDK3の設定

    • Unity2022.3.11f1

    • URP

Lightship ARDK3の設定

ARDK3が圧倒的に広範囲まで作成できるようになっています。
スタート地点の遠方にある壁にもメッシュが生成されやすくなっているため、スタート地点から離れたキャラクターが現実の壁を通り抜けてしまうといった問題を防ぐ際に役立ちそうです。

セマンティックセグメンテーションが10種類追加

現実世界の物体を識別する機能が強化され、認識できる物体の種類が追加されました。

追加されたもの一覧 

ARDK公式サイトより引用


いくつか試してみました。スクリーンショットの左上の赤い部分が、現実の映像のうち、目的の認識物の可能性が高いとされた箇所です。

  • tv_experimental
    テレビだけでなく、PCモニタも認識できるようです。

  • tree_experimental
    公園の木々は問題なく認識できました。
    木々の隣からキャラクターが覗くような演出に役立ちそうです。

  • loungeable_experimental
    オフィスチェアもしっかりと認識できました。
    キャラクターを席に座らせるなどの表現で活用できそうです。

Netcodeへの対応

ARDKの通信の実装は、Unity公式のネットワーク管理ライブラリNetcodeを使うようになりました。既に開発アプリでNetcodeを使用している場合、ゲームロジックの部分などを再利用できるかもしれません。

おわりに

ARDK 3 は、各機能がパワーアップされて、ユーザビリティが向上されたなーという印象を受けました。ARFoundationのクラスをできる限り活用する方針により、ARDKでこの機能があるからつかってみよう!というときのハードルが下がってめっちゃよいと思います。

次回の記事は、ARDK2から移行する際のアドバイスなどをまとめた記事となります。

ぜひ、読んでみてください〜

【Lightship ARDK3.0を使ってみた】ARDK2利用者必見!ARDK3.0への移行手順とアドバイス|デザイニウム

エンジニア募集中!

デザイニウムはWebAR ができるウェブエンジニア を募集中です💻話題のApple Vision Pro向けアプリをはじめとした、多彩なXRコンテンツの開発に携われる刺激的な環境です🤩✨テーマを持ってR&Dに取り組むことも歓迎しています。就業はフルリモートなので、全国どこからでも応募できます🏢

カジュアル面談も大歓迎です。ぜひご応募お待ちしています👍



この記事が気に入ったらサポートをしてみませんか?