はじめに
本記事では、PICO4及びPICO4 UltraでのMRアプリ開発について以下のセットアップを説明します。
- カメラパススルー
- ハンドトラッキング
- オブジェクトとのインタラクション
開発環境
- Unity 6000.0.48f1
- OpenXR 1.4.1
- Pico Unity OpenXR SDK 1.4
- XR Interaction Toolkit 3.2.0
- AR Foundation 6.2.0
PICO公式ドキュメント
新規プロジェクトの作成
UnityHubのNew Projectを選択し、TemplateからUniversal 3Dを選択します。
新規作成後のセットアップ
私の場合、最初にプロジェクトを作成したらUnity Package Managerから不要なライブラリを消したりライブラリをアップデートして整理しています。Pico Unity OpenXR SDKのインストール
SDKは2種類から選択します
PICOアプリ開発で使えるSDKは *PICO Unity Integration SDK* と *Pico Unity OpenXR SDK* の2種類があります。https://developer.picoxr.com/ja/resources/#sdk
ここではPico Unity OpenXR SDKについて説明します。
PackageManagerより、Git URLを指定してインストール
Githubのリリースページから、最新版を指定してインストールします。現在は1.4.0が最新です。
https://github.com/Pico-Developer/PICO-Unity-OpenXR-SDK.git#release_1.4.0
インストール方法色々
Unity Package ManagerでのPackageインストール方法はGithub URLを指定する方法以外にも、tarball(tgzファイル)を指定する方法、packagesフォルダにpacakgeを解凍して配置する方法などがあります。お好みの方法でインストールしてください。Projectのセットアップ
Project Settings > XR Plug-in Management > Androidタブを選択し、
OpenXR>PICO XR feature groupにチェックを入れます。
Project VaridationでFix Allを選択します。
シンプルなVRシーンを試す
Cubeが1つだけ表示されるシンプルなシーンを作成しましょう。
シーンを作成し、Hierarchyにて、右クリック>XR>Convert Main Camera To XR Rigを選択。
CameraがXR Rigに変換されます。
デフォルトでは頭の位置が一定の高さになる設定になっています。
PICO4は床からの高さを自動で認識できるので、Requested Tracking ModeをFloorに変更しましょう。
何もないと寂しいので、Cubeをひとつ、目の前に置いて、セットアップ完了です。
ビルドしてPICO4実機で確認する
この時点で一度ビルドしてPICO4の実機で動作を確認します。
セットアップが正常にできていれば、VR空間を動き回れるようになっています。
Player設定から、アプリの内容を設定します。
Company Name、Product Nameをお好みで設定してください。
Package Nameは必要に応じてOverride Default Package Nameを設定してください。
ここでビルドすると、 Unsupported Input Handringのポップアップが表示される場合があります。
これは、新旧Input System両方利用する設定になっている場合にパフォーマンスが低下する事を警告してます。
ここでは新Input Systemを使いたいので、Noを選択して戻り、Project Settings > Player > Othersの Active Input HandringをBothからInput System Package(New)を選択します。
選択するとプロジェクトの再起動を求められますので Apply ボタンで再起動します。
いよいよビルドです。
PlatformがAndroidになっていない場合はSwitch PaltformでAndroidにしてください。
Buildボタンを押します。
私の環境では次のようなエラーが出ました。使用しているライブラリの要求でAndroid SDK Version 26以上に上げる必要があります。
ここではMinimum API Levelを29に上げました。
実機をPCとUSBで繋いでBuild & Runします。
成功すればVR空間でCubeが浮いているのが見えます。
XR Interaction Toolkitをインストールする
Cubeを眺めるだけではあまり楽しくありません。
XR Interaction Toolkitをインストールしてオブジェクトとインタラクションできるようにしましょう。
Pacakge Manager > 左メニュー3段目のUnity Registry を選択し、検索欄でXR Interaction Toolkitと入力します。
最新バージョンをインストールしたいので、Version HistoryからOther version を選択。LatestをInstallします。現時点では3.2.0が最新です。
続いて、Samplesタブから Hands Interaction Demoをインポートします。
エラーが出るのでProject VaridationでFix All してください。
Samples > XR Interaction Toolkit > 3.2.0 > Hands Interaction Demo > Hands Interaction Demoシーンを開きます。
XR Origin (XR Rig)のXR Origin > Trackign Origin ModeをFloorに設定します。
Build ProfilesでScene Listを開き、先ほどのシーンは無効にしてHands Interaction Demoを追加しビルドします。
Passthroughに対応する
いよいよMRに対応します。パススルーを有効にして背景に現実が表示されるようにしましょう。
まず、ARFoundationをインストールします。
ここでは最新版の6.2.0をインストールします。
Project Settings > XR Plug-in Management > PICO XRにて
注意!OpenXR Passthroughの横に歯車マークが出ていない場合、ARFoundationがインストールされているか確認してください。
Main Cameraの設定
Environment > Background TypeをSkyboxからSolid Colorに変更
BackgroundのColorを0x00000000に変更
これで背景がSkyboxの代わりに現実が表示されるようになります。
Hand Trackingに対応する
最後に、Handtrackingに対応しましょう。
Project Settings > XR Plug-in Management > OpenXRから、
- Enabled Interaction Profile [+]ボタンを開き、
- Hand Interaction Profileを追加
- PICO Supportの右の歯車ボタンを押しPICO Supportダイアログを開く
- Feature Settingsから、 Hand Trackingにチェック
Hand Tracking SupportからControllers And Hands を選択
High Frequency Tracking(60HZ)のチェックはお好みで。
以上で、ビルドするとコントローラーを持っている時はコントローラーで、コントローラーを置いた状態だとハンドトラッキングでインタラクションが出来るようになります。
おわりに
お疲れ様でした。解説は以上です。
XRアプリ開発での開発環境構築は設定項目が多く、ハマると時によっては数日時間を費やすことも
ありえます。
(私自身、今回何箇所かつまづきました)
今回解説したセットアップ済みUnity ProjectはGitHubで公開しますので、自由にご利用ください。
https://github.com/afjk/PICO4-MR-Unity-Template
※ サンプルのHands Interaction Demoのインポートとセットアップは記事に沿ってご自身で設定してください。
XRアプリ開発に少しでもお役に立てれば幸いです。
参考