企業向けにVRの企画や開発を行う会社であるVRMADAは、2022年7月7日、Unity向けのアバター表現ツールである「UltimateXR」を公開しました。
UltimateXRとは?
主に手を使った動作(掴む、何かを操作する)や、全身のアバター表現に特化したツールキットです。
手の握り具合の表現などを細かく設定することが可能です。
コントローラーを使用する際に手の動きはいくつかのパターンの中から選ぶ単一なものになってしまいがちですが、UltimateXRを使用することによって、様々な表現が可能となります。
また、オープンソース(MITライセンス)で提供されており、Meta Quest2やPico Neo3をはじめとした様々なデバイスに対応しています。
実際に使ってみよう!
環境構築
記事執筆時点でのSDKバージョンは0.82(Githubまたは公式サイトからダウンロード)、推奨のunityバージョンは2021.2以降、LTSバージョンがより望ましいとしています。
0.81ではAndroidビルド時にエラーが発生するため、0.82以降を使うことをお勧めします。
また、本記事ではMetaQuest2を使用します。
プロジェクト作成時には3D(URP)を選択します。
BuildSettingsより、プラットフォームをAndroidに変更します。
次に、UltimateXRのUnityパッケージをインストールします。容量が約670MBと多く、インストールに時間がかかるため注意が必要です。
インストールが終わった後、Oculus Integrationアセットストアから入手し、インストールを行いましょう。
Oculus>toolsよりCreate store-compatible AndroidManifest.xmlをクリックします。
次にProject Settingsでビルドに関する設定を行います。
Project Settings>Playerへ移動し、下記の設定を行います。
・Auto Graphics APIのチェックをはずして、Graphics APIsのOpenGLES2を削除する
・Script BackendをIL2CPPにする。
・Target ArchitectureのARM64のみにする。
・ AndroidのターゲットAPIレベルを29にする。
最後にXR Plugin Managementへ移動し、Oculusを有効化します。
これで設定は完了です!
サンプルプロジェクト
サンプルプロジェクトはUltimateXR/Examples/Fullsceneに格納されています。
ビルドして体験してみましょう!(ビルドシーンに設定するのを忘れずに!)
※下記のような文章のエラーが出た際はこちらを参考に「AndroidPlayer」直下に「Tools」フォルダを作成し、中にAndroidPlayer>SDK>cmdline-tools>2.1内のものをコピーすることで解消しました。(フォルダの参照が異なっているために生じるエラーと思われます。)
Failed to find (中略)/2021.3.6f1/Editor/Data/PlaybackEngines/AndroidPlayer/Tools\GradleTemplates\mainTemplate.gradle
サンプルシーンでは4つの部屋に分かれており、様々なものを持つ、銃を撃つ、ピンを抜くなどの行動ができます。それぞれの形に合わせて手の向きや開き方が変化し、より自然な動きとなっているのを体験できます。
まだ制作途中の部屋もあるようで、全ての部屋で体験ができるわけではない様でした。
まとめ
コントローラーを使用した手の動きに関しては、少数のパターンしか利用できないものがほとんどです。UltimateXRを使用することでより滑らかに、オブジェクトや行動に合わせた手の動きを実現することができるため、VRの体験を底上げしてくれるものとなるでしょう。