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

如何在Nuke脚本文件中保存自定义工具设置与指定节点专属数据

Nuke脚本中存储自定义用户数据的最优方案

你提到的两类需求都可以通过Nuke原生的自定义旋钮(Custom Knob)功能实现,这是目前兼容性最好、最稳定的方案,不需要依赖任何第三方工具。

1. 存储全局通用工具数据

直接使用Nuke脚本默认自带的root节点存储全局数据即可,root节点的所有属性都会随.nk文件一同保存,完全满足通用工具数据和脚本绑定的需求。

  • 支持存储字符串、数值、布尔、列表等所有Nuke原生knob支持的数据类型,复杂结构化数据(字典、嵌套列表等)可以序列化为JSON字符串存储
  • 示例代码如下:
import nuke
import json

# 保存全局工具配置到root节点
def save_global_config(config_data):
    root = nuke.root()
    # 不存在对应自定义knob时先创建,设为隐藏避免用户误修改
    if not root.knob("my_tool_global_config"):
        config_knob = nuke.String_Knob("my_tool_global_config", "全局工具配置")
        config_knob.setVisible(False)
        root.addKnob(config_knob)
    # 序列化数据后写入
    root["my_tool_global_config"].setValue(json.dumps(config_data))

# 读取全局工具配置
def load_global_config():
    root = nuke.root()
    config_knob = root.knob("my_tool_global_config")
    if not config_knob:
        return {}
    try:
        return json.loads(config_knob.value())
    except:
        return {}

2. 为指定节点存储专属额外数据

逻辑和全局存储一致,直接给目标节点添加自定义knob即可,数据会和节点绑定,节点复制、移动、删除时自定义数据也会同步跟随操作,不会丢失。

  • 示例代码如下:
import nuke
import json

# 给指定节点写入自定义数据
def save_node_custom_data(node, data, knob_name="my_node_custom_data"):
    if not node:
        return
    # 不存在对应knob时先创建
    if not node.knob(knob_name):
        data_knob = nuke.String_Knob(knob_name, "节点自定义数据")
        data_knob.setVisible(False)
        node.addKnob(data_knob)
    node[knob_name].setValue(json.dumps(data))

# 读取指定节点的自定义数据
def load_node_custom_data(node, knob_name="my_node_custom_data"):
    if not node or not node.knob(knob_name):
        return {}
    try:
        return json.loads(node[knob_name].value())
    except:
        return {}

注意事项

  • 自定义knob命名建议添加唯一前缀(比如你开发的工具名称缩写),避免和其他第三方插件的自定义knob重名冲突
  • 复杂结构化数据优先使用JSON序列化,不要使用pickle,避免跨Nuke版本、跨平台读取失败,安全性也更高
  • 如果需要让用户可以在节点属性面板直接修改自定义数据,不需要把knob设为隐藏,也可以根据数据类型选择对应的knob类型(比如数值用Double_Knob,布尔值用Boolean_Knob),不需要统一使用字符串类型knob
  • 该功能是Nuke官方原生支持的能力,所有主流Nuke版本都兼容,不会因为版本升级出现数据丢失问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 19:39:02