![見出し画像](https://assets.st-note.com/production/uploads/images/92252132/rectangle_large_type_2_b7a7baa559eec75a6f78456adda998fe.png?width=1200)
Magic Leap2 の Global Dimming
はじめに
この記事は、Magic Leap2 Advent Calendar 2022 の3日目です。
Magic Leap2 の Global Dimming の実装方法について説明します。
OnePlanet XR について
![](https://assets.st-note.com/img/1668445046573-BgtqiAfgFO.png?width=1200)
このブログ記事は OnePlanet XR によるものです。
OnePlanet XR は、AR/MR/VPS技術に専門特化したコンサルティングサービスです。豊富な実績を元に、AR/MR技術を活用した新たな事業の立ち上げ支援や、社内業務のデジタル化/DX推進など、貴社の必要とするイノベーションを実現いたします。
ご相談から受け付けております。ご興味ございましたらお問い合わせください。
Magic Leap2 の Global Dimming
Magic Leap 2 の Global Dimmerです。トリガーの押し具合でGlobal Dimmerの値を増減しています。周りが暗くなる分、ユニティちゃんの透過がなくなります。
— Sadao Tokuyama (@tokufxug) November 14, 2022
動画撮影ではGlobal Dimmerの状態が反映しないためスマホで撮影してます。#ユニティちゃん #LEAPERSJAPAN #unitychan pic.twitter.com/jC26u98rWv
上記のようなトリガーを押すと、Global Dimmingの調整を行う方法を説明します。(デモはユニティちゃんですが説明ではシンプルなCubeで構築を行います。)
開発環境 / 動作環境
Unity Editor 2022.2.0b8.3023
Magic Leap SDK 1.1.0-dev1
Magic Leap XR Plugin 7.0.0.pre.1
Magic Leap2 OS 1.1.0-dev1 (B3E.221020.13-R.039_40)
ヒエラルキー
![](https://assets.st-note.com/img/1668444034936-QTew1jOuoL.jpg)
シーンを新規作成します。Main Cameraは削除し、XR Rigのプレファブをヒエラルキーに配置します。
2つのGame Objectを作成し、名前をGlobal Dimmer Example と Place Front Camera に変更します。Place Front Camera 配下 に Cube を作成します。
Global Dimmer Example
![](https://assets.st-note.com/img/1668444233865-SOHOjsPqdq.jpg)
Global Dimming というスクリプトを作成し、コンポーネントとして追加します。
スクリプトは以下になります。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.InputSystem;
using UnityEngine.XR.MagicLeap;
public class GlobalDimming : MonoBehaviour
{
private MagicLeapInputs mlInputs;
private MagicLeapInputs.ControllerActions controllerActions;
private float dimmerDelta = 0.1f;
// Start is called before the first frame update
void Start()
{
mlInputs = new MagicLeapInputs();
mlInputs.Enable();
controllerActions = new MagicLeapInputs.ControllerActions(mlInputs);
controllerActions.Trigger.performed += HandleOnTrigger;
}
// Update is called once per frame
void Update()
{
}
private void HandleOnTrigger(InputAction.CallbackContext obj)
{
float triggerValue = obj.ReadValue<float>();
MLGlobalDimmer.SetValue(triggerValue);
}
}
トリガーを押されたタイミングでトリガーの値をMLGlobalDimmerに設定することでGlobal Dimmingの設定値として反映されます。
Place Front Camera
![](https://assets.st-note.com/img/1668444442950-Nfwil9yskv.jpg)
Place From Cameraのスクリプトを追加します。設定は上記の図と同じように変更します。
Cube
![](https://assets.st-note.com/img/1668444503317-0EhPPrpnja.jpg)
スケールは0.5に縮小します。マテリアルは白など明るい色のマテリアルを作成しCubeに設定します。
実行
Magic Leap 2 の Global Dimmerです。トリガーの押し具合でGlobal Dimmerの値を増減しています。周りが暗くなる分、ユニティちゃんの透過がなくなります。
— Sadao Tokuyama (@tokufxug) November 14, 2022
動画撮影ではGlobal Dimmerの状態が反映しないためスマホで撮影してます。#ユニティちゃん #LEAPERSJAPAN #unitychan pic.twitter.com/jC26u98rWv
上記はユニティちゃんのデモですが、トリガーボタンを押すことでCubeが不透明にならず、その変わりに全体が暗く表示します。
OnePlanet XR
![](https://assets.st-note.com/img/1669995289547-8yBxvLdcxr.png?width=1200)
AR/MR/VPS技術に専門特化したコンサルティングサービス
Magic Leap2 を使ったソリューションのご検討の方からのお問い合わせ、お待ちしております。
お問い合わせ先
https://1planet.co.jp/xrconsulting.html#op_form
OnePlanet Tech Magazine
Magic Leap 1、Magic Leap2 、スマホAR(Niantic Lightship ARDK、WebAR、VPSなど)といったAR技術全般をブログマガジンを連載しています。