はじめに
XREAL Air2 Ultra & Beam ProでのMRアプリ開発について解説します。
PICO4/4U、Vive Focus Vision、Meta Quest、Apple Vision Pro に続いての記事になります。
XREAL SDKは3.0からUnityの XR subsystem を活用する形になりました。
開発者は以下の機能を通してインタラクションやAR機能を利用できます。
- XR Interaction Toolkit
- AR Foundation
開発環境
- Unity 6000.0.48f1
- XREAL SDK for Unity 3.0.0
- XR Interaction Toolkit 3.2.0
XR Interaction Toolkitのセットアップまで
こちらの記事に従ってXR Interaction Toolkitをセットアップしてください。
XREAL SDK for Unityインストール
SDKダウンロードページから Downloadボタンを押してSDKをダウンロードします。
https://developer.xreal.com/download
Unity Package ManagerでSDKをインポートします。
install package from tarball..を選択し、ダウンロードしたcom.xreal.xr.tar.gz ファイルを選択してください。
Projectをセットアップする
公式ページに従ってUnity Projectをセットアップします。
Project Settingsにて、以下の通り設定します。
設定 | 値 |
---|---|
Player Settings > Resolution and Presentation > Default Orientation | Portrait |
Player Settings > Other Settings > Auto Graphics API | false |
Player Settings > Other Settings > Graphics APIs | OpenGL ES3 |
Player Settings > Other Settings > Minimum API Level | Android 10.0 or higher |
Player Settings > Other Settings > Target API Level | Automatic (highest installed) |
Player Settings > Other Settings > Write Permission | External(SDCard) |
Project Settings > Quality > VSync Count | Don't Sync |
HandTrackingに対応する
Project Settings > XR Plug-in Mangement > XERAL > Initial Input Sourceで以下の中からHandsを選択します。
- None: 入力を使用しない
- Controller: スマートフォンまたはBeam Proをコントローラーとして使う
- Hands: ハンドトラッキング利用
- Controller And Hands: コントローラーとハンドトラッキング両対応
XREAL Air2 Ultra & Beam Proの場合、右がコントローラー、左がハンドトラッキングになりました。
ここまでの設定でビルドして実機で試すとハンドトラッキングが出来ます。
人差し指で選択も出来るのですが、Grabが機能しません。
ここからは公式に書かれていない内容です。
動作する事は確認していますが、正しい方法ではなかったり、機能として不十分な可能性がありますので、ご了承ください。
Input ActionsにXREAL用の設定を追加する
直接Grab対応
XR OriginのInput Action Managerが参照している、XRI Default Input Actions
を開きます。
Action MapsのXRI Left Interactionを選択し、ActionsのSelectに[+]ボタンでBindingを追加します。
Bindingは indexPress [LeftHand XREAL Hand Tracking]
InteractionsにPress
を追加します。
RayでのGrab対応
Action MapsのXRI Leftを選択し、ActionsのSelectに[+]ボタンでBindingを追加します。
Bindingは pointerPosition [LeftHand XREAL Hand Tracking]
です。
右手も同様に対応してください。
設定が終わったら、忘れずにSave Assetしましょう。
ビルドして実機で確認する
ビルドして動作確認しましょう。
PCとXREAL Beam ProをUSBケーブルで接続します。
Beam ProのUSBポートはグラスを接続する側なので、一度グラスを外す必要があります。 毎回グラスを外すのは面倒なので、adbをWiFi経由で利用するのがおすすめです。
Build & RunでBeam Proにインストールします。
アプリの起動はXREALグラスでの操作になります。
トラブルシューティング
アプリが起動しない
Support Multi Resume設定がONになっている場合、初回起動時に許可を求められます。
なかなかアプリが起動しないなと思ったら、Beam Proの画面を確認してください。
コンテンツの位置が高い時
XR OriginのTracking Origin ModeをFloorにしても、
XREALは他のXRデバイスのように床からの高さを自動で取得してくれません。
XR Origin > Camera OffsetのY座標を1.5などに調整して固定の高さで設定してください。
おわりに
お疲れ様でした。設定は以上になります。
XREALはApple Vision Proと同じくOpen XRに対応していません。
そのためかGrabについては独自の対応が必要でした。
この辺りも必要なものとそうでないものがある理由はよく分かっていないので調べてみたいと思います。
XR Interaction Toolkitに対応された事で、デバイスを通じて同様の実装方法でコンテンツを作ることが出来るメリットは大きいと思います。
今回解説したセットアップ済みUnity ProjectはGitHubで公開しますので、自由にご利用ください。
https://github.com/afjk/XREAL-MR-Unity-Template
- XREAL SDKはご自身でダウンロードしてインポートしていただく必要があります
- サンプルのHands Interaction Demoのインポートとセットアップは記事に沿ってご自身で設定してください
XRアプリ開発に少しでもお役に立てれば幸いです。
参考
追記
XREALにはMRTK3のサンプルもあります。
Unity Projectやビルド済みapkも公開・配布されていますので参考にしてみてください。
https://docs.xreal.com/MRTK3_Integration