示例#1
0
 def test_addProxyAttribute_fullName(self):
     """proxy_channel_fullName
     """
     source = pm.PyNode("{}.{}".format(self.pcs[0], self.chanName))
     source2 = pm.PyNode("{}.{}".format(self.pcs2[0], self.chanName))
     self.assertIsNone(att.addProxyAttribute(source,  self.pct[0], "fullName"))
     self.assertIsNone(att.addProxyAttribute(source2,  self.pct[0], "fullName"))
示例#2
0
    def addAttributes(self):

        # Anim -------------------------------------------
        self.blend_att = self.addAnimParam("blend", "Fk/Ik Blend", "double", self.settings["blend"], 0, 1)
        self.roll_att = self.addAnimParam("roll", "Roll", "double", 0, -180, 180)
        self.armpit_roll_att = self.addAnimParam("aproll", "Armpit Roll", "double", 0, -360, 360)

        self.scale_att = self.addAnimParam("ikscale", "Scale", "double", 1, .001, 99)
        self.maxstretch_att = self.addAnimParam("maxstretch", "Max Stretch", "double", self.settings["maxstretch"], 1, 99)
        self.slide_att = self.addAnimParam("slide", "Slide", "double", .5, 0, 1)
        self.softness_att = self.addAnimParam("softness", "Softness", "double", 0, 0, 1)
        self.reverse_att = self.addAnimParam("reverse", "Reverse", "double", 0, 0, 1)
        self.roundness_att = self.addAnimParam("roundness", "Roundness", "double", 0, 0, self.size)
        self.volume_att = self.addAnimParam("volume", "Volume", "double", 1, 0, 1)

        # Ref
        if self.settings["ikrefarray"]:
            ref_names = self.settings["ikrefarray"].split(",")
            if len(ref_names) > 1:
                self.ikref_att = self.addAnimEnumParam("ikref", "Ik Ref", 0, self.settings["ikrefarray"].split(","))

        if self.settings["ikTR"]:
            ref_names = ["Auto", "ik_ctl"]
            if self.settings["ikrefarray"]:
                ref_names = ref_names + self.settings["ikrefarray"].split(",")
            self.ikRotRef_att = self.addAnimEnumParam("ikRotRef", "Ik Rot Ref", 0, ref_names)



        if self.settings["upvrefarray"]:
            ref_names = self.settings["upvrefarray"].split(",")
            ref_names = ["Auto"] + ref_names
            if len(ref_names) > 1:
                self.upvref_att = self.addAnimEnumParam("upvref", "UpV Ref", 0, ref_names)

        if self.settings["pinrefarray"]:
            ref_names = self.settings["pinrefarray" ].split(",")
            ref_names = ["Auto"] + ref_names
            if len(ref_names) > 1:
                self.pin_att = self.addAnimEnumParam("elbowref", "Elbow Ref", 0, ref_names)

        if self.validProxyChannels:
            att.addProxyAttribute([self.blend_att, self.roundness_att], [self.fk0_ctl, self.fk1_ctl, self.fk2_ctl, self.ik_ctl, self.upv_ctl])
            att.addProxyAttribute(self.roll_att, [self.ik_ctl, self.upv_ctl])



        # Setup ------------------------------------------
        # Eval Fcurve
        self.st_value = fcu.getFCurveValues(self.settings["st_profile"], self.divisions)
        self.sq_value = fcu.getFCurveValues(self.settings["sq_profile"], self.divisions)

        self.st_att = [ self.addSetupParam("stretch_%s"%i, "Stretch %s"%i, "double", self.st_value[i], -1, 0) for i in range(self.divisions) ]
        self.sq_att = [ self.addSetupParam("squash_%s"%i, "Squash %s"%i, "double", self.sq_value[i], 0, 1) for i in range(self.divisions) ]

        self.resample_att = self.addSetupParam("resample", "Resample", "bool", True)
        self.absolute_att = self.addSetupParam("absolute", "Absolute", "bool", False)
示例#3
0
 def applyChannelConfig(self):
     with pm.UndoChunk():
         configDict = self._buildConfigDict()
         #TODO add checker to avoid error if the datas is not found in the scene
         for rule in configDict["map"]:
             # proxy
             if rule[3]:
                 source = pm.PyNode("{}.{}".format(rule[1], rule[0]))
                 target = pm.PyNode(rule[2])
                 att.addProxyAttribute(source, target,
                                       configDict["proxyPolicy"])
             #move
             else:
                 source = pm.PyNode(rule[1])
                 target = pm.PyNode(rule[2])
                 att.moveChannel(rule[0], source, target,
                                 configDict["movePolicy"])
