そういうのがいいブログ

アプリ個人開発 まるブログ

アプリ開発覚え書き

【Unity】AR Foundation AR Occlusion Manager オクルージョン対応メモ

環境

Unity:2021.3.27f1
AR Foundation:5.1.0

はじめに

現実の物体や人間の存在を検知しAR上の物体を遮蔽する機能であるオクルージョン機能

オクルージョンと一言でいっても種類や実行の条件があったためメモします。

※ARの基本的な設定等は省略します。

オクルージョン設定に必要なコンポーネント

オクルージョン機能を付与するのに必要なのは、
XR Originオブジェクト配下のカメラのオブジェクトに
「AR Occlusion Manager」コンポーネントを追加するだけです。

オクルージョンの種類

オクルージョンは大きく次の2種類
・机や壁などに対するオクルージョン
・人間の手や体に対するオクルージョン

机や壁などに対するオクルージョン

「AR Occlusion Manager」の設定項目でいうところの
Environment Depth Modeが机や壁などに対するオクルージョンの設定

人間の手や体に対するオクルージョン

「AR Occlusion Manager」の設定項目でいうところの
・Human Segmentation Stencil Mode
・Human Segmentation Depth Mode
これらが人間の手や体に対するオクルージョンの設定

Human Segmentation Stencil Modeは、人間の形状に合わせてARオブジェクトを遮蔽する
Human Segmentation Depth Modeは、人間の形状とその深度を検出する

端末側で必要な機能

2種類のオクルージョンに対して必要な端末の機能が異なる。

机や壁などに対するオクルージョン

Android:Depth API
iOS:LiDAR(Light Detection And Ranging)

LiDAR対応端末は以下です。
iPhoneですとiPhone 12 Pro 以降となっており、限定的な印象を受けます。
support.apple.com

人間の手や体に対するオクルージョン

Android:不可(AR Coreが対応していない)
iOS:People Occlusion

People Occlusion対応端末はこちらのサイト様がまとめていただいています。
iPhoneですとiPhone XSから対応ということで対応できるiOSユーザーは多そうです。
www.jyuko49.com

おわりに

オクルージョン対応自体はコンポーネントを追加するだけで簡単ですが、
対応する端末が限定されるため注意が必要なことがわかりました。

ちなみに対応不可端末でそれぞれのオクルージョンをコンポーネント側で有効設定に
しておいても実機でクラッシュするなどは起きませんでした。

ではでは。

私が書いた本

marumaro7.hatenablog.com