2016-09-23 208 views
0

nuke.allNodes()可以過濾一個特定的節點類,即nuke.allNodes(「Transform」)。但如何做到這一點,如果我想讓它過濾更多?有些解決?如何在for循環中使用nuke.allNodes()遍歷多個nuke節點類?

或許將它們放置在:VAR = []

但我怎麼訪問可以說motionblur的例子(這個劑量無效)值:

for i in var: 
    print i.knob("motionblur").value() #Transform nuke node class 
    print i.knob("samples").value() #ScanlineRender nuke node class 

謝謝。

+0

迭代Nuke節點類型列表並調用每種類型的函數?我沒有看過Nuke的API,但也許有一種方法可以支持這一點。 – ospahiu

+0

我剛開始學習python,但我在互聯網上搜索了幾天,並在Nuke的幫助文檔中找到。我找不到任何東西。也許我不知道要搜索什麼......或者是否有一些解決方法? – masky007

回答

0

我有點困惑,因爲在你的代碼中你有i.knob("motionblur").knob()中的字符串應該是旋鈕的名稱,而不是節點類型的名稱。

我會建議遍歷所有節點並檢查每個節點的類型。然後在該類節點上做任何你需要的。

for i in nuke.allNodes(): 
    if i.Class() == "MotionBlur": 
     #DO SOMETHING 
    elif i.Class() == "Transform": 
     #DO SOMETHING 

如果你對兩種類型的節點都做同樣的事情,你可以合併兩個列表並迭代它。

n = nuke.allNodes("MotionBlur") 
n.extend(nuke.allNodes("Transform")) 
for i in n: 
    #DO SOMETHING TO BOTH TYPES 

我不知道你在做什麼,所以這可能不是最有效的方法。