示例#4
0
def _applyChannelConfig(configDic):
    tableMap = configDic["map"]
    movePolicy = configDic["movePolicy"]
    proxyPolicy = configDic["proxyPolicy"]
    for rule in tableMap:
        attr = rule[0]
        sourceNode = rule[1]
        targetNode = rule[2]
        option = rule[3]
        # proxy
        if option:
            node = pm.PyNode(sourceNode)
            sourceAttrs = node.attr(attr)
            target = pm.PyNode(targetNode)
            att.addProxyAttribute(sourceAttrs, target, proxyPolicy)
        # move
        else:
            att.moveChannel(attr, sourceNode, targetNode, movePolicy)
示例#5
0
    def addAttributes(self):

        self.blend_att = self.addAnimParam("blend", "Fk/Ik Blend", "double",
                                           self.settings["blend"], 0, 1)
        self.fullIK_attr = self.addAnimParam("fullIK", "Full 3 bones IK",
                                             "double",
                                             self.settings["full3BonesIK"], 0,
                                             1)
        self.soft_attr = self.addAnimParam("softIKRange", "Soft IK Range",
                                           "double", 0.0001, 0.0001, 100)
        self.softSpeed_attr = self.addAnimParam("softIKSpeed", "Soft IK Speed",
                                                "double", 2.5, 1.001, 10)
        self.stretch_attr = self.addAnimParam("stretch", "Stretch", "double",
                                              0, 0, 1)
        self.volume_att = self.addAnimParam("volume", "Volume", "double", 1, 0,
                                            1)
        self.roll_att = self.addAnimParam("roll", "Roll", "double", 0, -180,
                                          180)

        self.roundnessKnee_att = self.addAnimParam("roundnessKnee",
                                                   "Roundness Knee", "double",
                                                   0, 0, self.size)
        self.roundnessAnkle_att = self.addAnimParam("roundnessAnkle",
                                                    "Roundness Ankle",
                                                    "double", 0, 0, self.size)

        self.boneALenghtMult_attr = self.addAnimParam("boneALenMult",
                                                      "Bone A Mult", "double",
                                                      1)
        self.boneBLenghtMult_attr = self.addAnimParam("boneBLenMult",
                                                      "Bone B Mult", "double",
                                                      1)
        self.boneCLenghtMult_attr = self.addAnimParam("boneCLenMult",
                                                      "Bone C Mult", "double",
                                                      1)
        self.boneALenght_attr = self.addAnimParam("boneALen",
                                                  "Bone A Length",
                                                  "double",
                                                  self.length0,
                                                  keyable=False)
        self.boneBLenght_attr = self.addAnimParam("boneBLen",
                                                  "Bone B Length",
                                                  "double",
                                                  self.length1,
                                                  keyable=False)
        self.boneCLenght_attr = self.addAnimParam("boneCLen",
                                                  "Bone C Length",
                                                  "double",
                                                  self.length2,
                                                  keyable=False)

        # Ref
        if self.settings["ikrefarray"]:
            ref_names = self.get_valid_alias_list(
                self.settings["ikrefarray"].split(","))
            if len(ref_names) > 1:
                self.ikref_att = self.addAnimEnumParam("ikref", "Ik Ref", 0,
                                                       ref_names)

        if self.settings["upvrefarray"]:
            ref_names = self.get_valid_alias_list(
                self.settings["upvrefarray"].split(","))
            ref_names = ["Auto"] + ref_names
            if len(ref_names) > 1:
                self.upvref_att = self.addAnimEnumParam(
                    "upvref", "UpV Ref", 0, ref_names)
        if self.validProxyChannels:
            attribute.addProxyAttribute([self.blend_att, self.roundness_att], [
                self.fk0_ctl, self.fk1_ctl, self.fk2_ctl, self.ik_ctl,
                self.upv_ctl
            ])
            attribute.addProxyAttribute(self.roll_att,
                                        [self.ik_ctl, self.upv_ctl])

        # Setup ------------------------------------------
        # Eval Fcurve
        self.st_value = fcurve.getFCurveValues(self.settings["st_profile"],
                                               self.divisions)
        self.sq_value = fcurve.getFCurveValues(self.settings["sq_profile"],
                                               self.divisions)

        self.st_att = [
            self.addSetupParam("stretch_%s" % i, "Stretch %s" % i, "double",
                               self.st_value[i], -1, 0)
            for i in range(self.divisions)
        ]

        self.sq_att = [
            self.addSetupParam("squash_%s" % i, "Squash %s" % i, "double",
                               self.sq_value[i], 0, 1)
            for i in range(self.divisions)
        ]

        self.resample_att = self.addSetupParam("resample", "Resample", "bool",
                                               True)
        self.absolute_att = self.addSetupParam("absolute", "Absolute", "bool",
                                               False)

        defValu = self.chain3bones[1].attr("jointOrientZ").get() / 2
        self.kneeFlipOffset_att = self.addSetupParam("kneeFlipOffset",
                                                     "Knee Flip Offset",
                                                     "double", defValu, -180,
                                                     180)
        defValu = self.chain3bones[2].attr("jointOrientZ").get() / 2
        self.ankleFlipOffset_att = self.addSetupParam("ankleFlipOffset",
                                                      "Ankle Flip Offset",
                                                      "double", defValu, -180,
                                                      180)
