1

当我使用 The Foundry NUKE 时,我一直在尝试学习一些 Python 来改进我的工作流程。我一直在进行各种覆盖,以在创建时更改节点。其中一个是StickyNote我之前有过这个覆盖:

def setColor(R,G,B):
    return int("%02x%02x%02x%02x" % (R,G,B,1),16)

def StickyNoteOverride():
    nuke.thisNode()["tile_color"].setValue(setColor(R=(255*.298),G=(255*.298),B=(255*.298)))
    nuke.thisNode()["note_font_size"].setValue(60)
    nuke.thisNode()["note_font_color"].setValue(setColor(R=(255),G=(255*.624),B=(255*.0)))
    nuke.thisNode()["note_font"].setValue("Deja Vu Sans Bold")

它给了我预期的结果,但后来我试图让它在创建时清除标签为空。

所以我在底部添加了这一行:

nuke.thisNode()["label"].setValue("")

并且它没有将标签的值设置为空。

所以我把它改了一下:

def StickyNoteOverride():
    noteNode = nuke.createNode("StickyNote")
    noteNode["tile_color"].setValue(setColor(R=(255*.298),G=(255*.298),B=(255*.298)))
    noteNode["note_font_size"].setValue(60)
    noteNode["note_font_color"].setValue(setColor(R=(255),G=(255*.624),B=(255*.0)))
    noteNode["note_font"].setValue("Deja Vu Sans Bold")
    noteNode["label"].setValue("")

现在这个脚本创建了具有预期值设置的节点,但对我来说,它创建了 200 个节点,直到它出错。menu.py所有这些都在我的文件底部被解决/调用:

nuke.addOnUserCreate(StickyNoteOverride, nodeClass = "StickyNote")

我正在寻找一些帮助来找出在创建时将标签添加为空的方法。

谢谢,希望这是可以理解的。

4

1 回答 1

0

试试这个(它肯定适用于Script Editor):

import nuke
import nukescripts

m = toolbar.addMenu("Other", "ToolbarOther.png")
m.addCommand("StickyNote", "nukescripts.toolbar_sticky_note()", "#n", icon="StickyNote.png")

def toolbar_sticky_note():
   sticky = nuke.createNode("StickyNote")     
   sticky.knob("label").setValue("")     
   sticky.knob("selected").setValue(False)

toolbar_sticky_note()

试试这个(它适用于menu.py):

m = toolbar.addMenu("Other", "ToolbarOther.png")
m.addCommand("StickyNote", "nuke.createNode('StickyNote')", "#n", icon="StickyNote.png")

或者这个语法:

m = toolbar.addMenu("Other", "ToolbarOther.png")
m.addCommand("StickyNote", "nuke.createNode('StickyNote', 'label <H6>test</H6> note_font Phosphate')", "#n", icon="StickyNote.png")
于 2017-07-20T18:40:34.390 回答