You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nuke中如何用Python按名称选择节点并获取控件参数

Nuke脚本:按名称选中Grade节点并获取控件参数

1. 按名称定位目标Grade节点

如果你知道目标Grade节点的准确名称(比如叫Grade_ColorCorrect),直接用nuke.toNode()快速获取节点对象:

# 替换成你的目标Grade节点名称
target_node_name = "Grade_ColorCorrect"
g = nuke.toNode(target_node_name)

# 验证是否找到节点,避免报错
if not g:
    print(f"找不到名称为{target_node_name}的节点")

如果不确定名称,也可以遍历所有Grade节点筛选:

# 遍历所有Grade节点
for node in nuke.allNodes("Grade"):
    # 匹配你要找的节点名称关键词或全名
    if node.name() == "Grade_ColorCorrect":
        g = node
        break

2. 选中目标节点

拿到节点对象后,直接调用setSelected()方法选中它,同时可以清空其他节点的选中状态:

# 清空所有已选中的节点
nuke.selectAll()
nuke.invertSelection()

# 选中目标节点
g.setSelected(True)

3. 获取并打印控件参数

改进你原来的代码,不仅打印控件名称,还可以输出对应的值,更直观:

if g:
    # 方法1:按索引遍历旋钮
    for i in range(g.getNumKnobs()):
        knob = g.knob(i)
        print(f"控件名称: {knob.name()}, 当前值: {knob.value()}")
    
    # 方法2:更简洁的遍历方式(推荐)
    print("\n--- 更简洁的遍历输出 ---")
    for knob_name, knob in g.knobs().items():
        # 过滤掉一些系统默认的隐藏控件,只显示常用参数
        if knob.visible():
            print(f"{knob_name}: {knob.value()}")

完整示例代码

# 1. 定位目标Grade节点
target_node_name = "Grade_ColorCorrect"
g = nuke.toNode(target_node_name)

if not g:
    print(f"错误:找不到名称为{target_node_name}的Grade节点")
else:
    # 2. 选中目标节点
    nuke.selectAll()
    nuke.invertSelection()
    g.setSelected(True)
    
    # 3. 打印控件参数
    print(f"=== 节点 {g.name()} 的控件参数 ===")
    for knob_name, knob in g.knobs().items():
        if knob.visible():
            print(f"{knob_name}: {knob.value()}")

内容的提问来源于stack exchange,提问作者sdg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 02:02:20