1

nuke.allNodes() 可以过滤一个特定的节点类,即 nuke.allNodes("Transform")。但是如果我想让它过滤更多怎么办?一些工作?

也许把它们放在: var = []

但是我如何访问让我们在一个例子中说运动模糊值(这不起作用):

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

谢谢你。

4

1 回答 1

2

我有点困惑,因为在你的代码中你有i.knob("motionblur"). in 中的字符串.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

我不知道您具体要达到什么目的,因此这可能不是最有效的方法。

于 2016-09-27T23:40:13.693 回答