Forum Discussion
rmccloskey8
5 months agoExplorer
v77 Grab Hand Pose Translation/Rotation
Hi,
I'm using v77 of the Interaction SDK in Unreal 5.5.4 for hand tracking, and am having issues with a HandGrabPose not following the grab location/rotation when using rotation and location transformers.
I am using an object setup with multiple grabbable pieces. My blueprint hierarchy is essentially:
Mesh
-- GrabbableComponent1
-- SubMesh
---- GrabbableComponent2
------ HandGrabPose
GrabTransformer1 (for main mesh, with free transformer)
GrabTransformer2 (for sub mesh, with translate constraint applied)
The actual interactions of the meshes work without issue. I can grab the main mesh, and grab the submesh to move it with its translation applied. My HandGrabPose component has the following properties set:
The initial posing is fine and the hand will move to the intended pose position, but as the submesh is moved, the hand pose stays in the same location rather than following the submesh as I would like.
Looking at the source for hand poses, I can see that the hand pose override is set via a call in OculusInteractionPrebuilts/Rig/IsdkHandPoseRigModifier to HandMeshComponent->SetHandPoseOverride once the grab state changes to Selected, but as this is only called upon initial grab, the required RootPoseOffset does not get updated upon translation/rotation of the grabbed component. This is not an issue for components with only one grabbable where the entire object will be moved and thus the offset remains constant, but for my case with sub-objects the pose offset obviously does change but the hand remains in its initial location.
Has anyone run into a similar issue and could recommend a solution or workaround? I'd be happy to provide more information on my setup if needed.
Thanks!
2 Replies
Replies have been turned off for this discussion
- j_g_sampsonMeta Employee
Hey there, thanks for posting! Do you have a sample project with this setup that I could download to take a look at? Might be able to find a workaround for you until we officially support this better.
- rmccloskey8Explorer
Thanks for the reply!
I have a sample project available here: https://drive.google.com/file/d/1oB1zkEwhPM47qWPe_XHMIau1chR5RaO0/view?usp=sharing
The project has one scene with a single interactable object that is made up of two meshes: a Vive controller and a Touch controller (the Vive controller is the primary object).
Grabbing the Vive controller allows free movement and has an associated hand pose which follows movement as expected.
Then, grabbing the Touch controller (which is the submesh, and has a translate constraint on the Z axis), you can see the hand pose snaps into the initial location correctly, but as the object is moved while grabbing, the hand pose remains static.
Another quirk of the hand grab pose component I've noticed with this setup is that the snap position of the pose when using "Snap Pose to Object" is that the snap position appears to be relative to the primary grabbable. You'll notice that I have set the hand grab pose location to the same relative location offset as the submesh, and by resetting the location to (0,0,0), the pose snaps to the base mesh instead. Not a huge issue of course but worth flagging!
Again, appreciate the reply, thanks so much!
Quick Links
- Horizon Developer Support
- Quest User Forums
- Troubleshooting Forum for problems with a game or app
- Quest Support for problems with your device
Other Meta Support
Related Content
- 1 year ago