def duplicateJoints(self, _joints, _postFix): newJoints = cmds.duplicate(_joints.m_shoulder, rc=1) if cmds.listRelatives(newJoints[0], p=True): cmds.parent(newJoints[0], w=True) for i in range(0, len(_joints)): jointNameEnd = _joints[i].find("_") newName = self.m_name+"_"+_postFix+"_"+\ _joints[i][:jointNameEnd] + "_JNT" newJoints[i] = cmds.rename(newJoints[i], newName) rc.stripSets(newJoints[i]) return aj.ArmJoints(newJoints)
def duplicateJoints(self, _topJoint, _tagName): dupJoints = cmds.duplicate(_topJoint, rc=True) if cmds.listRelatives(dupJoints[0], p=True): cmds.parent(dupJoints[0], w=True) i = 0 for name in [ "%s_%s_ankle_JNT" %(self.m_name, _tagName), "%s_%s_ball_JNT" %(self.m_name, _tagName), "%s_%s_toeEND_JNT"%(self.m_name, _tagName) ]: cmds.rename(dupJoints[i], name) dupJoints[i] = name rc.stripSets(dupJoints[i]) i+=1 return dupJoints
def createJoints(self): if not self.m_userJoints: self.m_bindJoints = [] startPos = cmds.xform(self.m_parent1, q=1, t=1, ws=1) endPos = cmds.xform(self.m_parent2, q=1, t=1, ws=1) stepVec = vec.divide( vec.subtract(endPos, startPos), self.m_numJoints - 1 ) currentPos = startPos for i in range(self.m_numJoints): newJoint = self.m_name+"_"+str(i)+"_BIND_JNT" newJoint = cmds.joint(n=newJoint, p=currentPos) cmds.setAttr("%s.radius" %(newJoint), 0.1) self.m_bindJoints.append(newJoint) currentPos = vec.add(currentPos, stepVec) #fix orientations cmds.joint( self.m_bindJoints[0], e=1, oj="xyz", sao = "yup", ch=1, zso=1 ) else: # Duplicate joints and rename newJoints = cmds.duplicate(self.m_userJoints[0], rc=1) for i in range(len(newJoints)): newJoint = "%s_%d_BIND_JNT" %(self.m_name, i) newJoints[i] = cmds.rename(newJoints[i], newJoint) self.m_bindJoints = newJoints #Put it in the right group cmds.parent(self.m_bindJoints[0], self.m_group) rc.addToLayer(self.m_sceneData, "ref", self.m_bindJoints[0]) #Strip sets for joint in self.m_bindJoints: rc.stripSets(joint) #Add all except first and last to bind set for joint in self.m_bindJoints[:-1]: rc.addToSet(self.m_sceneData, "bind", joint)