Magic Leap2 の 平面検出
はじめに
この記事は、Magic Leap2 Advent Calendar 2022 の16日目です。
Magic Leap2 の 平面検出 の実装方法について説明します。
OnePlanet XR について
このブログ記事は OnePlanet XR によるものです。
OnePlanet XR は、AR/MR/VPS技術に専門特化したコンサルティングサービスです。豊富な実績を元に、AR/MR技術を活用した新たな事業の立ち上げ支援や、社内業務のデジタル化/DX推進など、貴社の必要とするイノベーションを実現いたします。
ご相談から受け付けております。ご興味ございましたらお問い合わせください。
Magic Leap2 の 平面検出
壁、天井、床、不明の平面を色分けして表示するアプリケーションを作成します。
開発環境 / 動作環境
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)
ヒエラルキー
シーンを新規作成します。Main Cameraは削除し、XR Rigのプレファブをヒエラルキーに配置します。
AR Default Plane
ヒエラルキー上で右クリックでメニューを表示します。メニューの XR → AR Default Plane を選択し、AR Default Planeを作成します。
AR Default Plane のマテリアル作成
AR Default Plane の マテリアルを作成します。
AR Default Plane のマテリアルを設定
AR Default Plane に 作成したマテリアルを設定します。
AR Default Plane のスクリプト作成
AR Default Plane というスクリプトを作成し、コンポーネントとして追加します。
スクリプトは以下になります。
using UnityEngine;
using UnityEngine.XR.ARFoundation;
using UnityEngine.XR.ARSubsystems;
public class ARPlaneExample : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
ARPlane plane = GetComponent<ARPlane>();
Color color = Color.white;
switch (plane.classification)
{
case PlaneClassification.Floor:
color = Color.green;
break;
case PlaneClassification.Ceiling:
color = Color.blue;
break;
case PlaneClassification.Wall:
color = Color.red;
break;
}
GetComponent<MeshRenderer>().material.color = color;
}
}
AR Default Plane プレハブ化
AR Default Planeをプレハブにします。(ヒエラルキーにあるAR Default Planeは削除します。)
AR Default Plane プレハブを AR Plane Manager に設定
実行
部屋の天井、壁、床が色分けされて平面として検出されます。
OnePlanet XR
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技術全般をブログマガジンを連載しています。