本文へスキップ

実世界でのオクルージョンの設定方法

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

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

前提条件

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

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

ライトシップのオクルージョンを設定する:

  1. AROcclusionManagerメインカメラに追加します。 GameObject
    1. Hierarchyで、 XROriginCamera Offsetを展開し、 Main Camera オブジェクトを選択します。 次に、 インスペクタで、 コンポーネントの追加 をクリックし、 AROcclusionManagerを追加します。
  2. 立方体をCameraの子として追加し、位置、回転、スケールを設定します:
    1. Hierarchyで、 Main 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つをテストする:

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

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

    1. Projectウィンドウで、Assetsディレクトリの下に、使用しているURPレンダラーを見つけます。
    2. Inspectorで、 Add 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とその機能の詳細については、Occlusion Featureページをご覧ください。

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

オクルージョン抑制は、指定された意味情報を含むピクセルが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 ページから他のセマンティック・チャンネルを使ってみて、何が起こるか見てみよう!

    ARセマンティック・セグメンテーション・マネージャによるライトシップ・オクルージョン拡張

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

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

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

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

    1. Hierarchyで、 XROrigin を選択し、空の GameObject を追加します。 名前は Meshing

    2. Meshingを選択し、 Inspectorで、 Add Component をクリックし、 ARMeshManager Component を追加します。

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

      1. このプレハブはレイヤーが "Mesh "に設定されている。 次のプロジェクトで、ここに別のプレハブを追加する場合は、新しいレイヤーにあることを確認してください。 新しいレイヤーを作成するには、インスペクタで 「レイヤー」ドロップダウンを選択し、レイヤーを作成して固有の名前を付けます。 (すでに使用されていない名前であれば何でもよい)。
    4. [Optional] メッシングの詳細設定を行うには、 LightshipMeshingExtension Component を Meshing GameObjectに追加します。

    5. [URP のみ】ユニバーサルレンダーパイプラインを使用する場合、 FusedMesh Material のシェーダーを Lightship/FusedDepthChunkURPに変更します。

      AR Mesh Managerによるメッシュオブジェクト
  3. オクルージョン安定化を有効にする:

    1. Inspectorで、 Lighthsip Occlusion Extension オプションメニューを開き、 Enable Occlusion Stabilization というラベルの付いたボックスをチェックします。 これで新しいオプションが表示される。

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

      ライトシップ・オクルージョン・エクステンション

詳細情報

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