원형 격자를 만드는 함수를 만들었습니다. 그리고 나중에 노드를 조작 할 수 있도록 목록으로 만들어진 원 노드를 수집해야합니다. 문제는 maya가 고유 한 것으로 자동 변경되기 전에 nodeList에 노드 이름이 주어 졌음을 발견했다는 것입니다. 이 스크립트를 실행할 때 수집 된 이름은 모두 동일하지만 마야에서 선택하면 고유하게 증가됩니다.python + 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
나는 본다. 나는 왜 그것이 새로운 이름을 돌려 보내지 않고 있는지에 관해 혼란스러워했다. – JokerMartini
네,'maya.cmds'는 문자열에서만 작동합니다. 따라서 이름 변경을 추적 할 수는 없습니다. 당신은 pymel을 한번보세요. – mhlester