如何将Write节点连接到Read节点?

时间:2017-08-14 02:17:36

标签: python nuke

好吧,我刚刚开始使用Nuke的API。在这里我导入镜头:

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

选择了镜头(并存储在变量中):

footage = nuke.toNode("Footage")

当我将它传递给Write节点时,它不起作用:

nuke.createNode("Write")

我创建了一个Write节点,但它没有连接到Read节点。我期待它连接。不是toNode()函数选择非GUI 模式中的节点吗?

2 个答案:

答案 0 :(得分:1)

在Node Graph中特别注意节点类及其名称。在以下示例中,Read是一个类,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)

要查找节点所属的类,请创建一个CheckerBoard,然后选择它并按键盘上的 i 快捷方式。您会看到其班级为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")

答案 1 :(得分:0)

readNode = nuke.nodes.Read( file = "E:/Final/Practice/MVI_8411.mov", name = "Footage" )    
nuke.nodes.Write( inputs = [ readNode ] )

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