はじめに
Pico Neo 3のSDKはUnity XR Pluginに準拠しているので、XR プラグインフレームワークに則ったUnityProjectを対応させる事ができます。
この記事では、XR Interactions ToolkitのサンプルをPico Neo 3で動作させる方法を説明します。
XR Interactions Toolkitについて
- Unity入力イベントから3DオブジェクトやUIとのインタラクションを可能にするフレームワークです。
- VRコントローラーでRayを飛ばしてGameObjectをGrabしたりuGUIのボタンやチェックボックスなどを操作したりといったインタラクションを実現できます。
https://docs.unity3d.com/Packages/com.unity.xr.interaction.toolkit@0.9/manual/index.html - こちらの動画を見れば出来る事は大体イメージ出来ると思います。
XR Interactions Toolkitのサンプルを入手する
-
まず、XR Interactions ToolkitのサンプルプロジェクトをGitHubから入手します。
https://github.com/Unity-Technologies/XR-Interaction-Toolkit-Examples
-
プロジェクトはUnity 2019.4.22f1ですが、今回はUnity2022.3.0f1で開きます。
-
前回の記事を参考に、Pico Unity XR SDKをUnityプロジェクトに取り込み、Unityプロジェクトの設定を行ってください。
サンプルプロジェクトを動かす
ビルドする
-
ビルドすると以下のエラーが出ます。メッセージの通り、Color SpaceをLinearに変更します。
BuildFailedException: Only Linear Color Space is supported when using OpenGLES. Please set Color Space to Linear in Player Settings, or switch to Vulkan.
以下、気になる点を調整します
カメラの高さを調整する
コントローラーモデルを変更する
-
前回の記事同様、PicoのControllerModelを左右のコントローラーのXR ControllerのModel Prefabにセットします。
Pico Neo 3で動かしてみた感想
ほとんどの機能(Grab/Teleport/スムーズ移動/uGUI操作)は問題なく動作します。
- 気になった点
- Grabしたオブジェクトを離すと吹っ飛びがち
- InputFieldへの入力は出来ない
- Androidのキーボードが立ち上がらないようにする方法は公式で説明されています。
- 無効にした上でVR用のキーボードを組み込むと良いでしょう。
https://developer.pico-interactive.com/docs/en/12058/231324/
- 無効にした上でVR用のキーボードを組み込むと良いでしょう。
ハマった点
- uGUIがクリック出来ない?
- 最初uGUIの操作が出来ず、原因が分からなかったのですが、Pico Neo 3のLab設定で120Hzリフレッシュモードを有効にしていたのが影響していたようです。
120Hzリフレッシュモードをオフにすると問題なくuGUIを操作できました。
- 最初uGUIの操作が出来ず、原因が分からなかったのですが、Pico Neo 3のLab設定で120Hzリフレッシュモードを有効にしていたのが影響していたようです。
おわりに
Pico Neo 3でUnity XR Interactions Toolkitが問題なく動作する事が分かりました。
他のVRデバイスと共通のプロジェクトを大きな変更なくPico Neo 3でも動作させられるのは良いですね。
次回はPico独自の機能について紹介したいと思います。