見出し画像

Magic Leap 2 カメラのDepth Buffer による Segmented Dimming について

はじめに

Magic Leap 2 の機能で以前から搭載していた Segmented Dimmingは、URPを使って実現していました。この場合、URPの設定やコンテンツ毎にSegmented Dimmingの設定を行う必要がありました。2023年2月にアップデートされたSegmented Dimmingは、諸々の設定を行わなくてもカメラのDepth Bufferを利用して、全コンテンツにSegmented Dimmingを有効にできます。その方法について説明します。

URPによるSegmented Dimming の実装方法については以下の記事をご覧ください。


OnePlanet XR について

https://1planet.co.jp/xrconsulting.html

このブログ記事は OnePlanet XR によるものです。
OnePlanet XR は、AR/MR/VPS技術に専門特化したコンサルティングサービスです。豊富な実績を元に、AR/MR技術を活用した新たな事業の立ち上げ支援や、社内業務のデジタル化/DX推進など、貴社の必要とするイノベーションを実現いたします。

ご相談から受け付けております。ご興味ございましたらお問い合わせください。


Magic Leap 2 について

Magic Leap 2 についての概要は以下の記事をご覧ください。


開発環境 / 動作環境

Unity Editor 2022.2.8f1
Magic Leap SDK 1.2.0-dev1
Magic Leap Unity 1.4.0
Magic Leap XR Plugin 7.0.0
Magic Leap 2 OS 1.2.0-dev1
Magic Leap Unity Examples 1.4.0 


Magic Leap XR Plugin 7.0.0 のインポート

今回のカメラのDepth Buffer による Segmented Dimmingを使用する場合、Magic Leap XR Plugin 7.0.0をインポートする必要があります。しかし、Magic Leap Unity 1.4.0 の package.json に 登録している Magic Leap XR Plugin のバージョンが、7.0.0-pre.2 です。この7.0.0-pre.2を7.0.0に変更して、package.jsonを保存します。
その後、Package Manager を開いて、Magic Leap XR Plugin 7.0.0をインポートします。


Hello Cube シーン

Magic Leap Example v1.4.0 の Hello Cubeシーン

ML Hub の Package Manager から v1.4.0 の Magic Leap Unity Example をプロジェクトをUnityでインポート後、Hello Cube シーンを開いてください。


Camera の Renderer

Main Camera にある Camera の Rendering の Rendererが Renderer-Without SegmentedDimming であることを確認します。


Segmented Dimming の設定

using UnityEngine.XR.MagicLeap;
using UnityEngine;

public class SimpleSegmentedDimmer : MonoBehaviour
{
    private void Awake()
    {
        MLSegmentedDimmer.Activate();
    }
}

ヒエラルキーのGame Objectを作成し、上記のスクリプトを追加します。
実行するとHello Cube シーンにあるCubeとUIに対して、Segmented Dimmingが有効となり、透過が抑えられた状態で表示します。

Segmented Dimming を無効にする方法

MLSegmentedDimmer.Deactivate();

アクティブにした後、上記のコードを実行するとSegmented Dimmingを無効にすることができます。


まとめ

今まではURPによる1つずつのオブジェクトに対してSegmented Dimmingを設定する必要がありましたが、この機能を使用することで個々の設定を必要とせず、Segmented Dimmingが機能するため、複雑な3Dモデルや空間メッシュなどで簡単に実現できます。その反面、全てに適用されるため、特定のオブジェクトにのみ適用したい場合は、URPによるSegmented Dimmingを利用する必要があります。


OnePlanet XR

https://1planet.co.jp/xrconsulting.html

AR/MR/VPS技術に専門特化したコンサルティングサービス

Magic Leap2 を使ったソリューションのご検討の方からのお問い合わせ、お待ちしております。


お問い合わせ先

https://1planet.co.jp/xrconsulting.html#op_form


OnePlanet Tech Magazine

Magic Leap1 、Magic Leap2、スマホAR(Niantic Lightship ARDK、WebAR、VPSなど)といったAR技術全般をブログマガジンを連載しています。