ultraleap/UnityPlugin

ExtendedFingerDetector doesn’t work with OpenXR

Ronan-V opened this issue · 6 comments

Open XR Leap Provider and ExtendedFingerDetector.cs with the Unity plugin v5.11.0.

The issue is that ExtendedFingerDetector doesn't seem to work with the OpenXR provider while it does with the Leap XR Service Provider. All fingers are detected as extended whatever their position.

To reproduce

  1. Open the example scene Capsule Hands (OpenXR).
  2. Add Extended Finger Detector script to any hand Capsule Hand Left and/or Capsule Hand Right.
  3. Check detector's activation state with Gizmos or On Activate() and On Deactivate() events.

Unfortunately the OpenXRProvider does not support a few features that are provided through the LeapC interface.

The OpenXR Leap Provider does not currently support the following hand properties (and will return fixed values):
• Hand and Finger: FrameId
• Hand: Confidence
• Hand: GrabAngle
• Hand and Finger: Id & HandId will always return 0 and 1 for the left and right hand respectively
• Hand and Finger: TimeVisible
• Finger: IsExtended

I'll check these notes are in the documentation and what the plans are to support them.
Update: they are there.

@Ronan-V we will begin to address some of these missing capabilities using the OpenXR backend in the upcoming sprints. The reason why some features are absent is that they rely on data from the tracking service which is exposed by LeapC but is not exposed by the OpenXR APIs/layers/extensions. This data will have to be calculated within the plugin.

This is now being worked on

@Ronan-V this (and a few other OpenXR missing features) should be going through QA next week and will hopefully make it into 5.13.0.

• Hand and Finger: FrameId - YES
• Hand: Confidence - NO *
• Hand: GrabAngle - YES - but to be deprecated
• Hand: GrabStrength - YES
• Hand and Finger: Id & HandId will always return 0 and 1 for the left and right hand respectively - YES
• Hand and Finger: TimeVisible - YES
• Finger: IsExtended - YES

'*' - Hand confidence is not actually fully supported in Gemini (w.r.t Orion).

Closing as the above have now been released as part of OpenXR 1.0.0-pre-7 alongside Unity Plugin 5.13.0 🙂

https://github.com/ultraleap/UnityPlugin/releases