Dear , all,
Since the 4.27.2 and OpenXR support, I’ve had issues with my grasping hands curls, but so far I did not bother, I had many more project-levels bugs. Now I would like to investigate the issue, I suspect that it has to do with my former OpenVR configuration from UE 4.26 and below, but to be sure, I would like to describe my problem here.
Here are two snapshots from the VRE Master example (current master branch, retrieved today) with my UE 4.27.2 binary.
The first one shows how a regular hand is displayed.
The second one (same view angle) how a grasping hand with finger curls on is displayed.
The regular hand fingers are parallel to the interaction laser beam, as should be.
However, the grasping hand fingers (or physics hand, won’t change the result) with finger curls checked exhibit a larger angle with respect to the interaction laser beam. The open hand is visibly “too opened” and the visual result is even more visible with custom hands and gloves.
So my question is: should I still expect in VRE for 4.27.2 with OpenXR a hand with finger curls which still correctly opens at the right angle, or is the ‘crooked’ visual aspect of the open hand when finger curls are checked a known issue with the current OpenXR support?
My setup :
UE4.27.2 binary (no chaos, no source-based)
Steam VR beta 1.21.8 (but had the same issue with the main branch)
Valve Index controllers which work correctly (my current VRE-based 4.25/4.26 projects without OpenXR still show correct open grasping hand aspect when curls are on)
I’ve checked my configuration, but I cannot find an obvious place where my previous non-OpenXR configuration would interfere with the current OpenXR-based implementation.
Any thoughts or recommendations as where to investigate? Thanks
Its because openXR doesn’t have the concept of “curls”, instead of blending between a relaxed and closed pose its directly driving the transforms. I would like to estimate some curls eventually but don’t want to commit to iteration time on that until the oculus hand tracking is also functional so it can be universal.
The hand opens more than normal because the mesh for the manniquin hands are not bound exactly the same as the steamvr hands relative to each other, joint lengths, angle to the mesh, ect.
There is another avenue of using the relaxed pose as a base for additive, however then the end fully gripped pose is likely to have some clipping.
When you think about what they are estimating with the controllers, your hand fully off of the controller “should” be considered fully open like that, they have no other data to go off of, relaxed pose would normally be the hand slightly closed around the controller. The old curl method actually never fully allowed you to open your hand even.
The even more annoying part is that the oculus hand tracking is going to behave differently than the steamvr back end as well in openXR. So you can’t exactly just run the steamvr hands alone and expect that to function as expected.
Thanks for the explanation, at least I won’t look further for any local configuration mismatch.
There is another avenue of using the relaxed pose as a base for additive, however then the end fully gripped pose is likely to have some clipping.
That’s what I tried when noticing the issue, but as you say, the gripped pose then presented issues so I did not pursue the investigation.
I am not in a hurry, so I’ll wait for possible enhancement (in terms of fine-tuning the curls in a somewhat decently easy way) in that regard in the future.
Steam seemed to be of the opinion that engines were going to implement their own curls off of the openXR data, yet to see anything on that front from any major openXR implementation so far however.
Perhaps for the same reason I have been holding off, not every API being fully functional yet for that and needing a universal solution now.
Plugin fully ported to UE5 Preview 1, went straight from 4.27 instead of trying to port the EA branch over due to significant changes in core since then.
Be aware that Preview 1 has some massive constraint and physics bugs (in the engine itself) that are supposed to hopefully be ironed out for Preview2, I wouldn’t rely on constraints or handles or grips working well (or at all) until then.
I wanted to ask regarding UI widgets. I made a in-game menu, now I want it to pause, when I set the game state to pause, I cannot interact with the widget. I did set the widget and actor (in which the widget is) to tickable when paused, also set the widget interaction component to tickable when paused. I found quite a few posts on , but no solution, maybe you have an idea on how to solve , I am at dead end.
Hello , I am trying to implement the OpenInput module without the VRExpansion Plugin. When I add the Skeletal mesh Data (as explaned in the setup pdf) or I try to manually retrieve the ActionInput the game crashes.
If you enabled openXR and it is set to primary then you are running OpenXR not SteamVR as the active runtime in engine. OpenXR does not have the OpenVR functions that the module requires, it shouldn’t be crashing but I wouldn’t rule it out as I never tested that mix.
The OpenXRExpansion module has its own version of the hand animation setup, its even a little cleaner.
People don’t seem to like openXR having only hard transforms as much as OpenVRs curl system, so I intend on looking into approximating those curls soon. I just need to finish some UE5 stuff first.
I was confusing some concepts, thanks for clarifying. I managed to install the OperXRExpansion plugin and get the finger animations running but I have a small offset with the hand mesh (I used the same that is in the VRExpansion Template):
they won’t match the controller until the OpenXR extension is added that adds two tracking modes for the hands (controller and free). OpenXR by default doesn’t have a “gripping controller” pose for hand tracking and Steam had to go and create an extension to the extension that provides alternate base poses.
I’m not processing the openXR Hand tracking extension myself currently, the engine is and I am sampling the data it provides since it is already built in. The non controller pose is more standard anyway.
Skip root bone though should prevent it from reorienting like that and let you place it wherever you want.
Hello , I’m quite new to the VR Expansion Plugin. I’m currently trying to enable physics on the motion controllers. Checking the “Use Physics Grasping Hand” checkbox enables physics on my right hand motion controller but it doesn’t apply physics to my left hand motion controller. What am I doing wrong?
Hello,
I’m working on a VR project for 4 weeks now. Everything VR related was new to me.
2 weeks ago I found plugin and I’m trying to understand it step by step.
But now I’m stuck on the hand tracking. I can’t get it to work with plug in, in other projects it works perfect.
My left hand is how I’m holding my right hand in real life, but the orientation is completely wrong. Also the fingers don’t move.
From what I read here and on the website, should work.
I’m using the Oculus Quest 2.
The example for 4.27 is using openXR, and that is how oculus is passing in the openXR tracked hand transforms currently for some reason.
as for fingers moving, in 4.27 the openXR hand tracking extension is also not passing out the finger transforms. If you were using it through steamvr it would function.
Anything you tried before was likely oculus’s native API example they have.