def SinglePropRig(Object, referencePositionControl): # if Object.__class__ == list : # elif Object.__class__ in [str,unicode]: GRS = RMGenericRigStructure.genericRigStructure() NameConv = nameConvention.NameConvention() bbMesh = RMRigTools.boundingBoxInfo(Object) CtrlPosition = cmds.xform(referencePositionControl, q=True, rp=True, worldSpace=True) NameList = Object.split(".") cntrlToMeshX = bbMesh.position[0] - CtrlPosition[0] cntrlToMeshY = bbMesh.position[1] - CtrlPosition[1] cntrlToMeshZ = bbMesh.position[2] - CtrlPosition[2] if len(NameList) > 1: Ctrl = RMRigShapeControls.RMCreateCubeLine(bbMesh.lenX, bbMesh.lenY, bbMesh.lenZ, offsetX=-bbMesh.minDistanceToCenterX + cntrlToMeshX, offsetY=-bbMesh.minDistanceToCenterY + bbMesh.lenY / 2 + cntrlToMeshY, offsetZ=-bbMesh.minDistanceToCenterZ + bbMesh.lenZ / 2 + cntrlToMeshZ, name=NameList[1]) joint = cmds.joint(name=NameList[1] + "jnt") else: Ctrl = RMRigShapeControls.RMCreateCubeLine(bbMesh.lenX, bbMesh.lenY, bbMesh.lenZ, offsetX=-bbMesh.minDistanceToCenterX + cntrlToMeshX, offsetY=-bbMesh.minDistanceToCenterY + bbMesh.lenY / 2 + cntrlToMeshY, offsetZ=-bbMesh.minDistanceToCenterZ + bbMesh.lenZ / 2 + cntrlToMeshZ, name=NameList[0] + "Ctrl") joint = cmds.joint(name=NameList[0] + "jnt") Ctrl = NameConv.rename_name_in_format(Ctrl, {'objectType': "control"}) ResetGroup = RMRigTools.RMCreateGroupOnObj(Ctrl) cmds.parent(ResetGroup, GRS.groups["controls"]["group"]) rigJntGrp = cmds.ls("*SimpleRigJoints*") if len(rigJntGrp) == 0: jointGroup = cmds.group(empty=True, name="SimpleRigJoints") jointGroup = NameConv.rename_name_in_format(jointGroup, {}) cmds.parent(jointGroup, GRS.groups["rig"]['group']) else: jointGroup = rigJntGrp RMRigTools.RMAlign(referencePositionControl, ResetGroup, 3) joint = NameConv.rename_name_in_format(joint, {}) RMRigTools.RMAlign(referencePositionControl, joint, 3) ResetJoint = RMRigTools.RMCreateGroupOnObj(joint) cmds.parent(ResetJoint, jointGroup) # if cmds.objExists # for eachObject in Object: cmds.select(clear=True) cmds.select(Object) cmds.select(joint, add=True) cmds.skinCluster() cmds.parentConstraint(Ctrl, joint)
def addNoiseOnControl(Object, Control): if Object.__class__ == list: pass elif Object.__class__ in [str, unicode]: Object = [Object] else: "Not Valid Arguments on Add Noise" return None Expresion = '''//{0} {0}.rotateX=`noise((time+{2})*{1}.frequency)`*{1}.amplitud; {0}.rotateY=`noise((time+{2}+30)*{1}.frequency)`*{1}.amplitud; {0}.rotateZ=`noise((time+{2}+60)*{1}.frequency)`*{1}.amplitud; {0}.ty=`noise((time+{2}+90)*{1}.frequency)`*{1}.movY + {1}.movY; ''' if not isNoiseControl(Control): addAttributes(Control) for eachObject in Object: constraints = constraintComponents(gessFrom=eachObject) ResetGroup = RMRigTools.RMCreateGroupOnObj(eachObject, Type="child") for eachkey in constraints.constraintDic: cmds.delete(eachkey) cmds.parentConstraint(ResetGroup, constraints.constraintDic[eachkey]["affected"], mo=True) ExpressionNode = cmds.expression(name="NoiseMainExpresion", string=Expresion.format(ResetGroup, Control, random.uniform(0, 100)))