2013-03-10 1 views
0

У меня есть поле Spot Lights и я пытаюсь использовать pm.aimConstraint, чтобы связать свою цель с локатором (называемым «Light Point»). Вот раздел, который я борюсь с и ошибка это дает мне:Ошибка использования aimConstraint Maya Python Pymel

import pymel.core as pm 

aimTarget = "Light Point" 

selection = pm.ls(sl = True) 
for each in selection: 
    pm.aimConstraint(aimTarget, each) 

Error: MayaNodeError: file C:\Program Files\Autodesk\Maya2013\Python\lib\site-packages\pymel\internal\pmcmds.py line 140: # 

Очевидно, что выбор все пятно света.

В идеале я хотел бы сделать это без того, чтобы выбрать все огни, которые я думаю, будет выглядеть примерно так:

pm.aimConstraint("Light Point", "spotLight"+light) 

«свет» является количество света в диапазоне для цикла , преобразованный в строку. Это приводит к той же ошибке.

Я по-прежнему очень новичок в python, но раньше использовал первый скрипт и очень смущен, почему он не будет работать ни на чем, даже на прожекторах.

ответ

1

"Light Point" не является допустимым именем объекта.

Когда вы создаете узлы в Maya, вам нужно захватить объект, который вы дали при создании, иначе нет гарантии, что его объект, на ваш взгляд, есть.

+0

Когда локатора производится переименовывается "Light POINT". Тем не менее, я понял, что infact получает имя Light_Point. Так что это было скорректировано. По какой-то причине скрипт теперь работает. Я все еще не понимаю, почему, поэтому любые объяснения приветствуются! – user2153909

+1

space является недопустимым символом имени объекта. Майя просто перепишет его под знак подчеркивания. – joojaa

0

Я понимаю, что это более старое сообщение, но если кто-либо еще его увидит, PyMEL имеет функцию PyNode(). Поэтому, если вы пройдете «Светлую точку», там она вернет объект в сцену.

т.е.

from pymel.core import * 

PyNode("myCube") 
# Result: nt.Transform(u'myCube') # 

 Смежные вопросы

  • Нет связанных вопросов^_^