Maya Python 连接曲线控制器到定位器
我在想,为什么这个在处理字符串时会出错?我试着找出问题出在哪里,发现好像和变量 ShapeNode 有关系?但我不太明白为什么会这样。我希望有人能帮我解释一下。
谢谢。
import maya.cmds as cmds
cmds.file(new=True, f=True)
nodes = []
# create a line of nodes
for i in range(0,6):
# create node then move it
node = cmds.spaceLocator()
cmds.xform(node, ws=True, t=(4*i,0, 0) )
nodes.append(node)
# collect positions
pts = []
for n in nodes:
p = cmds.xform(n, query=True, translation=True, worldSpace=True )
pts.append(p)
# create curve and rename
line = cmds.curve(d=1, p=pts )
newPath = cmds.rename( line, 'Pathway_00' )
# create connections between objects and curve
count = len(pts)
for i in range(0,count):
node = nodes[i]
shapeNode = cmds.listRelatives(node, fullPath=True, shapes=True)
shapeTransform = cmds.ls(newPath)[0]
shapePath = cmds.listRelatives(shapeTransform, fullPath=False, shapes=True)
ctrl = (shapePath[0] + '.controlPoints[' + str(i) + ']')
cmds.connectAttr( (shapeNode + '.worldPosition[0]'), ctrl , f=True )
1 个回答
1
shapeNode 是一个列表。你可以这样修改你的最后一行:
cmds.connectAttr( shapeNode[0] + '.worldPosition[0]' , ctrl , f=True )
或者可以这样设置 shapeNode 变量:
shapeNode = cmds.listRelatives(node, fullPath=True, shapes=True)[0]
希望这能帮到你。祝好。