Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OpenXR and XR Hands subsystem doesn't provide any data in Play Mode #1608

Closed
camnewnham opened this issue May 2, 2024 · 3 comments
Closed

Comments

@camnewnham
Copy link

camnewnham commented May 2, 2024

Continued from #1600

I'd like to use the OpenXR hands subsystem instead of the Leap XRHands subsystem but I haven't been able to get it to work.

I've followed the linked steps here verbatim on a few occasions but I don't get any hands detected in play mode. Unity 2022.3.25f1, XR Hands 1.3.0, XRI 2.5.4, XR Plugin Management 4.4.0, Ultraleap Tracking 6.15.0, Windows 10. Running the "HandsDemoScene" as suggested. "OpenXR Support" is checked in the Ultraleap Control Panel, too.

Everything works as expected using the Leap XRHands Subsystem instead of OpenXR.

The console warns:

Unable to update InputActions, no Subsystem available.
UnityEngine.Debug:LogWarning (object)
Leap.Unity.InputActions.XRHandsInputActionUpdater:Startup () (at ./Library/PackageCache/com.ultraleap.tracking@6.15.0/Core/Runtime/Scripts/XRHandsSubsystem/XRHandsInputActionUpdater.cs:58)

Hand Tracking Subsystem not found or not running, can't subscribe to hand tracking status. Enable that feature in the OpenXR project settings and ensure OpenXR is enabled as the plug-in provider. This component will reattempt getting a reference to the subsystem each frame.
UnityEngine.XR.Interaction.Toolkit.Inputs.XRInputModalityManager:Update () (at ./Library/PackageCache/com.unity.xr.interaction.toolkit@2.5.4/Runtime/Inputs/XRInputModalityManager.cs:297)

image
image
image


Are there any other steps required / prerequisites? Do I need to install Windows Mixed Reality Portal or something else?

@camnewnham camnewnham changed the title OpenXR and XR Hands subsystem doesn't provide any data OpenXR and XR Hands subsystem doesn't provide any data in Play Mode May 2, 2024
@MattGrayUL
Copy link
Contributor

MattGrayUL commented May 13, 2024

I haven't seen this issue myself before - but have not tried to use Unity's XRHands Subsystem without a HMD connected - perhaps they don't spin it up if there is no HMD, as they may assume that it is impossible to get hands via OpenXR in that case?

I will try to carve some time out to test this myself, but if you also have a HMD, you could try having it connected and working and see if that resolves it? - if that is the case, we may need to contact Unity to see if we can optionally still enable the subsystem

EDIT: I have tested with a HMD disconnected and get the same result as you. With a HMD connected, it works fine - so it would seem Unity are not booting up OpenXR subsystems if there is not a HMD connected - I think this may go further than just XRHands too - as in, it may not connect to the OpenXR Runtime if no HMD is connected

@MattGrayUL
Copy link
Contributor

So, it seems like Unity won't use OpenXR if there is no HMD connected. And in the current state of OpenXR, that's a safe assumption for them to make.

As a follow-up I have a feeling that if this did work - your next question would be "Can we get the OpenXR hands to be in Desktop mode?" because currently all OpenXR hand data is going to be based on a head mounted device (Ultraleap or otherwise) - and we don't currently offer non-XR hand data via OpenXR

So in conclusion, I think you may have to use our Leap XRHands subsystem when developing, and then toggle it off when building for HMDs.

You can automate that as it is a ScriptableObject, so you can edit the file to change from leapSubsystemEnabled: 1 to leapSubsystemEnabled: 0 if necessary

@camnewnham
Copy link
Author

Thanks for looking into this Matt. All good - I just wanted to make sure I wasn't missing something! It might be worth having a mention of this in the docs.
I'll continue to use the Leap Subsystem in editor :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants