我创建了一个创建圆网格的函数,我需要收集创建到列表中的圆节点,以便以后可以操作节点。问题是我注意到nodeList在被maya自动重命名之前被赋予了节点名称是唯一的。您会注意到,当您运行此脚本时,收集的名称都是相同的,但是当您在maya中选择它们时,它们会增加为唯一。
我已退回此
[u'mainShape_00', u'makeNurbCircle1']
[u'|mainShape_00', u'makeNurbCircle2']
[u'|mainShape_00', u'makeNurbCircle3']...
什么时候应该
[u'mainShape_00', u'makeNurbCircle1']
[u'|mainShape_01', u'makeNurbCircle2']
[u'|mainShape_02', u'makeNurbCircle3']...
这是脚本
# Import Modules
import maya.cmds as cmds
import random
# Scene setup
try:
cmds.select(all=True)
cmds.delete()
except:
pass
# create 2D grid of circles
numRows = 4
numColumns = 3
radiusMin = .1
radiusMax = .75
#create empty group for nodes
nodeGroup = cmds.group(em=True, name='main_group_00')
nodeList = []
for r in range(0,numRows):
for c in range(0,numColumns):
# Calculate random radius
radius = random.uniform(radiusMin,radiusMax)
# Create circle shape and transform it
node = cmds.circle(n='mainShape_00', ch=True, o=True, nr=(0, 0, 1), c=(0, 0, 0), r=radius)
cmds.xform(node, t=(r*(radiusMax*2), c*(radiusMax*2), 0) )
# Parent node under the group node
cmds.parent(node[0], nodeGroup, relative=False)
# Append nodes to list
nodeList.append(node)
for n in nodeList:
shape = n
print shape
答案 0 :(得分:1)
node
是'mainShape_00'
,因为当时,这就是它的名字。在它nodeGroup
下的父级之前没有碰撞。在养育子女之后抓住真实姓名:
node[0] = cmds.parent(node[0], nodeGroup, relative=False)[0]
这会将原始node[0]
替换为新的node[0]
答案 1 :(得分:0)
为什么不这样命名自己的节点:
x = 0
padding = str(x).zfill(2)
mainShapeName = 'mainShape_' + padding
x += 1
# Create circle shape and transform it
node = cmds.circle(n=mainShapeName, ch=True, o=True, nr=(0, 0, 1), c=(0, 0, 0), r=radius)
cmds.xform(node, t=(r*(radiusMax*2), c*(radiusMax*2), 0) )
通过增加自己,你可以避免玛雅问题。 你甚至应该在每个小组中给出独特的名字。
干杯。