XREAL Air 2 Ultra × Unity 6 で Hand Menu を実装する(SDK 3.1.0)
はじめに
ARアプリでは、常に視界を塞ぐUIよりも、「自分の手元を見た時だけ現れるメニュー」の方が没入感を削ぎません。
XRI 3.0.10 のサンプルに含まれる HandMenu 機能を使い、手首の内側に追従するメニューボタンを実装しました。このボタンから以前作成した Captureパネル(録画・スクショ) を呼び出せるようにします。
動作確認環境
- Unity: 6000.0.70f1
- XREAL SDK: 3.1.0
- XR Interaction Toolkit: 3.0.10
- Device: XREAL Air 2 Ultra + Beam Pro
1. セットアップ手順
プレハブの配置
-
Assets/Samples/XR Interaction Toolkit/3.0.10/Hands Interaction Demo/Prefabs/UI/ButtonHandMenu.prefabを Hierarchy のXR Origin Hands (XR Rig)/Camera Offset直下に配置します
階層構造と役割
ButtonHandMenu プレハブの下には主に2つの要素があり、それぞれ追従設定がなされています。
-
Hand Menu Wrist Button
-
HandMenuスクリプトがアタッチされており、Menuボタン自体の追従 を制御します - この下の
Follow GameObject直下にボタン本体が入っています
-
-
Hand Menu ScrollView
-
HandMenuスクリプトがアタッチされており、ボタンによって表示されるオブジェクトの追従 を制御します
-
表示オブジェクト(Captureパネル)の組み込み
表示させたいオブジェクトをハンドメニューに追加するには、正しい階層に置く必要があります
-
配置場所:
Hand Menu ScrollView>Follow GameObject直下に配置します
2. HandMenu スクリプトの解説
アタッチされている HandMenu.cs は、手の向きや視線を計算してメニューの表示・非表示を制御しています。主要な設定項目は以下の通りです。
| 設定項目 | 内容・詳細 |
|---|---|
| Menu Handedness | メニューをどちらの手に追従させるか(Left/Right/Either)を選択します。 |
| Hand Menu Up Direction | メニューの「上」を何に合わせるか(World/Transform/Camera)を決定します。 |
| Gaze Alignment | Hide Menu When Gaze Diverges: 視線がメニューから外れた時に自動で隠す機能です。 |
| Hand Menu UI Game Object | 追従させるオブジェクトをアタッチします。 |
設定のポイント
Hand Menu Up DirectionはデフォルトでTransformで設定されており、Menu HandednessはEitherとなっている。
3. 実際に動かしてみた感想
場所を問わない利便性
手首に追従してくれるため、空間のどこにいても瞬時にメニューを呼び出せます。特に今回のような「録画したい!」と思った瞬間に手元で操作できるのは、非常に重宝します。
違和感のない操作性
手の動きに対する追従が非常にスムーズで、遅延を感じません。また、指先での押し込み(Poke操作)も判定が正確で、実体のあるボタンを触っているような感覚で操作できました。
応用
左右独立したHand Menuも解説しているので、ぜひ参考にしてください。
参照記事:Hand Menuを使いこなす
