ValveSoftware / steamvr_unity_plugin

SteamVR Unity Plugin - Documentation at: https://valvesoftware.github.io/steamvr_unity_plugin/
BSD 3-Clause "New" or "Revised" License
1.03k stars 256 forks source link

We need an OpenXR pluggin for index controllers or no new games will be made for the hardware! #1097

Closed Giantbean closed 1 year ago

Giantbean commented 1 year ago

OpenVR is depreciated in Unity and while Steam VR has been able to work in Unity with OpenXR it's not working in recent versions. Unity seems to have some sort of agreement with Meta and their support just says sorry we can't recreate your issue on the quest. This is obvious as the issue is the lack of finger tracking for the index in Kronos openXR.

Valve please, please, please make an openXR unity plug-in to bring back the index/knuckles controller input. I have to use new versions of Unity and OpenXR due to business requirements but this means I can no longer develop for index controllers; which is sad as they are the best controllers out there. Maybe play nice and send Kronos some code as they likely don't have anything for the PSVR2 either.

zite commented 1 year ago

Finger tracking with Index (and controllers through SteamVR) should be available with OpenXR through Unity's new XR Hands package or the Windows Mixed Reality feature set. https://docs.unity3d.com/Packages/com.unity.xr.hands@1.2/manual/index.html https://learn.microsoft.com/en-us/windows/mixed-reality/develop/unity/new-openxr-project-with-mrtk#download-and-install-the-mixed-reality-feature-tool

Giantbean commented 1 year ago

From what I have seen the new XR hands only work in the editor and Steam VR has been failing in 2022+ but I will give it yet another try.

Giantbean commented 1 year ago

@zite To be clear if I get index finger tracking with either of the links you shared working I don't need SteamVR asset installed in Unity at all?

zite commented 1 year ago

That's correct. Though there are features in OpenVR that OpenXR doesn't have yet. Controller render models and controller based finger tracking for all controllers being the main ones. In OpenVR with a oculus controller we attempt to approximate finger tracking on the controller. OpenXR only exposes (oculus) finger tracking when not using controllers.

Giantbean commented 1 year ago

When I spoke with reps from Khronos and Unity at a recent conference they said that they have no way of getting controller-based finger tracking without a plug-in from the controller manufacturer (VALVe). Is there any work being done between Valve and the Khronos Group to share controller models and controller-based tracking so that OpenXR can truly replace OpenVR or do we still need to use both (And older versions of Unity) if we want to have those features? (So far I prefer OpenVR but Unity won't support it) OpenXR needs industry leaders like yourself to help out.

Correction: Kronos said Unity had to implement it and Unity said VALVe had to implement it. Now you seem to be saying Unity has an implementation or Windows does but they are incomplete because Khronos OpenXR lacks the Controller render models and controller-based finger tracking for all controllers at its core. The links you gave both seem to be camera-based finger tracking not controller based however I will try again. Last time it only worked in the editor with the Index(Knuckles) and I will also try to get Windows mixed reality feature group working but Im not optimistic based on what I have read over the weekend. They seem to only handle the camera-based which is why Im asking for a controller based. Otherwise, I have to hang up the Index controllers and stop recommending them to VR training clients.

zite commented 1 year ago

Sorry about the delay, fortunately those are pretty outdated responses. Hand tracking via OpenXR has worked for at least a year now. Both unity and microsoft have packages to support OpenXR hand tracking data, which index controllers provide. Unity: https://docs.unity3d.com/Packages/com.unity.xr.hands@1.3/manual/project-setup/install-xrhands.html Microsoft: https://learn.microsoft.com/en-us/windows/mixed-reality/mrtk-unity/mrtk3-input/packages/input/hand-tracking