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

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

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. Universal Render Pipelineを使用している場合は、 Lightship Occlusion Extension Feature をURPレンダラーに追加します:
    1. Project ウィンドウで、 Assetsの下にある Settings ディレクトリを選択し、使用している URP レンダラーを見つけます。
    2. Inspectorで、 Add Renderer Feature ボタンをクリックし、 Lightship Occlusion Extension Featureを選択します。
  3. 立方体をCameraの子として追加し、位置、回転、スケールを設定します:
    1. Hierarchyで、 Main Cameraを右クリックし、 3D Object にマウスオーバーして、 Cubeを選択します。
    2. Inspectorで、 Transform の見出しの下で、立方体の位置を (0, 0, 2) に、回転を (0, 45, 45) に、スケールを (0.2, 0.2, 0.2) に設定します。
  4. デバイスを構築したり、再生を使用したりすると、あなたのキューブは、あなたの携帯電話から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. これで完了です。 アプリケーションをテストするとき、地面や空に対応するピクセルが立方体を覆い隠さないようにします。 Semantics ページから他のセマンティック・チャンネルを使ってみて、何が起こるか見てみよう!

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

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

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

詳細情報

詳しくは、 Occlusion Features を参照。