1

我想向节点添加一个旋钮,但我想确保它始终显示在特定选项卡内。

假设目标节点有两个选项卡,“A”和“B”,它们是很久以前创建的。

target_node = nuke.thisKnob()
taget_node.addKnob(extra_knob)

我怎样才能在选项卡'A'而不是'B'中创建extra_knob?

当我在文本编辑器中打开 .nk 文件时,旋钮似乎有一个索引,但我在文档中找不到任何类似的东西

4

1 回答 1

4

不确定这是否仍然相关,但提供答案以希望帮助遇到此问题的其他人。

控制用户旋钮的顺序是真正保证它们正确显示在面板上的唯一方法。将按照您在文件node.allKnobs()中指定的顺序返回节点的旋钮。.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)
于 2016-12-20T18:24:25.780 回答