本文へスキップ

現実世界のオクルージョンを設定する

Lightshipオクルージョンは、ARアプリケーションに奥行きを作り出し、ゲームオブジェクトを現実世界のオブジェクトの前や後ろにレンダリングします。 ARDK 3.0では、LightshipはAR Foundation Occlusion Managerとシームレスに統合され、ARKitやARCoreでは利用できないオクルージョンオプションが可能になりました。

「オクルージョン」が登場

前提条件

ARDKがインストールされたUnityプロジェクトと、セットアップされた基本的なARシーンが必要です。 詳細については、ARDK 3のインストールと 基本的なARシーンの設定を参照してください。

オクルージョンを設定する

Lightshipのオクルージョンを設定するには、以下の手順を行います。

  1. AROcclusionManagerメインカメラに追加します。 GameObject
    1. Hierarchyで、 XROriginCamera Offsetを展開し、 Main Camera オブジェクトを選択します。 次に、 Inspectorで、 Add Component をクリックし、 AROcclusionManagerを追加します。
  2. カメラの子オブジェクトとしてキューブを追加し、その位置や回転、スケールを設定します。
    1. HierarchyMain Camera を右クリックし、 3D Object にマウスを合わせて Cube を選択します。
    2. Inspector で、 Transform の見出しの下にあるキューブの位置を (0, 0, 2)、回転を (0, 45, 45)、スケールを (0.2, 0.2, 0.2) に設定します。
  3. デバイスにビルドしたり、プレイバック機能を使用すると、スマートフォンから2メートル以内にある物理的なオブジェクトによってキューブがオクルードされます。
オクルージョンの動作例

Lightship オクルージョンエクステンションによるオクルージョンの品質向上

Lightship Occlusion Extension を追加することで、標準の AROcclusionManager に機能を追加し、オクルージョンのビジュアルクオリティを向上させることができます。

拡張機能を追加してその機能をテストするには、以下の手順を行います。

  1. LightshipOcclusionExtension をメインカメラ GameObject に追加します。

    1. Hierarchy で、 XROrigin を展開し、 Main Camera を選択します。 次に、 インスペクタ で、 コンポーネントの追加 をクリックし、 ライトシップオクルージョンエクステンション を追加します。
  2. URP(ユニバーサルレンダーパイプライン)を使用している場合は、URPレンダラーに Lightship Occlusion Extension Feature を追加します。

    1. まず、 Project ウィンドウで、 Assets ディレクトリにある使用中のURPレンダラーを見つけます。
    2. 次に、 InspectorAdd Renderer Feature ボタンをクリックし、 Lightship Occlusion Extension Feature を選択します。 この機能が AR Background Renderer Feature の後に配置されていることを確認してください。
  3. 拡張オプションメニューで、 Optimal Occlusion Distance ModeSpecified Game Object に設定します。

  4. Principal Occludee として、先に作成した Cube を設定する。

  5. デバイスにビルドしたり、再生で実行すると、画像内のオブジェクトのエッジが、キューブのオクルージョン境界線により正確に並ぶようになりました。

    Lightship Occlusion Extension

Lightship Occlusion Extensionと、その機能の詳細については、 オクルージョン機能のページ をご覧ください。

オクルージョン抑制の設定

オクルージョン抑制は、指定された意味情報を含むピクセルがARアセットをオクルージョンするのを防ぎます。 深度ベースのオクルージョンはノイズが多く、特定のセマンティック・チャンネルとの不整合を引き起こす可能性がある。 オクルージョン抑制を有効にすると、オクルージョンのビジュアルクオリティを向上させることができ、特にARキャラクタが床に切り取られたり、空に消えたりするように見えます。

  1. Lightship Occlusion Extensionでオクルージョンの質を向上させるの手順に従ってください。

  2. ARSemanticSegmentationManagerMain Camera に追加する GameObject

    1. Hierarchyで、「XROrigin」を展開し、 Main Cameraを選択する。 そして、 Inspectorで、 Add Component をクリックし、 AR Semantic Segmentation Manager を追加します。
  3. Inspectorで、 Lightship Occlusion Extension オプションメニューを開き、 Enable Occlusion Suppressionというラベルの付いたボックスをチェックします。 これで新しいオプションが表示される。

  4. Main Camera GameObjectHierarchy から Semantic Segmentation Manager Inspector フィールドにドラッグします。

  5. Suppression Channels "のリストに、"Element 0 "には " sky "を、"Element 1 "には " ground "を追加する。

  6. これで完了です。 アプリケーションをテストするとき、地面や空に対応するピクセルが仮想オブジェクトをオクルードしてはいけません。 Semantics ページの他のセマンティックチャンネルを試して、どのように表示されるか確認してみましょう。

    Lightship Occlusion ExtensionとAR Semantic Segmentation Manager

オクルージョン・スタビライゼーション(Occlusion Stabilization)の設定

オクルージョン安定化 瞬間深度バッファからの情報とワールドメッシュからレンダリングされた深度フィールドを組み合わせて、フレーム間のオクルージョンを安定させる。 これにより、シーンの静的な部分において、より高品質で一貫性のあるオクルージョンが得られる。

  1. Lightship Occlusion Extensionでオクルージョンの質を向上させるの手順に従ってください。

  2. シーンにメッシングを設定します:

    1. HierarchyXROrigin を選択し、空の GameObject を追加します。 Meshing という名前を付けます。

    2. Meshing を選択し、 InspectorAdd Component をクリックし、 ARMeshManager コンポーネントを追加します。

    3. ARMeshManager コンポーネントで、 MeshPrefabFusedMeshPackages/NianticLightshipARPlugin/Assets/Prefabs にあります)に設定します。

      1. このプレハブには「Mesh」というレイヤーが設定されています。 次のプロジェクトで別のプレハブをここで追加する場合は、そのプレハブが新しいレイヤーに設定されていることを確認してください。 新しいレイヤーを作成するには、 InspectorLayer ドロップダウンを選択し、レイヤーを作成して、固有の名前を付けます。 (名前は、既存のものと重複しない限り、何でもかまいません。)
      2. [URP のみ] ユニバーサルレンダーパイプラインを使用している場合、ARMeshManager に割り当てる前にプレハブを直接 Unity プロジェクトに追加する必要があります。 Projectウィンドウで、Packagesまでスクロールダウンし、Niantic Lightship AR Pluginを開きます。 AssetsサブフォルダでPrefabs を選択し、FusedMeshプレハブをプロジェクトのAssetsフォルダにドラッグ&ドロップします。 そうしたら、MeshPrefabを FusedMeshに設定します。
    4. [Optional] メッシングの詳細設定を行うには、 LightshipMeshingExtension Component を Meshing GameObjectに追加します。

    FusedMeshマテリアルのシェーダーをLightship/FusedDepthChunkURP に変更します。

    Meshing objectとAR Mesh Manager
  3. オクルージョン安定化を有効にする:

    1. Inspector(インスペクタ)」で**「Lightship Occlusion Extension(ライトシップオクルージョン拡張)」**オプションメニューを開き、「Enable Occlusion Stabilization(オクルージョン安定化を有効にする)」と書かれたボックスをチェックします。 これで新しいオプションが表示される。

    2. Meshing GameObjectHierarchy から Meshing Manager Inspector のフィールドにドラッグします。

      Lightship Occlusion Extension

詳細情報

詳しくは、 オクルージョン機能に関するページ をご覧ください。