Maya添加数值复合属性(nonAPI)

2024-10-01 17:41:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在网上寻找解决办法,但没有结果。我正在尝试添加一个基于索引的复合属性(即“对象.属性[0],对象.属性[1] 你说,对象.属性[2] ,等等)类似于顶点和uv属性的使用方式。纵观文件,似乎没有明确的方法来实现这一点。在

尝试次数: 如何定义父对象:cmds.addAttr(nodeType, ln=theParent, nc=x, at='compound')

在addAttr中通常使用复合标志。在

-使用带字符串格式的for循环:

for i in range(x): 
    cmds.addAttr(ln='object.attribute[%s]' %i, p=theParent)

-评估:

^{pr2}$

对于字符串格式,我遇到了这个错误。在

# Traceback (most recent call last):
#   File "<maya console>", line 2, in <module>
# RuntimeError: Error occurred during execution of MEL script
# line 1: Long name 'attribute[0]' contains invalid characters. //

这个复合属性最终将保存任意数量的Int32Array数据类型。在

我可以创建自己的节点并通过API创建必要的属性,但我不想创建任何附加的依赖关系。在

我为我的问题中的任何漏洞或不清楚的地方道歉。请问一下,我可以进一步解释。在

谢谢。在


Tags: 对象字符串infor属性格式lineattribute
1条回答
网友
1楼 · 发布于 2024-10-01 17:41:59

使用-m标志将父属性设置为多属性:

 cmds.addAttr("polyCube1", ln = "example", at="compound", nc = 2, m=True)
 cmds.addAttr("polyCube1", ln = "atx", at="float", p="example")
 cmds.addAttr("polyCube1", ln = "aty", at="float", p="example")

这将polyCube1.compound设置为两部分属性(UV是两部分的方式)和多属性。您可以通过索引setAttr或连接来添加对:

^{pr2}$

相关问题 更多 >

    热门问题