Is there a standard/best way of getting VR Hands (that are oriented correctly w/r/t the motion controllers)?

I built a small VR prototype starting with the 4.27 VR template, which has tracking for the controllers (I have Vive controllers so I see Vive controllers ingame).

I want to swap the controller models out for hands, and I’d like the hands to be oriented roughly correctly for the position and rotation my hands would probably be in given the position and rotation that the controllers are in, and I’d like that to be controller-agnostic (so, if you’ve got index or oculus controllers, I’d still like the hands to be oriented/positioned correctly).

Is there a standard/easy way to get VR hands that are oriented reasonably with respect to the controller position?

I found that the 4.26 VR Template had a hands demo, so I loaded that up, and while I do get hand models that track, they aren’t oriented correctly at all (the long axis of the hand - wrist to fingertips - ends up parallel to the long axis of the controller, whereas in reality it’s probably more like ~30 degrees off from perpendicular to the long axis of the controller, and offset in position down and back quite a bit.

I could trial and error a better attachment socket to make the hands look about right for my vive wands, but since I don’t have any other motion controllers (rift, index, etc.) I would have no way of dialing the hand positions for people with that hardware.

Found the answer - in case anybody is wondering, with OpenXR this is now taken care of: the GripPosition and GripRotation from the motion controllers should be the same with respect to hand position between any OpenXR-supported controllers. Also, GripPosition and GripRotation are apparently exactly the same as the actual position and rotation returned by the MotionController itself.

It’s mentioned in the OpenXR VT Template stream, starting at about 58 minutes in, and specifically here Exploring the OpenXR VR Template | Inside Unreal - YouTube

1 Like