2

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

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

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

footage = nuke.toNode("Footage")

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

nuke.createNode("Write")

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

4

2 回答 2

1

特别注意节点图中的节点类别及其名称。在下面的例子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)

要找出节点所属的类,例如创建 a 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")
于 2017-08-14T06:30:27.113 回答
0
readNode = nuke.nodes.Read( file = "E:/Final/Practice/MVI_8411.mov", name = "Footage" )    
nuke.nodes.Write( inputs = [ readNode ] )

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

于 2017-10-02T14:50:47.407 回答