本文へスキップ

サンプルプロジェクト

Lightshipのサンプルは、SDKの各機能の使用例を具体的に示すことを目的としています。 サンプル・プロジェクトは、複数の小さなサンプルを起動し、試したり、コードを見たりして、どの機能をどのように始めるかを学ぶことができる。 How-tos](./how-to/index.md)に従って、各機能を活用するためのステップバイステップのガイドを得ることができます。

さらに、サンプルプロジェクトに加え、複数の機能を組み合わせて、充実したAR体験を提供する独立型のミニゲームの例も用意しています。 絵文字ガーデンはその第一弾である。 永続的なShared AR体験を作成するためのベストプラクティスについて学ぶために、これを閲覧することができます! 詳細については、Emoji Gardenの特集ページにアクセスし、プロジェクトをダウンロードしてください。

サンプルをインストールする

サンプルは、Github(https://github.com/niantic-lightship/ardk-samples)から入手できます。

サンプルのクローン/ダウンロード方法:

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

または

Githubcode/download ボタンを使用して、https://github.com/niantic-lightship/ardk-samplesからリポジトリをダウンロードしてください。

次に、 Unity HubAdd を押し、プロジェクトを選択してUnityでサンプルプロジェクトを開きます。

すべてのサンプルが正常に動作するように、 Lightshipキーを追加 する必要があります。

Unity 2022でサンプルを実行する

デフォルトでは、サンプルプロジェクトはUnity2021.3.29f1で動作しますが、Unity 2022を使用したい場合は、バージョン2022.3.37f1にアップデートすることができます。

サンプルをUnity 2022にアップデートする:

  1. Unity Hubの Installsにある2022.3.37f1をインストールしてください。
  2. Projectsで、ARDKサンプルプロジェクトを見つけます。 Editor Versionをクリックし、2022.3.37f1に変更します。 次に、「**2022.3.37f1で開く」**ボタンをクリックします。
  3. Change Editor version? ダイアログが表示されたら、 Change Versionをクリックします。
  4. Opening Project in Non-Matching Editor Installation ダイアログが表示されたら、 Continueをクリックします。
  5. Gradleのカスタムベーステンプレートを無効にします。
    1. Unityのトップメニューで Edit をクリックし、 Project Settings をクリックします。
    2. 左側の Project Settings メニューで Player を選択し、「Android」タブをクリックします。
    3. Publishing Settings まで下にスクロールし、 Custom Base Gradle Template ボックスのチェックを外します。
  6. Window トップメニューで、 Package Manager を開きます。 パッケージリストから Visual Scripting を選択し、1.9.0未満のバージョンを使用している場合は、 Update をクリックします。
  7. エラーがある場合は、 Enter Safe Mode? ダイアログがポップアップ表示されます。 Enter Safe Mode をクリックしてエラーを修正する。

ヘッドマウントディスプレイサンプルの設置

ベータ版コンテンツ

Lightship Magic Leap 2の統合はベータ版であるため、一部の機能が期待通りに動作しない可能性があります。

Lightship Magic Leap Pluginには、ARのMagic Leap 2で使用するためにデザインされたサンプルシーンが含まれています。

Magic Leap 2のサンプルセットアップ手順:
  1. Magic Leap 2用のLightshipをインストールする手順に従ってください。

  2. UnityでWindowトップメニューを開き、Package Managerを選択します。 Packages が選択されていることを確認する:In Projectが選択されていることを確認する。

  3. Niantic Lightship Magic Leap PluginでSamplesタブを選択します。

  4. インポートをクリックしてサンプルを現在のプロジェクトにインポートします。

  5. サンプルシーンはAssets/Samples/Niantic Lightship Magic Leap Plugin/にあります。

  6. Fileのトップメニューで、Build Settingsを選択する。

  7. テストしたいサンプルシーンをBuildのScenesにドラッグしてください。

  8. ホームシーンがリストの一番上にあることを確認してください。 Magic Leap 2デバイスが接続され、サンプルをテストするために起きているときにビルドして実行します。

    ビルド設定メニューでシーンを選択する
  9. UnityでFileトップメニューを開き、Build Settingsを選択します。 左下にあるプレーヤー設定ボタンをクリックしてください。

  10. プレーヤー設定]で[スクリプトコンパイル]までスクロールし、[スクリプト定義シンボル]を展開します。 右下の**+を**クリックし、NIANTIC_LIGHTSHIP_SHAREDAR_ENABLEDをリストの一番下に追加する。

    スクリプトのコンパイルリストにdefineを追加する
  11. ProjectウィンドウでSamplesフォルダを開き、Lightship ASMDEF ファイルを選択します。 Inspectorで Assembly Definition Referencesを見つけ、右下の**+を**クリックします。 Niantic.Lightship.SharedARをリストに追加。