示例#6
0
文件: __init__.py 项目: rusn07/mgear
    def addAttributes(self):

        # Anim -------------------------------------------
        self.blend_att = self.addAnimParam(
            "blend", "Fk/Ik Blend", "double", self.settings["blend"], 0, 1)
        self.roll_att = self.addAnimParam(
            "roll", "Roll", "double", 0, -180, 180)
        self.scale_att = self.addAnimParam(
            "ikscale", "Scale", "double", 1, .001, 99)
        self.maxstretch_att = self.addAnimParam("maxstretch",
                                                "Max Stretch",
                                                "double",
                                                self.settings["blend"],
                                                1,
                                                99)
        self.slide_att = self.addAnimParam(
            "slide", "Slide", "double", .5, 0, 1)
        self.softness_att = self.addAnimParam(
            "softness", "Softness", "double", 0, 0, 1)
        self.reverse_att = self.addAnimParam(
            "reverse", "Reverse", "double", 0, 0, 1)
        self.roundness_att = self.addAnimParam(
            "roundness", "Roundness", "double", 0, 0, self.size)
        self.volume_att = self.addAnimParam(
            "volume", "Volume", "double", 1, 0, 1)

        if self.settings["extraTweak"]:
            self.tweakVis_att = self.addAnimParam(
                "Tweak_vis", "Tweak Vis", "bool", False)

        # Ref
        if self.settings["ikrefarray"]:
            ref_names = self.get_valid_alias_list(
                self.settings["ikrefarray"].split(","))
            if len(ref_names) > 1:
                self.ikref_att = self.addAnimEnumParam(
                    "ikref",
                    "Ik Ref",
                    0,
                    self.settings["ikrefarray"].split(","))

        ref_names = ["Auto", "ikFoot"]
        if self.settings["upvrefarray"]:
            ref_names = ref_names + self.get_valid_alias_list(
                self.settings["ikrefarray"].split(","))
        self.upvref_att = self.addAnimEnumParam(
            "upvref", "UpV Ref", 0, ref_names)

        if self.settings["pinrefarray"]:
            ref_names = self.get_valid_alias_list(
                self.settings["pinrefarray"].split(","))
            ref_names = ["Auto"] + ref_names
            if len(ref_names) > 1:
                self.pin_att = self.addAnimEnumParam("kneeref",
                                                     "Knee Ref",
                                                     0,
                                                     ref_names)
        if self.validProxyChannels:
            attrs_list = [self.blend_att, self.roundness_att]
            if self.settings["extraTweak"]:
                attrs_list += [self.tweakVis_att]
            attribute.addProxyAttribute(
                attrs_list,
                [self.fk0_ctl,
                    self.fk1_ctl,
                    self.fk2_ctl,
                    self.ik_ctl,
                    self.upv_ctl,
                    self.mid_ctl])
            attribute.addProxyAttribute(self.roll_att,
                                        [self.ik_ctl, self.upv_ctl])

        # Setup ------------------------------------------
        # Eval Fcurve
        self.st_value = fcurve.getFCurveValues(self.settings["st_profile"],
                                               self.divisions)
        self.sq_value = fcurve.getFCurveValues(self.settings["sq_profile"],
                                               self.divisions)

        self.st_att = [self.addSetupParam("stretch_%s" % i,
                                          "Stretch %s" % i,
                                          "double", self.st_value[i], -1, 0)
                       for i in range(self.divisions)]
        self.sq_att = [self.addSetupParam("squash_%s" % i,
                                          "Squash %s" % i,
                                          "double",
                                          self.sq_value[i], 0, 1)
                       for i in range(self.divisions)]

        self.resample_att = self.addSetupParam(
            "resample", "Resample", "bool", True)
        self.absolute_att = self.addSetupParam(
            "absolute", "Absolute", "bool", False)
