From 1f0ce6bf475ed0d26b28372999ce6b8ea2fe92fd Mon Sep 17 00:00:00 2001 From: Joji Date: Fri, 17 Nov 2023 18:50:34 -0800 Subject: [PATCH] Made a metadata for rotateOrder --- release/scripts/mgear/core/anim_utils.py | 7 +++++++ release/scripts/mgear/core/attribute.py | 3 +++ release/scripts/mgear/shifter/component/__init__.py | 8 ++++++++ 3 files changed, 18 insertions(+) diff --git a/release/scripts/mgear/core/anim_utils.py b/release/scripts/mgear/core/anim_utils.py index a655c91f..ea49cfa4 100644 --- a/release/scripts/mgear/core/anim_utils.py +++ b/release/scripts/mgear/core/anim_utils.py @@ -1498,6 +1498,13 @@ def reset_all_keyable_attributes(dagnodes, *args): # @unusedVariable keyable_attrs = cmds.listAttr(node, keyable=True) reset_selected_channels_value([node], keyable_attrs) + rotOrder = "rotate_order" + if cmds.attributeQuery(rotOrder, node=node, exists=True): + intNum = cmds.getAttr("{}.{}".format(node, rotOrder)) + if cmds.getAttr("{}.rotateOrder".format(node), lock=True): + continue + cmds.setAttr("{}.rotateOrder".format(node), intNum) + ################################################## # Transfer space diff --git a/release/scripts/mgear/core/attribute.py b/release/scripts/mgear/core/attribute.py index b118ff4e..92660584 100644 --- a/release/scripts/mgear/core/attribute.py +++ b/release/scripts/mgear/core/attribute.py @@ -630,6 +630,9 @@ def setRotOrder(node, s="XYZ"): ) er.reorderIt(s) + if node.hasAttr("rotate_order"): + change_default_value(node.rotate_order, a.index(s)) + node.setAttr("ro", a.index(s)) node.setAttr("rotate", er.x, er.y, er.z) diff --git a/release/scripts/mgear/shifter/component/__init__.py b/release/scripts/mgear/shifter/component/__init__.py index 71c39e90..97b0a113 100644 --- a/release/scripts/mgear/shifter/component/__init__.py +++ b/release/scripts/mgear/shifter/component/__init__.py @@ -986,6 +986,14 @@ def addCtl( value=self.options["side_center_name"], ) + attribute.addEnumAttribute( + ctl, + "rotate_order", + 0, + ("xyz", "yzx", "zxy", "xzy", "yxz", "zyx"), + keyable=False + ) + # create the attributes to handlde mirror and symetrical pose attribute.add_mirror_config_channels(ctl, mirrorConf) if add_2_grp: