From 0c4ecffc1869402cef03b04a9ca96469503958ff Mon Sep 17 00:00:00 2001 From: Blazer Silving Date: Sat, 4 Jan 2025 04:40:58 -0600 Subject: [PATCH 1/2] More bone rotation cases --- common.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/common.py b/common.py index 3987db2..821fcf1 100644 --- a/common.py +++ b/common.py @@ -96,6 +96,10 @@ def setKeyframesFromBones(context, arm_object, new_marker): if bone.rotation_mode == "XYZ": rot_mode = "rotation_euler" + elif bone.rotation_mode == "XZY": + rot_mode = "rotation_euler" + elif bone.rotation_mode == "YXZ": + rot_mode = "rotation_euler" elif bone.rotation_mode == "YZX": rot_mode = "rotation_euler" elif bone.rotation_mode == "ZXY": @@ -164,6 +168,10 @@ def setBonesfromKeyframes(context, arm_object, active_marker): if bone.rotation_mode == "XYZ": rot_mode = "rotation_euler" + elif bone.rotation_mode == "XZY": + rot_mode = "rotation_euler" + elif bone.rotation_mode == "YXZ": + rot_mode = "rotation_euler" elif bone.rotation_mode == "YZX": rot_mode = "rotation_euler" elif bone.rotation_mode == "ZXY": From 486b23b378d757eaaaa2845f3cb05ca77718a4db Mon Sep 17 00:00:00 2001 From: Blazer Silving Date: Sun, 19 Jan 2025 01:17:12 -0600 Subject: [PATCH 2/2] Better map out rotation modes --- common.py | 34 +++------------------------------- 1 file changed, 3 insertions(+), 31 deletions(-) diff --git a/common.py b/common.py index 821fcf1..67b1498 100644 --- a/common.py +++ b/common.py @@ -94,15 +94,7 @@ def setKeyframesFromBones(context, arm_object, new_marker): if bone.bone.select or none_selected == True: bone_name = bone.name - if bone.rotation_mode == "XYZ": - rot_mode = "rotation_euler" - elif bone.rotation_mode == "XZY": - rot_mode = "rotation_euler" - elif bone.rotation_mode == "YXZ": - rot_mode = "rotation_euler" - elif bone.rotation_mode == "YZX": - rot_mode = "rotation_euler" - elif bone.rotation_mode == "ZXY": + if bone.rotation_mode in ("XYZ", "XZY", "YXZ", "YZX", "ZXY", "ZYX"): rot_mode = "rotation_euler" elif bone.rotation_mode == "QUATERNION": rot_mode = "rotation_quaternion" @@ -166,15 +158,7 @@ def setBonesfromKeyframes(context, arm_object, active_marker): if findKeyframe(context, bone, active_marker.frame) is None: continue - if bone.rotation_mode == "XYZ": - rot_mode = "rotation_euler" - elif bone.rotation_mode == "XZY": - rot_mode = "rotation_euler" - elif bone.rotation_mode == "YXZ": - rot_mode = "rotation_euler" - elif bone.rotation_mode == "YZX": - rot_mode = "rotation_euler" - elif bone.rotation_mode == "ZXY": + if bone.rotation_mode in ("XYZ", "XZY", "YXZ", "YZX", "ZXY", "ZYX"): rot_mode = "rotation_euler" elif bone.rotation_mode == "QUATERNION": rot_mode = "rotation_quaternion" @@ -199,21 +183,9 @@ def setBonesfromKeyframes(context, arm_object, active_marker): scl_z = findFcurve(context, bone_name, "scale", 2) or 1.0 bone.location = mathutils.Vector((loc_x, loc_y, loc_z)) - if bone.rotation_mode == "XYZ": + if rot_mode == "rotation_euler": bone.rotation_euler = mathutils.Euler( (rot_x, rot_y, rot_z)) - elif bone.rotation_mode == "YZX": - bone.rotation_euler = mathutils.Euler( - (rot_x, rot_y, rot_z)) - elif bone.rotation_mode == "ZXY": - bone.rotation_euler = mathutils.Euler( - (rot_z, rot_x, rot_y)) - elif bone.rotation_mode == "YXZ": - bone.rotation_euler = mathutils.Euler( - (rot_y, rot_x, rot_z)) - elif bone.rotation_mode == "XZY": - bone.rotation_euler = mathutils.Euler( - (rot_x, rot_z, rot_y)) elif rot_mode == "rotation_quaternion": bone.rotation_quaternion = mathutils.Quaternion( (rot_w, rot_x, rot_y, rot_z))