はじめに

Niantic Spatial SDK(以下、NSDK)は、以前ギャップロでも取り上げた Lightship ARDK の後継にあたる AR アプリ開発用の SDK です。物体検出やメッシュ生成、位置合わせなど、AR 開発で必要になる機能がひと通り揃っています。

NSDK は元々モバイル向けの SDK ですが、Meta Quest 向けの拡張パッケージが提供されており、Quest でも利用できます。今回は NSDK ver4.0.0 を対象に、Object Detection(物体検出)、Meshing(メッシュ生成)、VPS2(位置合わせ)の3機能を Quest 3 で検証しました。

ただ、検証を進める中で Quest では動かせない機能もあることがわかり、iPad での追加検証も行っています。この記事では、Quest 環境で遭遇した問題、各機能の検証結果、iPad での追加検証の順にまとめます。

検証環境

項目内容
SDKNiantic Spatial SDK
開発環境Unity 6000.1.17f1
検証デバイスMeta Quest 3、iPad

機能ごとの検証バージョンとデバイスは以下の通りです。

機能バージョンデバイス
Object Detectionver4.0.0Quest 3
Meshingver3.16.0Quest 3
VPS2ver4.0.0iPad

環境がばらばらになっているのは、検証中に遭遇した問題によるものです。Meshing のバージョンが異なる理由と、VPS2 だけ iPad になった経緯は、それぞれのセクションで詳しく触れます。

Quest での検証

まずは当初の目的どおり、Quest 3 で各機能を試していきます。ただ、検証を始める前に、Quest 環境で遭遇した問題を先にまとめておきます。

Quest 環境で遭遇した問題

Quest 環境のセットアップ段階で、いくつかの問題に遭遇しました。これらは後続の検証内容にも影響しています。

Quest 拡張パッケージのコンパイルエラー

Quest 拡張パッケージをインポートすると、core パッケージとの間でコンパイルエラーが2か所出ました。ver3.17.0 での API 変更(メソッドからプロパティへの変更)に Quest 拡張パッケージが追いついていなかったようで、ローカルキャッシュ上のコードを直接修正して対処しました。

パススルー表示の問題

ver4.0.0 の Quest 環境で、AR Camera Background(AR Foundation)にパススルー映像が表示されない問題がありました。Meta XR SDK 経由でパススルーを出すようにしたのですが、今度は AR Foundation に依存している Meshing などが動かなくなってしまいました。Meshing を ver3.16.0 の別プロジェクトで検証したのは、この問題が原因です。

以上の問題を踏まえつつ、各機能の検証結果を見ていきます。

Object Detection(物体検出)

カメラ映像に映っているものを領域で区切って、カテゴリごとにラベリングする機能です。206個のカテゴリに分けられて、それぞれの信頼度も取れるようになっています。

仕組み

学習モデルは初回実行時にサーバーからダウンロードされて、それ以降はデバイスにキャッシュされます。独自形式のモデルのようで、一般的な学習モデルに差し替えることはできなさそうでした。

検出精度

定義済みカテゴリの物体に対しては、それなりの精度が出ていました。ただ、未定義の物体を既存カテゴリとして誤検出してしまうこともありました。たとえば、上記の動画のように、サーバーラックが冷蔵庫と判定されるといった具合です。

Meshing(メッシュ生成)

周囲の空間をリアルタイムにスキャンして、形状のメッシュを生成する機能です。精度、速度、負荷ともに実用レベルで、Quest 3 と iPad のどちらでも動作しました。

ボールを転がすデモ

検証として、メッシュの上でボールを転がすデモを作ってみました。なお、前述のパススルー表示の問題により ver4.0.0 では Meshing が動作しなかったため、このデモは ver3.16.0 で検証しています。

ただ、テーブルのような水平面が完全に水平として認識されず、緩やかな坂として認識されるため、ボールがゆっくり転がっていってしまいます。用途によっては補正が必要になりそうです。

iPad での追加検証

