我终于在最后的游戏助手联合脚本我正在工作,只有最后一个问题站在我的方式。剧本应该是怎么起作用的。创建一个关节,将其命名为“父关节”,然后在“节点编辑器”(node editor)中创建一个“multDoubleLinear”节点,将其命名为“bob”,选择创建的关节后单击“加载父关节”,然后单击“添加属性”。在一个我在这个问题上更聪明的理想世界中,添加到关节的自定义属性将插入bob的“input1”,而我得到一个错误消息:“error:找不到源属性‘Parent_joint_HelperJntAttr’。”
根据我已经尝试过的方法,我将connectAttr放在addAttr下面,因为常识会要求在连接属性之前必须首先创建属性:但是尽管如此,它还是拒绝连接。我知道错不在鲍勃输入1“node,因为它只为'Parent_Joint_HelperJntAttr:打开前缀属性名:所以我猜测这只是我在编写这个特定过程时缺乏知识。在
import maya.cmds as cmds
if cmds.window(window, exists =True):
cmds.deleteUI(window)
window = cmds.window(title='DS Attribute adder')
column = cmds.columnLayout(adj=True)
sld_textFld = cmds.textField('sld_surfaceTextHJ', width =240)
def set_textfield(_):
sel = cmds.ls(selection=True)
cmds.textField(sld_textFld, edit=True, text=sel[0])
load_button = cmds.button( label='Load Parent Joint', c = set_textfield)
def add_Attribute(_):
text_value = cmds.textField(sld_textFld, q = True, text=True)
if text_value:
print "attrAdded:"
cmds.addAttr(ln=text_value +'_HelperJntAttr', defaultValue=5.0, minValue=0, attributeType='float', keyable=True)
cmds.connectAttr( text_value +"_HelperJntAttr", 'bob.input1')
else:
cmds.warning("select an object and add it to the window first!")
node_button = cmds.button( label='add attribute', c = add_Attribute)
cmds.showWindow(window)
我知道如何在maya中对默认属性使用connectAttr命令,但我不太明白的是自定义属性。我的希望是我知道如何编写代码来创建和连接关节的自定义属性。提前感谢您的帮助
使用
addAttr
的方式是在属性名中包含关节的名称。属性用.
分隔,而不是_
,因此您的connectAttr
也因此失败。在您还需要将
window
变量初始化为某个默认值,否则它将在您检查它是否存在的行上失败(但是window
在那一点上没有定义)。在下面是添加属性并按预期连接它的脚本:
相关问题 更多 >
编程相关推荐