アセンブリ定義へのSharedAR参照の追加

サンプル

深度ディスプレイ

深度シーンは、深度バッファを取得し、シーンにオーバーレイとして表示する方法を示しています。 Depth フォルダ内の DepthDisplay.unity を開いてお試しください。

オクルージョン

このシーンでは、静止しているキューブをカメラの前で動かして、オクルージョンのデモを行います。 キューブは動かないため、周囲を歩き回ることで、オクルージョンの質を直接検査することができます。 このシーンを開くには、 Depth フォルダ内の Occlusion.unity シーンを参照してください。 このサンプルでは、Lightshipで利用可能な2つの高度なオクルージョンオプションである オクルージョン抑制オクルージョン安定化 のデモも行います。 これらのオプションは、セマンティックまたはメッシングからの入力を使用して、ちらつきを低減し、オクルージョンの視覚的品質を向上させる。 これらの機能の詳細については、オクルージョン抑制オクルージョン安定化の入門ガイドセクションをご覧ください。

セマンティック

このシーンでは、セマンティック・チャンネルの一部として、画面上で認識されたものに色をつけるシェーダーを適用するセマンティックのデモを行います。 このサンプルを開くには、 Semantics フォルダ内の SemanticsDisplay.unity を参照してください。

このサンプルを使用するには、以下の手順を行います。

  1. ドロップダウンリストから、セマンティックチャンネルを選択します。
  2. スマートフォンのカメラに対応するチャンネルを探してください。

オブジェクト検出

このシーンでは、オブジェクト検出のデモを行うために、検出されたオブジェクトの周囲に2Dバウンディングボックスを描画します。 設定メニューでは、検出されたすべてのクラスを表示するか、ドロップダウンから選択したクラスのみを表示するかを切り替えることができます。 このサンプルを開くには、 ObjectDetection フォルダ内の ObjectDetection.unity を参照してください。

メッシング

このシーンでは、メッシングを使ってシーンに物理メッシュを生成する方法を紹介します。 これは法線シェーダーを使ったメッシュで、色は上、右、前を表しています。

このサンプルを開くには、 Meshing フォルダ内の NormalMeshes.unity を参照してください。

Textured Mesh

このシーンは、ライトシップメッシュにテクスチャを貼る方法を示しています。 これはMeshingサンプルと同じように動作しますが、ワールド空間UV投影の1つの方法を示す3平面シェーダの例を使用します。 このサンプルでは、地面、壁、天井の3つのテクスチャをシーンにタイル状に配置しています。

このサンプルを開くには、 Meshing フォルダ内の TexturedMesh.unity を参照してください。

ナビゲーション・メッシュ

このシーンでは、メッシングを使用して Navigation Mesh を作成するデモを行います。 あなたが動き回るにつれて、私たちはナビゲーション・メッシュを作成し、成長させます。あなたがそれをクリックすると、AIエージェントにその位置に移動するよう指示することができます。 エージェントは角を曲がり、物体に飛び乗ることができます。 このサンプルを開くには、 NavigationMesh フォルダ内の NavigationMesh.unity を参照してください。

このデモを表示するには、以下の手順を行います。

  1. デバイスにシーンをビルドし、スマートフォンを周囲に向けて動き回ります。 しばらくするとゲームの駒が表示されるはずです。
  2. ゲームピースをタップして目的地を設定します。
  3. 選択した目的地に到達するために、 Player Cube(プレイヤーキューブ) がナビゲーション・メッシュに沿って道を探します。

リモート・オーサリング

備考

このサンプルは、縦向きの画面でのみ動作します。

このシーンでは、VPS Anchorをターゲットにしたターゲットローカライゼーションのデモを行います。 このサンプルを開くには、 PersistentAR フォルダ内の RemoteAuthoring.unity を参照してください。

このサンプルを使用するには、以下の手順を行います。

  1. 地理空間ブラウザにアクセスします。

  2. 任意の デフォルトアンカーBlob をコピーします。

  3. シーンの Hierarchy(階層) で、 XR Origin に移動します。 Inspector ウィンドウで、コピーしたBlobを Default Anchor Payloads To Localize(ローカライズするデフォルトのアンカーペイロード) のリストに追加します。

    Default Anchor Payloads To Localize
  4. デバイスにサンプルをビルドします。

  5. GSBで選択したロケーションに実際に訪れ、ローカライズします。

  6. Geospatial Browserで、緑色のキューブが Coordinate Axis Marker(座標軸マーカー) によって示されたメッシュの原点に表示されます。

