diff --git a/rigify/rigs/limbs/limb_rigs.py b/rigify/rigs/limbs/limb_rigs.py index c0748055ef1d58ad23a576209c135c3e5ce01adb..1cf1d8462ca23a0ea74c8d0bcec056bec9b507a8 100644 --- a/rigify/rigs/limbs/limb_rigs.py +++ b/rigify/rigs/limbs/limb_rigs.py @@ -817,14 +817,12 @@ class BaseLimbRig(BaseRig): prev_tweak, next_tweak, fac = self.get_tweak_blend(i, entry) # Apply the final roll resulting from mixing tweaks to rest pose - prev_rot = self.get_bone(prev_tweak).matrix.to_quaternion() - next_rot = self.get_bone(next_tweak).matrix.to_quaternion() - rot = (prev_rot * (1-fac) + next_rot * fac).normalized() + prev_mat = self.get_bone(prev_tweak).matrix + next_mat = self.get_bone(next_tweak).matrix + rot_mat = prev_mat.lerp(next_mat, fac) bone = self.get_bone(tweak) - bone_rot = bone.matrix.to_quaternion() - - bone.roll += (bone_rot.inverted() @ rot).to_swing_twist('Y')[1] + bone.roll += (bone.matrix.inverted() @ rot_mat).to_quaternion().to_swing_twist('Y')[1] @stage.rig_bones def rig_tweak_mch_chain(self):