OpenXRベースでQuestProのアイトラッキング機能を使いたいとき、XR Interaction Toolkitの拡張機能であるMeta Gaze Adapterを使うことができます。
さっそく試してみましょう。
2023/11/15現在、最新版のv2.5.2をもとに解説します。
手順
-
Oculus Integration アセットのv47.0以降をダウンロードします。
バージョン指定がありますが、Unity Asset Storeから最新版をダウンロードできるので、特に気にする必要はありません。
(2023/11/20追記)
先日公開されたOculus Integrationの後継版、Meta XR SDKでも同様に動作することが確認されました。ただし、工程3,4について、仕様変更によるポップアップの省略や、選択肢の名称変更が行われています。ポップアップが出てきた場合、Enableを選択してください。
-
必要なアセットを選択してインポートします。以下のアセット以外は不要です。
- Oculus\OculusProjectConfig.asset
- Oculus\VR\
-
インポートを始めるとポップアップが出てきます。Yesを選択し、OVRPluginを更新します。
-
引き続きポップアップが出てきます。Use OpenXRを選択します。キャンセルしてしまった場合、画面上のOculus > Tools > OVR Utilities Plugin > Set OVRPlugin to OpenXR.から有効にできます。
-
Package ManagerのXR Interaction Toolkitを開き、Samples内のMeta Gaze Adapterをインポートします。
-
Edit > Project Settings > XR Plug-in Management > Project ValidationのFix、もしくはPackage ManagerからOpenXR Pluginをv1.6.0以降に、Oculus XR Pluginをv3.2.2以降に、両方を更新・インストールします。
-
Scripting Defines Symbolsに"USE_INPUT_SYSTEM_POSE_CONTROL"を追加します。Scripting Defines Symbolsは、Edit > Project Settings > Player > Other Settings > Scripting Compilation > Scripting Defines Symbolsにあります。入力後、Applyをクリックします。
PC, Androidタブ両方でこれを行います。
"ArgumentException: Expected control 'pose' to be of type 'PoseControl' but is of type 'PoseControl' instead!"というエラーが消えれば正常です。
-
Edit > Project Settings > XR Plug-in ManagementからOculus Plug-in Providerを有効化します。
PC, Androidタブ両方でこれを行います。
-
Oculus Eye Gaze Input AdapterコンポーネントをScene内のGameObjectに追加します。
-
(Android環境のみ)
Assets\Oculus\OculusProjectConfigアセットをクリックし、InspectorからEye Tracking Supportを有効化します。
Quest Features > Generalから、Eye Tracking SupportをSupportedかRequiredに変更します。
基本的には、この手順を踏めばOpenXRベースでQuestProのアイトラッキングを使えるようになります!
(QuestProが手元にないため、後日参考動画を追加する予定、11/15)