python - 如何在 for 循环中使用 nuke.allNodes() 迭代多个 nuke 节点类?

标签 python nuke

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

谢谢。

最佳答案

我有点困惑,因为在你的代码中有 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

我不知道您具体想要实现什么目标,所以这可能不是最有效的方法。

关于python - 如何在 for 循环中使用 nuke.allNodes() 迭代多个 nuke 节点类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39670522/

相关文章:

Nuke 中的 Python 多处理导致 Nuke 挂起

python - 使用 NUKE API 缓存脚本

python - 将多个参数传递给 scons builder 命令

python - Nuke Viewer 设置帧范围问题

python - 一点点编程数学

python - python3 : No module named release 上的 MySQLdb

python - 我尝试通过pip install安装elasticsearch helpers并收到以下错误。先决条件是什么?

python - 在 Pandas 数据框中填充一列字符串

python - 比较两张图片以确定里面是否有相同的物体