示例#7
0
    def addAttributes(self):
        """Create the anim and setupr rig attributes for the component"""

        # Anim -------------------------------------------
        self.blend_att = self.addAnimParam("blend", "Fk/Ik Arm", "double",
                                           self.settings["blend"], 0, 1)
        self.blend2_att = self.addAnimParam("blend_hand", "Fk/Ik Hand",
                                            "double", self.settings["blend"],
                                            0, 1)
        self.auv_att = self.addAnimParam("auv", "Auto Upvector", "double", 0,
                                         0, 1)
        self.roll_att = self.addAnimParam("roll", "Roll", "double", 0, -180,
                                          180)
        self.armpit_roll_att = self.addAnimParam("aproll", "Armpit Roll",
                                                 "double", 0, -360, 360)
        self.scale_att = self.addAnimParam("ikscale", "Scale", "double", 1,
                                           .001, 99)
        self.maxstretch_att = self.addAnimParam("maxstretch", "Max Stretch",
                                                "double",
                                                self.settings["maxstretch"], 1,
                                                99)
        self.slide_att = self.addAnimParam("slide", "Slide", "double", .5, 0,
                                           1)
        self.softness_att = self.addAnimParam("softness", "Softness", "double",
                                              0, 0, 1)
        self.reverse_att = self.addAnimParam("reverse", "Reverse", "double", 0,
                                             0, 1)
        self.roundness0_att = self.addAnimParam("roundness_up", "Roundness Up",
                                                "double", 0, 0, self.size)
        self.roundness1_att = self.addAnimParam("roundness_dn", "Roundness Dn",
                                                "double", 0, 0, self.size)
        self.volume_att = self.addAnimParam("volume", "Volume", "double", 1, 0,
                                            1)
        self.elbow_thickness_att = self.addAnimParam("elbowthickness",
                                                     "Elbow Thickness",
                                                     "double",
                                                     self.settings["elbow"], 0,
                                                     5)
        self.jntctl_vis_att = self.addAnimParam("jntct_vis", "Joint Ctl Vis",
                                                "bool", 0)
        # Ref
        if self.settings["fkrefarray"]:
            ref_names = self.settings["fkrefarray"].split(",")
            if len(ref_names) > 1:
                self.ref_att = self.addAnimEnumParam(
                    "fkref", "Fk Ref", 0,
                    self.settings["fkrefarray"].split(","))

        if self.settings["ikrefarray"]:
            ref_names = self.get_valid_alias_list(
                self.settings["ikrefarray"].split(","))
            if len(ref_names) > 1:
                self.ikref_att = self.addAnimEnumParam("ikref", "Ik Ref", 0,
                                                       ref_names)

        if self.settings["upvrefarray"]:
            ref_names = self.get_valid_alias_list(
                self.settings["upvrefarray"].split(","))
            if len(ref_names) > 1:
                self.upvref_att = self.addAnimEnumParam(
                    "upvref", "UpV Ref", 0, ref_names)
        if self.validProxyChannels:
            attribute.addProxyAttribute([self.blend_att], [
                self.fk0_ctl, self.fk1_ctl, self.fk2_ctl, self.ik_ctl,
                self.upv_ctl
            ])
            attribute.addProxyAttribute(self.roll_att,
                                        [self.ik_ctl, self.upv_ctl])

        # Setup ------------------------------------------
        # Eval Fcurve
        self.st_value = fcurve.getFCurveValues(self.settings["st_profile"],
                                               self.divisions)
        self.sq_value = fcurve.getFCurveValues(self.settings["sq_profile"],
                                               self.divisions)

        self.st_att = [
            self.addSetupParam("stretch_%s" % i, "Stretch %s" % i, "double",
                               self.st_value[i], -1, 0)
            for i in range(self.divisions)
        ]

        self.sq_att = [
            self.addSetupParam("squash_%s" % i, "Squash %s" % i, "double",
                               self.sq_value[i], 0, 1)
            for i in range(self.divisions)
        ]

        self.resample_att = self.addSetupParam("resample", "Resample", "bool",
                                               True)
        self.absolute_att = self.addSetupParam("absolute", "Absolute", "bool",
                                               False)