2016-09-23 205 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 

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