0

我有一个 Spot Lights 字段,并试图将pm.aimConstraint其目标链接到定位器(称为“Light Point”)。这是我正在努力解决的部分以及它给我的错误:

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)

"light" 是 for 循环范围内的灯数,转换为字符串。这会得到同样的错误。

我对 python 还是很陌生,但之前使用过第一个脚本,我很困惑为什么它不能在任何东西上工作,甚至不仅仅是聚光灯。

4

2 回答 2

1

“Light Point”不是有效的对象名称。

当您在 Maya 中创建节点时,您需要捕获您在创建时给出的对象,否则无法保证它就是您认为的对象。

于 2013-03-10T15:47:11.840 回答
0

我意识到这是一篇较旧的帖子,但如果其他人看到它,PyMEL 就有这个PyNode()功能。因此,如果您要通过那里传递“Light Point”,它将返回场景中的对象。

IE

from pymel.core import *

PyNode("myCube")
# Result: nt.Transform(u'myCube') # 
于 2013-05-01T15:02:33.067 回答