这段python代码在Maya骨骼绑定插件中起什么作用啊?谢谢大神了!

Yunuu 96

def CreateIkFkSwitchControl(**kwargs): joint = kwargs.setdefault("joint") part = kwargs.setdefault("bodyPart") locAttr = kwargs.setdefault('locAttributes') scale = kwargs.setdefault('scale') side = kwargs.setdefault('side') """Create grp, scale it and parent it under it's joint""" grp = cmds.group(name=side+"_"+part+"IkFkSwitch_ctrlGrp", empty=True) cmds.scale(scale, scale, scale, grp) if part == 'arm': spaceConstraint = cmds.parentConstraint(joint, grp) elif part == 'leg': spaceConstraint = cmds.pointConstraint(joint, grp) cmds.delete(spaceConstraint) """Create control and parent it under it's grp""" ctrl = cmds.curve(name=side+"_"+part+"IkFkSwitch_ctrl", degree=3, point=[(0,0.65,0),(0,0,0),(-1,0,0),(0,0,0), (0,-1,0),(0,0,0),(1,0,0),(0,0,0),(0,0.65,0)], knot=[0,0,0,1,2,3,4,5,6,6,6]) cmds.parent(ctrl, grp, r=True) """Give ctrl right position""" if side == 'l' and part == 'arm': cmds.xform(ctrl, translation=[0,1.5,0], relative=True) elif side == 'r' and part == 'arm': cmds.xform(ctrl, translation=[0,-1.5,0], relative=True) elif side == 'l' and part == 'leg': cmds.xform(ctrl, translation=[1.5,0,0], relative=True) elif side == 'r' and part == 'leg': cmds.xform(ctrl, translation=[-1.5,0,0], relative=True) """Parent constrain""" cmds.parentConstraint(joint, grp, maintainOffset=True, skipRotate="none", skipTranslate="none") """Add and lock attribute""" cmds.addAttr(ctrl, longName='ikFkSwitch', attributeType='float', minValue=0.0, maxValue=1.0, keyable=True) for attr in locAttr: cmds.setAttr(ctrl+'.'+attr, lock=True, keyable=False,channelBox=False) if side == 'l': cmds.parent(grp, 'LEFT') elif side == 'r': cmds.parent(grp, 'RIGHT') return ctrl, ctrl+'.ikFkSwitch'def CleanListToString(**kwargs): orginalList = kwargs.setdefault("dirtyList") cleanString = '' for obj in orginalList: if obj == orginalList[0]: """If orginalList is only one object""" cleanString = obj elif len(orginalList) > 1 and obj == orginalList[-1]: """If orginalList last object in a list with more than 1 object.""" cleanString = cleanString + ' and ' + obj else: cleanString = cleanString + ', ' + obj return cleanString要详细些的解释

回复

共1条回复 我来回复
  • 暂无回复内容

开通VIP 享更多特权,建议使用 QQ 登录