def getJointChain(_topJoint): error.assertType(_topJoint, ["", u'']) error.assertMayaType(_topJoint, "joint") jointList = cmds.listRelatives(_topJoint, ad=True, type="joint") jointList.append(_topJoint) jointList.reverse() return jointList
def stripSets(_object): error.assertMayaObject(_object) skipSets = [u'defaultLightSet', u'defaultObjectSet', u'initialParticleSE', u'initialShadingGroup'] sets = cmds.ls(sets=True) if sets: for a in sets: if a not in skipSets: cmds.sets(_object, rm=a)
def aimWrist(self, _fkWrist, _blendControlAttrs): error.assertType(_fkWrist, ["", u'']) error.assertList(_blendControlAttrs, ["", u'']) assert len(_blendControlAttrs) == 2, "_blendControls must contain two elements" # Make sure wrist is aimed right # create fix control that always aims as fk should. # this is used to help blend between ik and fk if (self.m_rigWrist): group = cmds.group(n="%s_wrist_blendFix_GRP" %(self.m_name), em=True) cmds.parent(group, self.m_group) rc.orientControl(group, self.m_wristCtrl) cmds.pointConstraint(self.m_joints.m_wrist, group, mo=1) # Create up locator wristAimFix = cmds.spaceLocator(n="%s_wristAimFix_LOC" %(self.m_name))[0] rc.addToLayer(self.m_sceneData, "hidden", wristAimFix) cmds.parent(wristAimFix, self.m_joints.m_elbow2, r=1) aimOffset = 1 if self.m_isMirrored: aimOffset *= -1 cmds.setAttr("%s.t%s" %(wristAimFix, self.m_twistAxis), aimOffset) aim = cmds.aimConstraint( self.m_joints.m_elbow2, group, worldUpType = "object", worldUpObject = wristAimFix, mo = True )[0] orient = cmds.orientConstraint( _fkWrist, "%s_SDK" %(self.m_wristCtrl), mo= True )[0] orient = cmds.orientConstraint( group, "%s_SDK" %(self.m_wristCtrl), mo= True )[0] cmds.setAttr("%s.interpType" %(orient), 2) cmds.connectAttr( _blendControlAttrs[0], "%s.%sW0" %(orient, _fkWrist) ) cmds.connectAttr( _blendControlAttrs[1], "%s.%sW1" %(orient, group) )
def renameControls(_renameMap): error.assertStringDict(_renameMap) errorString = [] for control in _renameMap: #Check that it exists if cmds.objExists(control): actualName = cmds.rename(control, _renameMap[control]) if actualName != _renameMap[control]: errorString.append( "Error -- Couldn't rename %s to %s, instead renamed to %s" \ %(control, _renameMap[control], actualName)) else: errorString.append("Error -- Can't find%s\n" %(control)) print "".join(errorString)
def __init__(self, _hiddenLyr, _refLyr, _mainCtrlLyr, _detailCtrlLyr): error.assertMayaType(_hiddenLyr, "displayLayer") error.assertMayaType(_refLyr, "displayLayer") error.assertMayaType(_mainCtrlLyr, "displayLayer") error.assertMayaType(_detailCtrlLyr, "displayLayer") self.m_hiddenLyr = _hiddenLyr self.m_refLyr = _refLyr self.m_mainCtrlLyr = _mainCtrlLyr self.m_detailCtrlLyr = _detailCtrlLyr self.m_setDictionary = {}
def addToSet(_data, _set, _objects): assert isinstance(_data, sd.SceneData), "_data must be SceneData object" error.assertString(_set) actualSet = _data.getSet(_set) if actualSet: if type(_objects) == type([]): for obj in _objects: error.assertMayaObject(obj) cmds.sets(obj, add=actualSet) else: error.assertMayaObject(_objects) cmds.sets(_objects, add=actualSet)
def addToControlDict(_dict, _identifier, _control): error.assertStringDict(_dict) error.assertString(_identifier) error.assertString(_control) assert _identifier not in _dict, "%s is already in _dict" %(_identifier) # Check that _control is not already mapped notInDict = True for key, value in _dict.items(): if value == _control: inDict = False break assert notInDict, "%s is already in _dict" %(_control) # Actually add to _dict _dict[_identifier] = _control
def generateAutoClav(_name, _shoulderSDK, _wristIK): print "doing something" error.assertString(_name) error.assertMayaObject(_shoulderSDK) error.assertMayaObject(_wristIK) cmds.select(clear=True) # Create joints joint1 = cmds.joint(n="%s_IK_JNT" %(_name)) rc.copyTranslation(joint1, _shoulderSDK) joint2 = cmds.joint(n="%s_IKEND_JNT" %(_name)) rc.copyTranslation(joint2, _wristIK) #cmds.parent(joint2, joint1) # Create IK ikControl = cmds.ikHandle( n="%s_IK" %(_name), sol="ikRPsolver", sj= joint1, ee=joint2 )[0] # deselect so we don't get warnings cmds.select(d=1) # Create pole vec locator = cmds.spaceLocator(n="%s_up_LOC" %(_name))[0] rc.orientControl(locator, _wristIK) locGroup = rg.addGroup(locator, "%s_0" %(locator)) cmds.setAttr("%s.ty" %(locator), 2) cmds.poleVectorConstraint(locator, ikControl) # Connect up to rig cmds.pointConstraint(_wristIK, locGroup, mo=1) cmds.pointConstraint(_wristIK, ikControl, mo=1) cmds.orientConstraint(joint1, _shoulderSDK, mo=1)
def addDictToControlDict(_destination, _source): error.assertStringDict(_destination) error.assertStringDict(_source) for key, value in _source.items(): addToControlDict(_destination, key, value)
def getSet(self, _identifier): error.assertString(_identifier) if _identifier in self.m_setDictionary: return self.m_setDictionary[_identifier] else: return ""
def addSet(self, _set, _identifier): error.assertMayaType(_set, "objectSet") error.assertString(_identifier) self.m_setDictionary[_identifier] = _set