UnityでSteamVRPluginとTobiiXRSDKを使ったプロジェクト開発でのトラブルシューティング【備忘録】
ViveProEyeの視線トラッキングを使ったUnityアプリケーションの開発をするためにはViveEyeTrackingSDK(SRanipal)が必要である
Tobii社はこれをいい感じに使えるようにするためにTobiiXRSDKを開発した
VRアプリケーション開発でよく用いられるSteamVRPluginを使用したプロジェクトで
これを使用した際にいくつかの問題が発生したので、その内容と解決方法を残しておく
新しい問題が発生したら随時更新予定
開発環境
- Unity 2019.4.4f1
- SteamVRPlugin 2.6.1 (sdk 1.13.10)
- ViveEyeTrackingSDK(SRanipal) v1.3.1.0
- TobiiXRSDK v2.0.0.174
動作プロジェクトの構築
おおまかには以下のリンク先の手順に沿って作成した
https://vr.tobii.com/sdk/develop/unity/getting-started/vive-pro-eye/
最小設計としてはシーン内に
- [CameraRig] (SteamVRPluginに同封されたPrefab)
- TobiiXR Initializer (TobiiXRSDKに同封されたPrefab)
があれば動く
ViveEyeTrackingSDKに含まれるSRanipal_Eye_Framework.prefab
はなくても動くようである
発生した内容と解決策
Valve.VRに既に存在するみたいなエラーが発生する
openvr_api.csというファイルがSteamVRPluginとTobiiXRSDKの両方に存在するため発生している
HMD Specific Information - Cognitive3D - Documentation
上記リンク先の内容に従って片方のopenvr_api.csを削除すると発生しなくなった
TobiiXRSDK v2.0.0.174ではAssets/Examples/Utilities/Controller/Plugins
の中にopenvr_api.csがあったため、これを削除した
DllNotFoundException: openvr_apiというエラーが発生する
SteamVR Pluginお役立ち情報です。
— あきら☎︎🗾@VMC0.47r1/f1❗ (@sh_akira) 2018年12月30日
Unity 2018.3.0f2にしたらDllNotFoundException: openvr_apiが出た場合、WindowメニューのPackage ManagerからOpenVRをインストールして、Unityを再起動すると直ります。
上記ツイートにあるようにUnityのPackageManagerでOpenVR DesktopというものをインストールしてUnityを再起動すると発生しなくなった
これ自体は本環境に関わらずUnityでのVRアプリケーション開発において発生する可能性がある
アイトラッキングがうまくいかない
- 起動時にActiveなカメラが複数あると別のものを参照しているのかうまくいかないことが多い
- TobiiXR.FocusedObjectsの配列に入るものはIGazeFocusableを持つコンポーネントがついたものだけ