Carry Object offset from MoCon Hand

Hello,

I am trying to implement free-carry of objects w/ a motion controlled hand, with some objects begin “equippable” or held in the hand at a relative offset location and rotation from the hand.

The hand has a carry origin scene component, and objects I pick up have an SC_Interactable component inside a carriable/collision volume, with the SC_Interactable being at an offset location and rotation to indicate the relative location/rotation I want the carriable object/volume from the hand…

When carried, the object’s collision volume should be constantly moved to a world location/rotation such that the offset SC_Interactable lines up with the motion controlled hand’s carry origin’s world location/rotation. I have giant red and pink arrows attached to the hand and SC_Interactable origins which should overlap eachother perfectly, but this is not happening, and the carried volume is not oriented the way I expect in the hand.

What I am doing is …

When object is picked up by hand, I take the delta between the world location and rotator of the carriable volume component and its child SC_Interactable scene component and store them. You can see these two scene components origins/rotations in screenshots:


Then, every tick, I set the world location and rotation of the carriable volume to the world location and rotation of the hand carry origin, combined with the stored location and rotator deltas.

When I log the names of the interactor and the carriable volume, and the offset values, the offset stored for the rotation deltas is:
P=25.312501 Y=180 R=180

In editor, the actual scene SC_Interactable has a relative rotation of:
X:0, Y:-25.312501, Z: 0, inside of the carry volume which has relative loc\rotation of 0,0,0 from the actor root.

Not sure if my math\logic is completely wrong somewhere, or I’m just misunderstanding some aspect of Unreal Engine. Blueprints for reference:

Storing the offsets:

Moving\Rotating the object to offset from hand: