現実世界のオクルージョン(Real-World Occlusion)を設定する
Lightshipオクルージョンは、ARアプリケーションに奥行きを作り出し、ゲームオブジェクトを現実世界のオブジェクトの前や後ろにレンダリングします。 ARDK 3.0では、LightshipはAR Foundation Occlusion Managerとシームレスに統合され、ARKitやARCoreでは利用できないオクルージョンオプションが可能になりました。
前提条件
ARDK がインストールされたUnityプロジェクトと、セットアップされた基本的な AR シーンが必要です。 詳細については、 ARDK 3のインストール および ARシーンの設定を参照してください。
オクルージョンを設定する
Lightshipのオクルージョンを設定する:
AROcclusionManager
を メインカメラに追加します。GameObject
:- Hierarchyで、
XROrigin
と Camera Offsetを展開し、 Main Camera オブジェクトを選択します。 次に、 インスペクタで、 コンポーネントの追加 をクリックし、AROcclusionManager
を追加します。
- Hierarchyで、
- Cameraの子として立方体を追加し、位置とスケールを設定します:
- Hierarchyで、Main Camera オブジェクトを右クリックし、 3D Object にマウスオーバーして、 Cubeを選択します。
- Inspectorで、 Transform の見出しの下で、立方体の位置を (0, 0, 2)、スケールを (0.2, 0.2, 0.2)、回転を (0, 45, 45) に設定します。
- デバイスを構築したり、再生を使用したりすると、あなたのキューブは、あなたの携帯電話から2メートル以内にある物理的なオブジェクトによってオクルードされます。
![「オクルージョン」が登場](/docs/ja/assets/images/snorlax_occlusion-9427356a34a70145dd2621b3fdfd3c9a.png)
Lightship オクルージョンエクステンションによるオクルージョンの品質向上
Lightship Occlusion Extension を追加することで、標準の AROcclusionManager
に機能を追加し、オクルージョンのビジュアルクオリティを向上させることができます。
拡張機能を追加して試すには
LightshipOcclusionExtension
をメインカメラGameObject
に追加します。- Hierarchy で、
XROrigin
を展開し、 Main Camera を選択します。 次に、 インスペクタ で、 コンポーネントの追加 をクリックし、ライトシップオクルージョンエクステンション
を追加します。
- Hierarchy で、
- 拡張オプションメニューで、 Optimal Occlusion Distance Mode を Specified Game Object に設定します。
- Principal Occludee として、先に作成した Cube を設定する。
- デバイスにビルドしたり、再生で実行すると、画像内のオブジェクトのエッジが、キューブのオクルージョン境界線により正確に並ぶようになりました。
オクルージョン抑制の設定
オクルージョン抑制は、指定された意味情報を含むピクセルがARアセットをオクルージョンするのを防ぎます。 深度ベースのオクルージョンはノイズが多く、特定のセマンティック・チャンネルとの不整合を引き起こす可能性がある。 オクルージョン抑制を有効にすると、オクルージョンのビジュアルクオリティを向上させることができ、特にARキャラクタが床に切り取られたり、空に消えたりするように見えます。
- Lightship Occlusion Extensionでオクルージョンの質を向上させるの手順に従ってください。
ARSemanticSegmentationManager
を Main Camera に追加するGameObject
。- Hierarchyで、「XROrigin」を展開し、 Main Cameraを選択する。 そして、 Inspectorで、 Add Component をクリックし、
AR Semantic Segmentation Manager
を追加します。
- Hierarchyで、「XROrigin」を展開し、 Main Cameraを選択する。 そして、 Inspectorで、 Add Component をクリックし、
- Inspectorで、 Lightship Occlusion Extension オプションメニューを開き、 Enable Occlusion Suppressionというラベルの付いたボックスをチェックします。 これで新しいオプションが表示される。
- Main Camera
GameObject
を Hierarchy から Semantic Segmentation Manager Inspectorの フィールドにドラッグします。 - Suppression Channels "のリストに、"Element 0 "には "
sky
"を、"Element 1 "には "ground
"を追加する。 - これで完了です。 アプリケーションをテストするとき、地面や空に対応するピクセルが立方体を覆い隠さないようにします。 Semantics と Experimental Semantic Channels のページにある他のセマンティックチャンネルを使ってみて、どうなるか試してみてください!
オクルージョン・スタビライゼーション(Occlusion Stabilization)の設定
オクルージョン安定化 瞬間深度バッファからの情報とワールドメッシュからレンダリングされた深度フィールドを組み合わせて、フレーム間のオクルージョンを安定させる。 これにより、シーンの静的な部分において、より高品質で一貫性のあるオクルージョンが得られる。
- Lightship Occlusion Extensionでオクルージョンの質を向上させるの手順に従ってください。
- シーンにメッシングを設定します:
- 空の
GameObject
をXROrigin
に追加する。 名前は メッシング。 - Meshing を選択し、 ARMeshManager Component を追加します。
- ARMeshManager の MeshPrefab を FusedMesh (
NianticLightshipARPlugin/Assets/Prefabs
にあります) に設定します。 - [Optional] メッシングの詳細設定を行うには、 LightshipMeshingExtension Component を Meshing
GameObject
に追加します。 - [URP のみ】ユニバーサルレンダーパイプラインを使用する場合、 FusedMesh Material のシェーダーを
Lightship/FusedDepthChunkURP
に変更します。
- 空の
- オクルージョン安定化を有効にする:
- Inspectorで、 Lighthsip Occlusion Extension オプションメニューを開き、 Enable Occlusion Stabilization というラベルの付いたボックスをチェックします。 これで新しいオプションが表示される。
- Meshing
GameObject
を Hierarchy から Meshing Manager Inspector のフィールドにドラッグします。
詳細情報
詳しくは、 Occlusion Features を参照。