我一直在研究一个ik/fk关节匹配脚本,上个月我终于成功地得到了正确的工作。今天启动maya,运行脚本,在加载接口时,我收到以下错误
此脚本在运行加载脚本时:
# Error: NameError: file <maya console> line 196: global name 'Fks' is not defined #
点击我的选择根关节链按钮:
# Error: NameError: file <maya console> line 1: name 'select_joints_afk' is not defined #
我对这个很陌生,所以我真的不明白到底发生了什么。
class Create_Selection_Chains(object):
def __init__(self, name, *args):
self.Fks = Fks
self.Ikw = Ikw
self.Pv = ikpv
self.name = name
self.combined_selection = self.Fks+self.Ikw+self.Pv
print("List created"+self.name)
def select_joints_afk(self):
if cmds.ls(selection = True,type=("transform",'nurbsCurve')):
sel = cmds.ls(sl=True)
fks = sel
fkCtrls = cmds.listRelatives(sel, allDescendents=True, type=("transform",'nurbsCurve'))
Fks = [nurbsCurve for nurbsCurve in fkCtrls if nurbsCurve.startswith('FK') & nurbsCurve.endswith('Ctrl')]
cmds.textFieldButtonGrp(gtF0, edit = True, tx ='' .join(sel),buttonLabel='IK OK',backgroundColor = (.5,.8,.2))
del Fks[1]
del Fks[2]
Fks.extend(sel)
print Fks
return self.Fks
else:
text = cmds.confirmDialog( title='Error', message='Must select joint', button=['OK'],
defaultButton='Ok', dismissString='No' )
def select_joints_aikw(self):
if cmds.ls(selection = True,type=("transform",'nurbsCurve')):
sel=cmds.ls(selection = True)
ikwrist = sel
Ikw = [nurbsCurve for nurbsCurve in ikwrist if nurbsCurve.startswith('IK') & nurbsCurve.endswith('Ctrl')]
cmds.textFieldButtonGrp(gtF1, edit = True, tx ='' .join(ikwrist),buttonLabel='IK OK',backgroundColor = (.5,.8,.2))
cmds.select(ikwrist)
print Ikw
return self.ikw
else:
text = cmds.confirmDialog( title='Error', message='Must select joint', button=['OK'], defaultButton='Ok',
dismissString='No' )
def select_joints_ikpv(self):
if cmds.ls(selection = True,type=("transform",'nurbsCurve')):
sel = cmds.ls(sl=True)
ikPvsel = sel
ikpv = [nurbsCurve for nurbsCurve in ikPvsel if nurbsCurve.startswith('IK') & nurbsCurve.endswith('Ctrl')]
cmds.textFieldButtonGrp(gtF2, edit = True, tx ='' .join(ikPvsel),buttonLabel='IK OK',backgroundColor = (.5,.8,.2))
cmds.select(ikPvsel)
print ikpv
return self.ikpv
else:
text = cmds.confirmDialog( title='Error', message='Must select joint', button=['OK'],
defaultButton='Ok', dismissString='No' )
有人告诉我,如果在实例化类时将变量传递到类中,只要传递所需的参数,它就可以正常运行,但是在更改之后
def __init__(self, name, *args):
到
def __init__(self, name, Fks, Ikw, ikpv):
我在玛雅加载脚本时收到以下消息
# Error: TypeError: file <maya console> line 413: __init__() takes at least 5 arguments (2 given) #
第413行是我加载实例的位置…:
left_arm_select = Create_Selection_Chains("left arm")
有人能帮我理解发生了什么事吗?因为我以为我在通过我所有的论点