好吧,我刚刚开始使用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 模式中的节点吗?
答案 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
语句直接放在[]
之间以避免临时变量。它看起来更干净。