【Lightship ARDK3.0を使ってみた】エンジニアが解説!最新バージョンの魅力とは?
こんにちは!デザイニウムの佐久間(@ppengotsu) です。
Niantic Lightship ARDKの最新バージョン”3”が正式リリースされました。
追加された機能や変更点を紹介する連載記事(全3回)の第1回目です。
開発者(クリエイター)の視点で、気になる変更点をさらっと見ていこうと思います。
気になる変更点
サポートするUnityバージョンの変更
ARDK 2までは、Unity2020LTS , 2021LTSを公式サポートしていました。
ARDK 3は、Unity2021LTS、 2022LTSがサポートされるようです。
Unity2021かつAndroid向けの開発:Gradleのバージョンを上げる必要があります。
Unity2022:Visual Scriptingのバージョン1.9.1以上
セットアップ詳細
https://lightship.dev/docs/ardk/setup/
クラスの変更
Unityのバージョンが更新されて、ARFoundationの仕様も大きく変わりました。それと同時に、ARDKのクラスなども大きく変更されたようです。
詳細は、公式サイトのARDK2から3への変更点をみてもらうとよいのですが、ざっくりと列挙すると以下の通りです。
ARDK独自クラス(例:ARRenderingManager)で処理されていたものがARFoundationのクラスで、できるだけ処理されるように変更
ARDKによる追加機能は、下記のような独立したクラスでパラメータを編集するように変更
オクルージョン、セマンティックセグメンテーション関連は、LightshipOcclusionExtensionクラス
メッシュ関連は、LightshipMeshingExtensionクラス
全体的に見ると、基本的な機能についてはARFoundationを活用することで、直感的で簡単な開発が可能です。一方で、より細かいカスタマイズが必要な場面では、ARDK独自のクラスを追加コンポーネントして、より高度な調整を行うことができます。
ARDK2から3へアップデート詳細
https://lightship.dev/docs/ja/ardk/migration_guide/
VPSによる共有AR機能の追加
多人数がリアルタイムで同じ状態のAR空間を覗くには、セッションIDのようなAR空間のIDを入力する必要がありました。ARDK3では体験者がIDを入力しなくても、VPS機能でローカライズした場所をIDとして、同じAR空間を体験できる実装が可能になったようです。
プライベートスキャンした場所を使う方法を共有します。
ARDK管理サイト上で、プライベートスキャンした場所のメッシュをダウンロードし、jsonファイルを開いてください。
jsonファイル中のAnchorPayloadの項目にある文字列をコピーします。
サンプルコードのVpsColocalizationDemoクラスのOnLocationSelectedメソッド中の”ISharedSpaceTrackingOptions.CreateVpsTrackingOptions”に、コピーした値を渡すようにします。
アプリを実行してみると、どの場所を選んでもプラベートスキャンした場所をローカライズする動作になっているでしょう。
画像追跡コロカライゼーション
昔ながらの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
ARDK3の設定
Unity2022.3.11f1
URP
ARDK3が圧倒的に広範囲まで作成できるようになっています。
スタート地点の遠方にある壁にもメッシュが生成されやすくなっているため、スタート地点から離れたキャラクターが現実の壁を通り抜けてしまうといった問題を防ぐ際に役立ちそうです。
セマンティックセグメンテーションが10種類追加
現実世界の物体を識別する機能が強化され、認識できる物体の種類が追加されました。
追加されたもの一覧
いくつか試してみました。スクリーンショットの左上の赤い部分が、現実の映像のうち、目的の認識物の可能性が高いとされた箇所です。
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に取り組むことも歓迎しています。就業はフルリモートなので、全国どこからでも応募できます🏢
カジュアル面談も大歓迎です。ぜひご応募お待ちしています👍