I’m adding a new first person weapon, and I want to be able to switch the attached weapon from the left hand to the right mid-animation.
I need to calculate what the meshes new rotation and translation will be, based on where the two hands are when I make the switch (so the transition is smooth).
However I just can’t seem to calculate the rotation correctly when doing the switch to the other socket.
simulated function SwitchFirearmToRightHand()
{
local vector leftHandLoc, rightHandLoc, newWeaponMeshTranslation;
local rotator leftHandRot, rightHandRot, handRotDiff;
UDKSkeletalMeshComponent(Mesh).GetSocketWorldLocationAndRotation('Left_hand_socket', leftHandLoc, leftHandRot);
UDKSkeletalMeshComponent(Mesh).GetSocketWorldLocationAndRotation('Right_hand_socket', rightHandLoc, rightHandRot);
newWeaponMeshTranslation = leftHandLoc - rightHandLoc;
handRotDiff = leftHandRot - rightHandRot;
Firearm.SetBase(self,, SkeletalMeshComponent(Mesh), 'Right_hand_socket');
Firearm.Mesh.SetTranslation(newWeaponMeshTranslation);
Firearm.Mesh.SetRotation(handRotDiff);
}