見出し画像

Magic Leap2でVuforia Area Target

※この記事は2023年9月11日に弊社運営の技術情報サイト「ギャップロ」に掲載した記事です。

はじめに

MagicLeap2で利用できるVPS(Visual Positioning System)の1つ、Vuforia Area Targetを試してみました。

目次


検証環境

ソフトウェア

  • Unity 2022.2.2f1

  • Vuforia Engine 10.15.4

  • Magic Leap SDK 1.7.0

ハードウェア

  • Magic Leap2

  • iPad Pro(Gen 2)

    • マップのスキャンのためにLiDAR搭載したARKit対応デバイスが必要

公式ドキュメント

Vuforia Area Targetsとは

Vuforia Area TargetはVuforiaの機能の1つで、特定の空間や領域を認識し、その上にARコンテンツを追加する機能です。
事前にLiDARなどで空間を3Dスキャンし、空間内の任意の位置でのオブジェクトの配置が可能になります。

導入手順

プロジェクト設定や必要なSDKが揃っているので、AssetStoreのサンプルプロジェクトを使用します。
ただし、このサンプルにArea Targetsのサンプルは含まれていないため検証用のシーンは自分で作成します。

  1. AssetStoreからMagicLeap2向けのVuforiaサンプルプロジェクトをインポート

  2. VuforiaのLicense Keyをプロジェクトへ追加

  3. Vuforia Creator Appで作成したArea Targetのunitypackageをプロジェクトへインポート

  4. 新規シーン作成

  5. Packages/Magic Leap SDK/Runtime/Tools/Prefabs/Main Camera.prefabをシーンへ追加し、以下のコンポーネントを追加

    • Vuforia Behaviour

    • DefaultInitializationErrorHandler

  6. HierarchyでVuforia Engine/AreaTarget/AreaTargetを追加

  7. AreaTargetBehaviourのInspectorで、Databaseを使用したいAreaTargetに設定

動作確認

次のようなArea Targetを作成して実機で動作確認しました。
左上の板ポリが実際のオブジェとどれだけずれがあるかを見てみます。(細長いCubeは目標との距離の目安のためで長さが10mです。)

実機での動作

  • 精度

    • 数cm程度の誤差で位置合わせが成功

  • 認識時間

    • 距離が約5m以内なら1秒程度で安定して認識

    • 距離が7,8m程度まで離れると認識に10秒以上かかる

★クリックして動画を再生★
★クリックして動画を再生★

1つのArea Targetがとれる広さ

Area TargetのスキャンにはiPad ProのLiDARを使用しており、スキャンできる上限の広さがあるようです。
次のように、上限の広さまで1つのArea Targetをスキャンしました。 その後、PolycamというLiDARスキャン用アプリで同じエリアをスキャンし、Area Target範囲のおおよその面積を計測したところ、約400m^2でした。

複数のArea Targetsを使用する

Immersalでは隣り合った異なるマップを結合することができましたが、Vuforia Area Targetではできなそうです。
Vuforiaのドキュメントでは、次のように複数のArea Targetをpositionとrotationを調整した上で、最も信頼できるポーズのみを追跡する方法が紹介されていました。

奥の通路と手前の通路で分割したマップで試してみます。

最後に

Vuforia Area Targetのマップ作成にはiOSのLiDARを使用するため、遠景マップの作成は難しいですが近距離なら高品質なマップ作成が比較的簡単にできます。
また、MagicLeap2もサポートしており、導入が手軽にできました。
本格的に使用するならVuforiaのライセンス契約が必要な点は気にする必要がありますが、MagicLeap2で使えるVPSの1つとしてとても有用そうです。

この記事が気に入ったらサポートをしてみませんか?