ランタイム時にBlobを変更する

テスト用デバイスでGeospatial Browserを開き、別のアンカーの Blob をコピーして、アプリが実行されている状態で Payload のテキストボックスに貼り付けます。

VPSローカライゼーション

注意

このサンプルにはLightship API Keyが必要です。

このシーンでは、半径範囲内にあるVPSロケーションのリストが表示され、Coverage APIからWaypointをローカライズターゲットとして選択できます。その後、スマートフォンのマップと連携して目的地までの道案内を行います。 このサンプルを開くには、 PersistentAR フォルダ内の VPSLocalization.unity を参照してください。

このサンプルを使用するには、以下の手順を行います。

  1. デバイスにビルドし、アプリを開きます。 位置情報へのアクセスを許可していることを確認します。
  2. 現在地から検索するには、半径を設定し、 Request Areas(エリアをリクエスト) をタップします。 別の場所から検索するには、緯度と経度の座標を入力します。
  3. 実際にそのロケーションを訪れ、 Localize ボタンをタップします。
  4. ステータスが Tracking に変わると、メッシュの原点にキューブが表示されます。

共有AR VPS (Shared AR VPS)

注意

このサンプルにはLightship API Keyが必要です。

このシーンでは、Coverage APIからWaypointを選択し、その周囲で共有AR体験を作成することができます。 このサンプルを開くには、 SharedAR フォルダ内の SharedARVPS.unity を参照してください。

モバイルデバイスでこのサンプルを使用するには、以下の手順を行います。

  1. VPSLocalization の手順に従い、利用可能なロケーションでローカライズを行います。
  2. 実際にそのロケーションを訪れ、手順1のローカライズに使用したデバイスとは別の2~10台のスマートフォンで Localize ボタンをタップします。 このプロセスにより、全員が同じ場所にローカライズされ、同じルームに自動的に参加します。
  3. ステータスが Tracking に変わると、セッション内のすべてのプレイヤーに名前タグが表示されます。 名前タグが赤くなると、そのプレイヤーのトラッキングが失われたことを示します。 Stats UIはタップして非表示にできますが、そのセッション中に再表示されることはありません。

Unityエディターのプレイバック機能を使用してこのサンプルを使用するには、以下の手順を行います。

  1. 特定のロケーションでシーンのプレイバックを設定します。 再生設定方法を参照してください。
  2. Geospatial Browserから、プレイバック時に使用するデフォルトのアンカーペイロード文字列を提供する。 地理空間ブラウザの使い方を参照してください。
  3. デフォルトのアンカーペイロード文字列を、 VPS Colocalization Demo コンポーネントの In Editor Payload フィールドにコピーします。
  4. VPSコロカライゼーション・シーン (VPS Colocalization scene)を開始する。 ペイロード文字列を使って自動的にトラッキングを開始します。
  5. ネットワークUIが表示されたら、ホストとして参加するか、クライアントとして参加するかを選択します。

共有AR画像追跡コロカライゼーション(Shared AR Image Tracking Colocalization)

注意

このサンプルを使用するには、Lightship APIキーが必要です。

このシーンでは、VPSロケーションを使用せずに、複数のユーザーが共有ルームに参加することができます。そのためには、静止画像を原点として使用します。 このサンプルを開くには、 SharedAR フォルダ内の ImageTrackingColocalization.unity を参照してください。

このサンプルを使用するには、以下の手順を行います。

  1. Assets/Samples/SharedAR/IMG-2689.png にある画像を印刷し、幅を9cmに調整します。
  2. 画像を表面に置きます。
  3. デバイスのカメラを画像に向けます。 Create New Room を選択します。

ワールドポーズ

このサンプルでは、デバイスのGPSコンパスとワールドポーズコンパスを比較することで、ワールドポジショニングシステムがカメラの精度をどのように向上させるかを示しています。 歩いているうちに、ワールド・ポーズ・コンパスは安定し、より正確になっていくはずだ。

Recording

このシーンでは、エディターで再生するために実際の場所をスキャンすることができます。 このサンプルを開くには、 Scanning フォルダの Recording.unity を参照してください。 このサンプルの使用方法については、プレイバック用データセットを作成するを参照してください。