2013-03-10 135 views
0

我有一個Spot Lights的領域,我試圖用pm.aimConstraint將他們的目標鏈接到一個定位器(稱爲「Light Point」)。以下是我正在努力的部分以及它給我的錯誤:使用aimConstraint瑪雅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) 

「光」是燈在for循環的範圍內的數,轉換爲一個字符串。這會得到相同的錯誤。

我對python仍然很陌生,但之前已經使用過第一個腳本,並且很困惑它爲什麼不適用於任何事情,甚至不是聚光燈。

回答

1

「燈點」不是有效的對象名稱。

當您在Maya中創建節點時,您需要捕獲您在創建時給定的對象,否則不能保證它是您認爲它的對象。

+0

當定位器是由它被重新命名爲「光點」。不過,我現在已經意識到它事實上被命名爲Light_Point。所以這已被調整。 由於某種原因,腳本現在正在工作。我仍然不清楚爲什麼,所以任何解釋都是值得歡迎的! – user2153909 2013-03-10 16:10:01

+1

空間是一個對象名稱中的無效字符。 Maya會將其重寫爲下劃線_。 – joojaa 2013-03-10 16:20:52

0

我意識到這是一個較舊的帖子,但任何人都應該看到它, PyMEL具有PyNode()函數。所以如果你要通過那裏傳遞「光點」,它將返回場景中的物體。

from pymel.core import * 

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