mh141 Posted July 24, 2023 Share Posted July 24, 2023 I am developing a Unity application for PCVR for use with the Vive Focus 3 and accompanying Eye Tracker. In an attempt to follow the instructions here and here, I am using VBS through SteamVR and SRAnipal, into Unity with OpenXR Plugin. I've run into a few problems. First, the tutorial for facial and eye tracking is outdated. OpenXR Plugin no longer has a feature group for facial tracking, instead it has an interaction profile for eye gaze (or, at least my updated version does). Does anyone know if an updated tutorial is out there? Second, I want to use eye tracking for raycasts, not for controlling a model anyway, so the tutorial isn't really relevant. I am trying to use Unity's XR Interaction Toolkit and it's XR Gaze Interactor for this purpose. However, the data supplied to the input manager is not correct. After using the input debugger to investigate the values, I noted several issues. First, VBS/SteamVR is not supplying any values whatsoever for the input values OpenXR Eye Gaze pose/position and pose/Tracking State. Second, while there is a value supplied for pose/rotation, it is not correct. For example, when testing, if I look straight forward, it supplies a rotation of (180, 0, 0) in euler. The rotation value changes when I look in a different direction, it just doesn't change to the right value. I wasn't able to discern the pattern, it is not just flipped 180 degrees. I know the tracker is working correctly because when I select Vive Pro Eye in the SteamVR taskbar, the calibration and test scene work as expected. So the data is getting messed up somewhere between SteamVR and Unity OpenXR. Since there seems to be no current tutorial for using the updated scheme with the eye gaze interaction profile, I have no clue if anyone has made this work. Link to comment Share on other sites More sharing options...
mh141 Posted July 26, 2023 Author Share Posted July 26, 2023 Update: I was able to get the correct rotation value by writing a custom Input Processor which replaces the X euler value with -(x + 180). I'm not completely sure how this fixed the rotation but it does. Link to comment Share on other sites More sharing options...
mh141 Posted July 26, 2023 Author Share Posted July 26, 2023 Update 2: The accuracy is terrible after calibrating in Focus3 settings and in SteamVR. It goes in the general direction but not even close to accurately enough to make any reasonable interactions possible. I suspect this is related to the issue with the raw input data. Link to comment Share on other sites More sharing options...
David Cian Posted July 28, 2023 Share Posted July 28, 2023 Having exactly the same problems, but got nowhere as far as you... I want to draw a line representing the gaze. The tutorials are now not even reachable anymore, the webpages just throw an error, I have to rely on the Wayback Machine. I added the relevant parts of the script on the outdated tutorial, but the first problem I have is that the FacialManager is not instantiated anywhere in the tutorial. If I do instantiate it, the weightings do not change, ever, they stay at 0. Guess I'll have to go back to SRAnipal... Link to comment Share on other sites More sharing options...
David Cian Posted July 28, 2023 Share Posted July 28, 2023 The issue with the code from the online tutorial is that getting the Feature called `VIVE_FacialTracking_OpenXR_API` fails (`feature.IsEnabledAndInitialized` remains false). Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now