最近調べているNiantic SDK v3.15では、新たにMeta Quest3に対応したことが発表されています。
そこで、どのような内容なのかを調べてみました。
検証した環境
- Unity 6000.053f1 (Mac OS)
- Niantic Lightship AR Plugin 3.15.0-2508040839
- Niantic Lightship Meta Plugin 3.15.0
- Meta Core SDK v77.0
- OpenXR Plugin 1.14.3
- XR Interaction Tool Kit 3.0.8
検証に使用したデバイス
- Meta Quest3 (OS version :
1. 環境構築
1.1 Unityを開いて各種パッケージをインポート
基本的に、ここに書いてある通りに進めます。
Metaの公式開発ガイドにも沿ってくださいと書かれているため、適宜そちらも参照します。
まずはUnity6000.053f1で新しいプロジェクトを作ります。プロジェクトのテンプレートは「Universal 3D」としました。これは、Metaの公式開発ガイドに書かれているためです。
Universal 3Dテンプレートを選択してください。このテンプレートは、Universalレンダーパイプラインを基盤とした空のUnityプロジェクトです。
私はこの時点でSwitch PlatformでAndroidに変更しておきました。
次に、Unity Asset StoreからMeta Core SDKをインポートします。ブラウザで以下を開いてAdd to My Assetsを選択します。
Meta XR Core SDK | Integration | Unity Asset Store
選択した後はUnityに戻ってWindow > Package Managerを開いてMy Assetsの中からMeta Core SDKを見つけてInstallを選択します。
インストール後は、Meta > Tools >Project Setup Tool を開いて、エラーやWarningをFixしておきます。
私の環境ではこの時点で以下のようなエラーが出ました。
Fixボタンを押してもXR Plug-in ManagementとOpenXR Pluginは解決しません。これを解決するためには以下のように進めます。
まずはEdit > Project Settings >XR Plug-in Managementを選択します。そこで、Install XR Plug-in Managementボタンを選択してインストールします。
インストールが完了すると表示内容が変わります。ここで OpenXRにチェックをつけます。
すると、Package ManagerにOpenXR Plugin (com.unity.xr.openxr) がインストールされます。Enable Meta XR Feature Setに関するウインドウが出た場合はYesを選択します。
次に、Window > Package Manager を開き、"+"ボタンから"Add Package from git URL"を選択し、下記2つを入力して、それぞれインストールします。
https://github.com/niantic-lightship/ardk-upm.git
https://github.com/niantic-lightship/ardk-quest3-upm.git
これでその時点の最新バージョンのSDKが入ります。(8/12時点ではv3.15.0)
1.2 Niantic Spatial Platform (Developer Portal) API Keyを発行する
このページにある「Get Started」を選択してNiantic Spatial Platformを表示します。アカウントが未作成の場合は作成します。
Niantic SDK: Build Location-Based and AR Experiences | Niantic Spatial, Inc.
表示されたページでWorkspaceを作ります。その中で「プロジェクトの作成」を選択するとAPI Keyを発行できます。赤枠で囲った箇所のコピーマークをクリックしてAPI Keyをコピーします。 (数十文字の英数字文字列です)
次にUnityのFile, Edit, AssetsなどがあるメニューでLightship > Settingsを選択します。
API Keyを入力する画面が出るので、先ほど取得した長い文字列を入れておきます。
1.3 Unity内でNiantic SDKを使うために色々設定する
UnityのFile, Edit, AssetsなどがあるメニューでLightship > XR Plug-in Managmentを選択します。
OpenXRの箇所に全てチェックをつけます。
次に、Lightship > Run Setup for MetaでXR Plug-in Management > OpenXRを開きます。
初回はCompiling Scriptsとなって少し時間がかかります。2回目以降はすぐに開きます。もし2回目以降で開かない場合、Edit > Project Settings > XR Plug-in Management > OpenXRでも同じ画面が開きます。
Androidの表示にしてから、OpenXR Feature Groupについて下記と同じ箇所にチェックがついていることを確認します。
このとき、Meta Quest: Camera (Passthourgh)はチェックが付いていないですが、そのままにしてください。公式ドキュメントにも記載されています。
Take extra caution to ensure the only camera passthrough selected is the Lightship Meta AR Camera (Passthrough) as the Meta Quest: Camera (Passthrough) is not compatible.
Lightship > Project Validationを実施して、warningメッセージが出る場合はfixします。私の環境ではfixボタンを押してもこれらのエラーが残りました。
Screen Space Ambient Occlusionについては、どこで無効化できるかがよくわからなかったのと、"?"をみると無効化してもパフォーマンスに影響が、、とあってどちらにすればよいかわからないため、そのままにしました。
Soft Shadowsに関するWarningは、Edit>Project Settings> Quality > Shadowmask ModeをDisableにしたら消えました。ただし、これでよいかは不明です。
"Input System Package (New)"が必要、というエラーを解消するには、Edit > Project Settings > Player > Other Settings > Active Input Handlingを開いて、Input Systemの設定項目をBoth からInput System Package (New)に変更します。
こちらを参考にさせていただきました。
ここでUnityが再起動します。
再度Edit > Project Settings > XR Plug-in Management > Project Validationを実行するとerrorやwarningが変わりましたが、Fix allすることでSSAOのWarningのみが残りました。
ここまで実行すると環境構築完了です。
2. Sample Projectのダウンロードと実行
こちらを参考にしながら進めました。
Sample ProjectにはUnity Technologis社が提供している「XR Interaction Toolkit」が必要のため、Package Managerからインポートします。
次に、Package Managerの画面上で、[1]すでにインストール済みの「Niantic Lightship Meta Plugin」を選択、[2]Samplesタブを開いて、[3] Importボタンを押します。(インポート後のスクリーンショットなので[3]がReImportになっていますが、初めてであればImportと表示されます)
インポートが終わったら、Assets/Samples/Niantic Lightship Meta Plugin/3.15.0/Samplesが追加されているのを確認します。
この後、上記SamplesフォルダのHomeといくつかのシーンをビルド対象にして、ビルドします。Homeが最初に起動するように配置しました。
私の環境ではなぜかBuild and Runで失敗したので、apkを作った後でMeta Quest Developer Hubを使ってMeta Quest3にデプロイしました。
Meta Quest3で実行するとこのような画面が表示されます。
目の前にあるメニュー画面において、コントローラでSceneというボタンを選択すると、各種シーンを選択できるようになります。
順番に代表画面を紹介します。
◾️Meshing
スマートフォンアプリと同様に、カメラに映った風景に被さる形でメッシュが表示されます。
◾️Camera Display
アプリ画面上にカメラで写っている風景が表示されます。Pass throughなので目の前の風景に同じ風景が重なって見える感じです。
◾️Depth Image
撮影場所がよくないので分かりづらいですが、目の前に出した右手の深度情報が表示されているので、奥行きがある風景でDepth情報を取れると思います。
◾️Occulusion
画像だと分かりづらいですが、このシーンを実行したところメニュー画面の一部が欠けました。おそらく本来のメニュー画面のCanvasは部屋の壁より奥なのだと思います。
◾️CloudDeviceMapping, DeviceMapping, and VPS Localization
この画面はDevice Mappingシーンのものですが、Cloud~の場合も同じでした。Androidスマートフォンのときはこのようなメッセージは出なかったのですが、どうやらQuest3の場合もう少し設定が必要のようです。
◾️Object Detection
内蔵されている、あるいはMetaからダウンロードしている学習モデルを使って、カメラに写っている物体を認識します。
◾️Semantics Image Display
写っている範囲を区分けする機能のはずですが、撮影場所が悪いのか全て同じ色になってしまいました。
◾️Semantics Picker
これも撮影場所が悪いのか全て同じ色になってしまいました。
3. おわりに
ひとまずQuest3で動かすことはできました。Sample Projectについては、スマートフォンのSample Projectの一部が入っていない、ShareAR関係はSample Projectだけでは動かないなどが分かりました。
また、Quest3向け環境構築については、手順が抜けたり順番が異なるとうまく動かないようです。最初に作ったUnity プロジェクトでは失敗してPass throughで表示されない、コントローラによるポインタができないなどの問題が出て最終的に全ては解決できませんでした。
もし環境構築がうまくいかない場合、今回記載した手順に沿って1つずつ進めることと、Project Validationで表示されるエラーを都度fixさせることが必要な気がします。
時間があればスマートフォンとQuest3でARを共有する方法などを調べてみたいと思います。





