NSDK の位置合わせには「高精度 VPS」と「VPS2」の2種類があります。高精度 VPS は Quest 3 にも対応していますが、Lightship.dev のアカウントと Geospatial Browser が必要です。Lightship.dev は2026年2月末にサービスを終了しているため、現在は使用できません。

もう一方の VPS2 は Scaniverse 経由でマップを作成・参照する仕組みで、Lightship.dev に依存しません。ただし、現時点では Quest に対応していないため、検証は iPad で行いました。あわせて、iPad 上で3機能を組み合わせたデモも作成しています。

VPS2(位置合わせ)

VPS2 は、Scaniverse アプリで空間をスキャン(動画撮影)して、そのデータを基にサーバー側で位置合わせ用のマップを生成する仕組みです。

検証結果

iPad で試してみたところ、実用レベルの精度で位置合わせができました。屋内では問題なく動きましたが、屋外(車とその周辺)のマップではうまくいかないケースがありました。また、カメラをある程度傾けないと位置合わせが通らない場面もありました。

無料枠の制限

無料枠では Site(ロケーション)が5個まで、マップ化できるスキャンデータは合計25分までです。

マップ生成にかかる時間

マップの生成時間は結構ばらつきがありました。同じ約40秒のスキャンデータでも、片方は20分で終わったのに、もう片方は1時間かかる、ということもありました。

「Generate splat」オプションをオンにすると生成時間がかなり長くなります。オフでも FBX ファイルはダウンロードできるので、基本的にはオフのままでよさそうです。

2026年4月7日時点の変更

本記事の検証後に Scaniverse の料金体系が変更され、Site 数やスキャン時間の上限はなくなりました。代わりにクレジット制が導入されており、フリープランでは毎月20,000クレジットまで、招待できるユーザー数は5人までとなっています。公式によると、月に約10分のスキャンデータをマップ化できる計算です。

公式には VPS クエリでもクレジットを消費する旨の記載がありますが、検証時に位置合わせを行った限りではクレジットは減りませんでした。

また、「Generate splat」オプションは廃止され、ガウシアンスプラットの生成が常に有効になっています。

3機能の組み合わせデモ

iPad では上記3機能すべてが動きそうだったので、VPS2、Meshing、Object Detection を組み合わせたデモを作成しました。NSDK のバージョンは ver4.0.0 です。

デモの動作フロー

  1. VPS2 で位置合わせを行い、Meshing と Object Detection を同時に起動する
  2. 画面をタップすると、そこから真っ直ぐ Ray を飛ばす
  3. Ray がメッシュにヒットした地点にボールを配置する
  4. タップしたスクリーン座標が Object Detection の検出領域内だった場合、そのカテゴリラベルをボールの前面に表示する
  5. 配置したボールやラベルの情報を永続化し、次回以降に VPS2 で同じ場所の位置合わせを行うと前回の配置が再現される

おわりに

Quest 対応をきっかけに NSDK の主要3機能を検証してみました。

  • Object Detection は206カテゴリに対応しており、Quest 3 上でも実用的な精度が出ていた。誤検出への対策は用途次第で検討が必要。
  • Meshing は精度、速度、負荷のバランスがよく、すぐに使えるレベル。水平面の扱いには注意。
  • VPS2 は屋内での位置合わせ精度が高く、従来の VPS からの正統進化という印象。屋外や角度の条件はもう少し検証が必要。
  • iPad では3機能を組み合わせたデモも問題なく動作し、機能間の連携や配置情報の永続化も実現できた。

Quest 対応はコンパイルエラーやパススルーの問題など、まだ発展途上な部分もあります。一方、モバイル(iPad)向けの AR 機能は十分に実用的で、VPS2 を含めた複数機能の連携もスムーズでした。AR 開発の SDK 選定で迷っている方の参考になればと思います。



ギャップロを運営しているアップフロンティア株式会社では、一緒に働いてくれる仲間を随時、募集しています。 興味がある!一緒に働いてみたい!という方は下記よりご応募お待ちしております。
採用情報をみる