2017-05-10 12 views
0

我是新的python,我试图添加一个属性到玛雅灯的形状。脚本应该就是这样::每个light.shape我选择加入“mtoa_constant_lightGroup”属性:如何使用python添加属性到灯光

import maya.cmds as pm 

lightSelect= pm.ls (sl=True, dag=True, leaf=True) 

for elem in lightSelect: 
    pm.addAttr (elem, ln='mtoa_constant_lightGroup', at=long, dv=0) 
    pm.setAttr (e=True, keyable=True, elem +'.mtoa_constant_lightGroup') 

但是当我运行该脚本,我得到这个错误:

Error: line 1: non-keyword arg after keyword arg 

任何建议请。

+0

这是一个错字。你想'dv = 0',而不是'dv-0'。 – timgeb

+0

是的抱歉,这是一个写入错误,反正即使d = 0我得到了同样的错误 –

+2

第二个错误是你不能在最后一行关键字参数后面使用位置参数。我知道我只是重申错误信息,但我不知道你对此不了解。 – timgeb

回答

1

在代码的下面一行中,您在关键字参数后面有一个位置参数,这没有意义。

pm.setAttr (e=True, keyable=True, elem +'.mtoa_constant_lightGroup') 
# ---- here ----------------------^ 
0

修复它! 所以马丁说,我必须将关键字参数移动到末尾 然后为错误“#错误:第1行:RuntimeError:文件行6:为新属性指定的类型未知。”我需要将at=long设置为一个字符串,例如

`pm.addAttr (elem, ln='mtoa_constant_lightGroup', at="long", dv=0)` 

最终的脚本是这样的:

import maya.cmds as pm 

lightSelect= pm.ls (sl=True, dag=True, leaf=True) 

for elem in lightSelect: 
    pm.addAttr (elem, ln='mtoa_constant_lightGroup', at="long", dv=0) 
    pm.setAttr(elem +'.mtoa_constant_lightGroup', e=True, keyable=True) 

感谢您的帮助