我想在节点上添加一个旋钮,但我想确保它始终显示在特定选项卡中。
让我们假设目标节点有两个标签,'A'和'B'很久以前就已经创建了。
target_node = nuke.thisKnob()
taget_node.addKnob(extra_knob)
如何在标签'A'而不是'B'中创建extra_knob?
当我在文本编辑器中打开.nk文件时,旋钮似乎有一个索引,但我在文档中找不到任何类型
答案 0 :(得分:3)
不确定这是否仍然相关,但提供答案以帮助遇到此问题的其他人。
控制用户旋钮的顺序是确保它们在面板上正确显示的唯一方法。 .nk
会按照您在node = nuke.selectedNode()
# Find out where the "User Tab" is, this is the start of user knobs
user_knob_index = 35
user_knob = node.knob(user_knob_index)
user_knobs = node.allKnobs()[(user_knob_index + 1):]
# Clear out all the user knobs
for knob in user_knobs:
node.removeKnob(knob)
color_knobs = [i for i in user_knobs if 'color' in i.name()]
di_knobs = [i for i in user_knobs if 'di' in i.name()]
# Create new tab knobs
color_tab = nuke.Tab_Knob('color')
di_tab = nuke.Tab_Knob('di')
# Add the color tab and color knobs
node.addKnob(color_tab)
for knob in color_knobs:
node.addKnob(knob)
# Add the di tab and di knobs
node.addKnob(di_tab)
for knob in di_knobs:
node.addKnob(knob)
文件中指定的顺序返回节点的旋钮。您可以使用"用户" tab旋钮作为用户旋钮开始位置的分隔符(您不应该尝试编辑非用户旋钮的顺序)。您需要添加到选项卡的任何节点都需要在该选项卡旋钮之后添加。
这是一个采用现有节点的示例,将旋钮重新排序到标签中:
d[n] = [d[n], newValue]