開発
開発
プラットフォームを選択

オクルージョンスタートガイド

更新日時: 2025/02/18
以下のセクションでは、Depth APIの実装方法を順を追って説明し、オクルージョンの使用を開始するのに役立つ情報を紹介します。
このガイドを読み終えると、以下のことができるようになります
  • Depth APIが利用できるようにUnityプロジェクトを設定する
  • アプリケーションに奥行テクスチャーを取り込む
  • シーン内の仮想オブジェクトが現実世界のオブジェクトによってオクルージョンされるようにする

互換性

次の表は、オクルージョン機能と互換性のあるソフトウェアを示しています。
エディターバージョンXRプロバイダープラグインのバージョンMeta XR SDKバージョンの互換性
Unity 2022.3.15f1以降
Oculus XRプラグイン4.2.0以降
v67以上、v74未満
Unity 2023.2以降
Oculus XRプラグイン4.2.0以降
v67以上、v74未満
Unity 6以降
Unity OpenXR Metaプラグイン(com.unity.xr.meta-openxr@2.1.0以降)
v74以降
Depth API compatibility
Depth APIはSDKの以前のバージョンでもサポートされていますが、最高の品質とパフォーマンスを発揮するためには最新バージョンにアップグレードしてください。以前のバージョンのサポートについては、Unity-DepthAPIリポジトリにあるドキュメントをご覧ください。

前提条件

このチュートリアルを始める前に、パススルースタートガイドで案内されている手順を完了し、必要な依存関係を含むプロジェクトを作成してください。このチュートリアルはそのようなプロジェクトに基づき構成されています。

EnvironmentDepthManager

シーンにオクルージョンを追加するには、まずシーン内の任意の場所にEnvironmentDepthManager.csコンポーネントを追加します。このスクリプトはMeta XR Core SDKのScripts/EnvironmentDepthの下にあり、システムから奥行テクスチャーを取得して、シェーダーに渡します。

プロジェクト設定ツール

Depth APIを機能させるには、予め次の要件を満たしておく必要があります。
  • グラフィックAPIをVulkanに設定する。
  • ステレオレンダリングモードをマルチビューに設定する。
  • パススルー機能を有効にして、Depth APIを使う予定のすべてのシーンに統合しておく。
  • OVRManagerコンポーネントでシーンサポートを必須に設定する。
このプロセスについてサポートが必要な場合は、プロジェクト設定ツール(PST)をご利用ください。このツールは問題を検知し、修正方法を提案します。一般的な推奨事項も提供されます。このツールには、次の2とおりの方法でアクセスできます。
  • エディターの左上隅にある小さな[Meta XR Tools (Meta XRツール)]ドロップダウン。クリックすると起動するメニューからPSTにアクセスできます。このメニューには、問題が検出されると修正が必要であることを知らせる通知バッジも備わっています。Meta XR Tools dropdown in the editor top-left with notification badge for PST issues.
  • Unityのトップメニューで[Meta] > [Tools (ツール)] > [Project Setup Tool (プロジェクト設定ツール)]を選択して、PSTにアクセスすることもできます。PSTが開くと、すべての問題と解決のための推奨事項がメニューに表示されます。未解決の問題をすべて修正しないと、Depth APIが機能しません。推奨事項も適用してください。
Project Setup Tool window listing outstanding issues and recommended fixes.

シーンのアクセス許可

Depth APIを利用するアプリは、アプリの実行中に空間データへのアクセス許可をリクエストする必要があります。アプリからユーザーに対して、USE_SCENEアクセス許可を受け入れるように促す必要があります。ユーザーにアクセス許可リクエストウィンドウを表示したいときは、以下のコード行を呼び出します。
または、OVRManager内の起動時のアクセス許可リクエストで、[Scene (シーン)]ボックスにチェックを入れてください。そうすると、アプリ起動時にシーンのアクセス許可を付与するよう、ユーザーに求めることができます。
OVRManager Inspector with Scene checkbox enabled under Permission Requests On Startup.

実装

オブジェクトには、オクルージョンの遮蔽をサポートするシェーダー付きマテリアルが必要です。
Depth APIには、オクルージョンサポートによってシェーダーとシェーダーグラフを強化するための、シェーダーライブラリとシェーダーグラフのサブグラフが備わっています。また、初心者に便利な基本シェーダーも含まれています。
このガイドでは、Depth APIに付属しているOcclusionLitというシェーダーを使用します。このシェーダーは、URPでもBiRPでも機能します。
  • 「OccludedMaterial」のような名前で新しいマテリアルを作成します。
  • そのシェーダーをEnvironmentDepth/OcclusionLitに変更します。 Material Inspector with shader set to EnvironmentDepth/OcclusionLit.
  • このマテリアルをオクルージョンされるオブジェクトに適用します。
Virtual object being occluded by real-world surfaces using the OcclusionLit shader.

オクルージョンのビルディングブロック

ビルディングブロックを使えば、オクルージョン追加プロセスを効率化できます。シーンにオクルージョンブロックを追加すると、オクルージョンを機能させるのに必要なすべての依存関係が自動的に追加されます。これはオクルージョン初心者におすすめの方法です。
Building Blocks menu with the Occlusion block available to add.
Occlusion Building Block selected in the Building Blocks panel.
「オクルージョン」ビルディングブロックをシーン内にドラッグアンドドロップすると、必要なすべての依存関係が自動的に追加されます。
Hierarchy showing occlusion dependencies added after dragging in the Building Block.

オクルージョンの有効化と設定

前のステップで追加したEnvironmentDepthManager.csコンポーネントを使って、プロジェクトでオクルージョンのタイプを設定できます。
EnvironmentDepthManager component in Inspector with occlusion type settings.
コードからオクルージョンの動作を変更するには、以下のコードスニペットを参照してAPIの使い方を学んでください。
// Add a reference to your EnvironmentDepthManager
[SerializeField] private EnvironmentDepthManager _environmentDepthManager;
//enables the feature and makes depth textures available
_environmentDepthManager.enabled = true;
//sets occlusion mode to "SoftOcclusion" -- this is the default value
_environmentDepthManager.OcclusionShadersMode = OcclusionShadersMode.SoftOcclusion;
//sets occlusion mode to "HardOcclusion"
_environmentDepthManager.OcclusionShadersMode = OcclusionShadersMode.HardOcclusion;
//sets occlusion mode to "None" -- it's a good idea to disable environmentDepthManager to save resources in this case
_environmentDepthManager.OcclusionShadersMode = OcclusionShadersMode.None;
//disables the feature. Frees up resources by not requesting depth textures from the system
_environmentDepthManager.enabled = false;

詳しくはこちら

この機能の使用を開始する方法について理解できたら、次のガイドに進みましょう。
ナビゲーションロゴ
日本語
© 2026 Meta