Beispiel #1
0
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
Beispiel #2
0
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)
Beispiel #3
0
    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)
                )
Beispiel #4
0
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)
Beispiel #5
0
	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 = {}
Beispiel #6
0
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)
Beispiel #7
0
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
Beispiel #8
0
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)
Beispiel #9
0
def addDictToControlDict(_destination, _source):
    error.assertStringDict(_destination)
    error.assertStringDict(_source)
    for key, value in _source.items():
        addToControlDict(_destination, key, value)
Beispiel #10
0
	def getSet(self, _identifier):
		error.assertString(_identifier)
		if _identifier in self.m_setDictionary:
			return self.m_setDictionary[_identifier]
		else:
			return ""
Beispiel #11
0
	def addSet(self, _set, _identifier):
		error.assertMayaType(_set, "objectSet")
		error.assertString(_identifier)
		self.m_setDictionary[_identifier] = _set