XREAL Air 2 Ultra × Unity 6 で Spatial Anchor を実装する
はじめに
XREAL Air 2 Ultra の空間認識能力を活かし、現実空間の特定の場所に仮想オブジェクトを固定・保存・復元できる「Spatial Anchor(空間アンカー)」機能を実装しました。
再起動してもオブジェクトが同じ場所に現れる、永続的なAR体験を構築する手順をまとめます。
動作確認環境
- Unity: 6000.0.70f1
- XREAL SDK: 3.1.0
- AR Foundation: 6.0.6
- XR Interaction Toolkit: 3.0.10
- Device: XREAL Air 2 Ultra + Beam Pro
1. 主な機能
右手首に追従するハンドメニュー(Hand Menu)から、直感的にアンカーの管理を行えるようにしています。
| 機能 | 内容 |
|---|---|
| Right Hand Menu | 右手のひらを自分に向けると出現する、手首追従型のメニュー |
| New (Create) | 現在の視線の 1m 先に新しい空間アンカーを生成 |
| Load All | デバイスに保存されているすべてのアンカーを現在の空間に復元 |
| Erase All | 永続化されたすべてのアンカーデータを削除 |
| Map Quality Indicator | アンカー設置時、周囲のスキャン精度を視覚化するリングガイド |
2. シーン構築と設定
コンポーネントの設定
-
XR OriginにAR Anchor Managerをアタッチします - シーンに
AR Session、MapQualityIndeicator、空のオブジェクト(Anchhors)を配置 -
AnchorにAnchorsスクリプトをアタッチ - XREAL SDK のサンプル(
AR Features/Anchors/Anchors.unity)を参考に、Canvasを配置し、インスペクターの各項目を設定します
Hand Tracking の設定
ハンドトラッキングを利用するには、SDKの導入に加えて専用のセットアップが必要です。
具体的な設定手順については、以下の記事をあらかじめ参照して完了させておいてください。
3. 操作手順:アンカーの作成と保存
- メニュー表示: 右手のひらを自分に向けると、手首付近にボタンが出現します
- 新規作成: 「New」ボタンを押すと 1m 前方にアンカーが生成されます
- マッピング(重要): アンカーの周囲にリング状の白いバーが表示されます。アンカーを中心に、多方向から覗き込むように周囲を見渡してください
- 精度の向上: バーが緑色(Good)に変わることで、アンカーの安定性が向上し、自動的にデバイスへ保存されます
4. 実際に使ってみた感想
マッピングと保存の挙動
アンカーの精度を高めるために多方向から覗き込む作業が必要ですが、バーをすべて緑にしてもポップアップで「失敗(Failure)」と表示されることがあります。 しかし、実際には内部で保存されていることが多く、「Load All」を実行すると正しく復元されるという挙動が見られました。
環境による制限
精度の高いアンカーを設置するには周囲のスキャンが不可欠なため、狭い部屋や、物が密集していて多角度から覗き込むことが難しい場所では、マッピングを完了させるのが少し大変だと感じました。
操作性の課題
視線の先にアンカーを置く操作自体はシンプルですが、意図した場所にピタッと置くには少し慣れが必要です。このあたりは UI/UX の改良の余地がありそうです。