本文へスキップ
バージョン: 3.0

現実世界のオクルージョン(Real-World Occlusion)を設定する

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 オブジェクトを選択します。 次に、 インスペクタで、 コンポーネントの追加 をクリックし、 AROcclusionManagerを追加します。
  2. Cameraの子として立方体を追加し、位置とスケールを設定します:
    1. Hierarchyで、Main Camera オブジェクトを右クリックし、 3D Object にマウスオーバーして、 Cubeを選択します。
    2. Inspectorで、 Transform の見出しの下で、立方体の位置を (0, 0, 2) に、スケールを (0.2, 0.2, 0.2) に設定します。
  3. これで完了です。 これで、デバイスを構築したり再生を使用したりする際、あなたのキューブは、あなたの携帯電話から2メートル以内にある物理的なオブジェクトによってオクルードされることになる。
「オクルージョン」が登場

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

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

拡張機能を追加して試すには

  1. LightshipOcclusionExtension をメインカメラ GameObject に追加します。
    1. Hierarchy で、 XROrigin を展開し、 Main Camera を選択します。 次に、 インスペクタ で、 コンポーネントの追加 をクリックし、 ライトシップオクルージョンエクステンション を追加します。
  2. 拡張オプションメニューで、 Optimal Occlusion Distance ModeSpecified Game Object に設定します。
  3. Principal Occludee として、先に作成した Cube を設定する。
  4. デバイスにビルドしたり、再生で実行すると、画像内のオブジェクトのエッジが、キューブのオクルージョン境界線により正確に並ぶようになりました。

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

オクルージョン抑制は、指定された意味情報を含むピクセルが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. これで完了です。 アプリケーションをテストするとき、地面や空に対応するピクセルが立方体を覆い隠さないようにします。 SemanticsExperimental Semantic Channels のページにある他のセマンティックチャンネルを使ってみて、どうなるか試してみてください!

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

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

  1. Lightship Occlusion Extensionでオクルージョンの質を向上させるの手順に従ってください。
  2. シーンにメッシングを設定します:
    1. 空の GameObjectXROriginに追加する。 名前は メッシング
    2. Meshing を選択し、 ARMeshManager Component を追加します。
    3. ARMeshManagerMeshPrefabFusedMesh ( NianticLightshipARPlugin/Assets/Prefabsにあります) に設定します。
    4. [Optional] メッシングの詳細設定を行うには、 LightshipMeshingExtension Component を Meshing GameObjectに追加します。
    5. [URP のみ】ユニバーサルレンダーパイプラインを使用する場合、 FusedMesh Material のシェーダーを Lightship/FusedDepthChunkURPに変更します。
  3. オクルージョン安定化を有効にする:
    1. Inspectorで、 Lighthsip Occlusion Extension オプションメニューを開き、 Enable Occlusion Stabilization というラベルの付いたボックスをチェックします。 これで新しいオプションが表示される。
    2. Meshing GameObjectHierarchy から Meshing Manager Inspector のフィールドにドラッグします。

詳細情報

詳しくは、 Occlusion Features を参照。