如何将写入节点附加到读取节点?

How to attach Write node to Read node?

好吧,我才刚刚开始接触 Nuke 的 API。这里我导入素材:

nuke.nodes.Read(file="E:/Final/Practice/MVI_8411.mov", name="Footage")

选择了素材(并存储在变量中):

footage = nuke.toNode("Footage")

当我将它通过管道传输到 Write 节点时,它不起作用:

nuke.createNode("Write")

虽然我创建了一个写入节点,但它没有连接到读取节点。我希望它能连接。 toNode() 函数不是在 非 GUI 模式下选择节点吗?

特别注意节点图中的 classes 节点及其名称。在下面的示例中,Read 是一个 class,Read1 是一个名称。

所以试试这个脚本来连接你的 Write 节点:

import nuke as nk
import nukescripts

nk.nodes.Read(file="E:/Final/Practice/MVI_8411.mov")
nk.toNode("Read1").setSelected(True)
nk.createNode("Write")
nukescripts.connect_selected_to_viewer(0)

或者这样:

import nuke as nk
import nukescripts    

nk.createNode("Read", "file E:/Final/Practice/MVI_8411.mov name footage")
nk.toNode("footage").setSelected(True)
nk.createNode("Write")
nukescripts.connect_selected_to_viewer(0)

要找出 class 节点属于什么,创建一个 CheckerBoard、select 节点,然后按 i 键盘上的快捷方式。您会看到它的 class 是 CheckerBoard2 并且它的名称是 CheckerBoard1.

如果您使用 class 2 的节点,您的行应该如下所示:

nk.createNode("CheckerBoard2")
nk.toNode("CheckerBoard1").setSelected(True)
nk.createNode("Write")

或者你的语法是这样的:

nk.nodes.CheckerBoard2(name="board")
nk.toNode("board").setSelected(True)
nk.createNode("Write")

...或者就这样:

nk.createNode("CheckerBoard2", "name board")
nk.toNode("board").setSelected(True)
nk.createNode("Write")
readNode = nuke.nodes.Read( file = "E:/Final/Practice/MVI_8411.mov", name = "Footage" )    
nuke.nodes.Write( inputs = [ readNode ] )

您也可以将nuke.nodes.Read 语句直接放在[] 之间以避免临时变量。这样看起来更干净