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
相关产品推荐
相关产品推荐

