预压缩
Precomp节点就像一个组节点,但其内容存储在独立的.nk文件。这使您可以将节点树的子集另存为单独的Nuke脚本,渲染此保存脚本的输出,然后将渲染的输出作为单个图像输入读回到主comp中。Precomp节点至少可以通过两种方式使用:
• 它们可用于将节点树的部分缩小为预渲染的图像输入。这样可以加快渲染时间,因为Nuke只需处理单个图像输入,而不是处理用于创建单个图像的所有节点。因为原始节点保存在单独的位置.nk脚本,您还可以维护对它们的访问权限,并可以在以后根据需要进行调整。
• 它们使协作工作流程成为可能。当一位艺术家在主合成上工作时,其他艺术家可以在使用Precomp节点导出的部分上工作。这些部分可以独立于主组件进行编辑,版本控制和管理。
您也可以通过按以下方式创建此节点Ctrl/Cmd+Shift+P在节点图上。
也可以看看组。
输入和控制
|
Control (UI) |
Knob (Scripting) |
Default Value |
Function |
|---|---|---|---|
|
Precomp Tab |
|||
|
file |
file |
N/A |
设置.nk用作precomp内容的脚本。 |
|
Reload |
reload_script |
N/A |
点击以重新加载.nk在中指定的脚本file控制。 |
|
Open |
open |
N/A |
点击打开.nk在中指定的脚本file控制新Nuke会议。 |
|
Render |
render |
N/A |
单击以呈现.nk在中指定的脚本file控制并从Precomp节点输出结果。 |
|
read file for output |
reading |
disabled |
启用后,Precomp节点将读取渲染的precomp图像,而不是计算precomp脚本的输出。 停用后, Nuke计算precomp脚本的输出。 |
|
missing frames |
on_error |
error |
设置打开输出文件出错时的行为: • error -在所有丢失的帧上显示错误消息。 • black -将所有丢失的框架替换为黑色。 • checkerboard -用棋盘格图像替换所有丢失的帧。 • read input -在任何丢失的帧上显示输入树的结果,而不是呈现的文件。 |
|
Reload |
reload_write |
N/A |
单击以从磁盘重新读取图像。 |
|
advanced |
|||
|
output node |
output |
N/A |
设置要使用的Write节点的名称,而不是precomp中的Output节点的名称。 您可以使用此控件来覆盖在precomp脚本中设置为“输出”节点的对象。 |
|
enable |
use_output |
disabled |
启用后,将在output node使用控件代替precomp中的Output节点。 |
分步指南
影片教学
NUKE与Frank Rueter的Precomp节点从铸造厂上Vimeo。
Nuke 6引入了Precomp节点或precomp工作流程,它使您能够以更有效的方式处理更复杂的脚本,以及与Nuke一起使用协作工作流程。因此,在本教程中,我们将研究其一些选项。
这里的脚本是非常简单的遮罩画。在这里的顶部,我们有一个天空,我们一直在前面添加一个实况操作面板和一些前景,直到我们完成最后的取景。我现在想做的是用Precomp节点替换顶部的天空。我将选择它,右键单击,转到其他 > 预压缩。这将弹出一个面板,提示我们输入Nuke脚本,渲染序列,通道以及如何处理原始节点。让我们从顶部开始。我想使用这些选定节点生成的Precomp脚本,我将其称为skyPrecomp而不是默认值Precomp1。默认位置是我当前脚本所在的位置,这很好。然后,我们有了中间渲染的渲染路径,我将其更改为指向渲染子目录。我会打电话给他们skyPrecomp并另存为.exr。
渲染Precomp时,我只想渲染rgb,因为我不在乎其他通道。最后,由于我们将替换Precomp节点,因此我们可以选择对当前选定的节点执行的操作。我们要保留它们还是只是将它们作为背景(添加背景)以将其保留在我们的主脚本中? 我们是否要仅保留它们(不用找了)还是我们想要删除他们? 由于我想清理我的主要伴奏,因此我将其删除。最后,当我击中好,它将生成skyPrecompV1脚本,在这种情况下,我们将覆盖磁盘上已经存在的脚本。最后一步,Nuke提示我们选择要用作Precomp输出的节点。这将被输入到主音色的输入中。因此,Crop24是我们第二次查看的节点,而这正是我们需要的节点,因此我将好。
现在,我的所有节点已被单个Precomp节点替换,这使我的主要comp变得更整洁。在面板中,您可以看到此Precomp节点引用的是哪个Nuke脚本,如果我们想查看此外部脚本的内部,只需点击打开。这将打开一个新的Nuke实例,并向我们显示我们刚刚导出到Precomp脚本中的节点。在我们指定为Precomp输出的节点的底部,我们将看到用我们定义的Write节点skyPrecomp.exr序列和通道设置为rgb。这就是我们在Python面板中所做的,然后是一个Output节点。Precomp脚本中并不严格要求Output节点,但是最好使用它,因为它可以使Precomp脚本中的哪个节点馈入主comp变得非常明显。因此,为了说明它现在是如何工作的,例如,我将在Precomp中调出Viewer并停用所有“成绩”节点。保存此内容,然后回到我的主要伴奏中重装,我们将看到外部Precomp脚本的更改反映在我们的主comp中,因为它已通过此节点拉入。您还将注意到,我们得到了这些输入管道。这是因为创建Precomp时,它的工作方式与创建Group节点的方式非常相似,这意味着Precomp中的每个未连接节点或您的节点选择都将获得一个Input节点。我想摆脱这些,因为我们不需要任何输入。我将选择它们,转到编辑 > 选择类似 > 类,这将选择脚本中的所有Input节点,而我将删除他们。再次保存,现在如果我重新加载脚本,这些输入管道将消失,并且现在一切都很好并整齐了。
回到Precomp,让我们重新激活“坡度”并将此月亮添加到右上角。让我对我的Write节点进行版本控制。我会去Alt键+向上箭头要么编辑 > 节点 > 文件名 > 版本升级。现在我的Write节点是02版本,我将继续保存脚本的新版本: 文件 > 保存新版本。因此,我们的skyPrecomp也成为版本2。在我们的主要版本中,我们可以使用相同的版本控制,所以我将Alt键+向上箭头在我的Precomp上,它将更改其版本号,现在指向版本2脚本。
因此,您将看到我们现在可以轻松地将其移交给哑光画家以继续在天空上工作。每次他保存时,我们都可以重新加载,并在主要伴奏中获取他的最新作品。另外,如果由于实际上是实时处理外部树而变得太沉重,我们总是可以选择渲染树进入其输出。我只渲染第一帧好,渲染完成后,该选项读取文件以输出自动检查自己。Precomp节点将变为绿色,并且自动标签现在将告诉您它正在从磁盘而不是Nuke脚本读取映像文件。显然,这将使您的主要comp运行更快。
现在,让我们回到Precomp脚本。我们希望在主脚本中保持对月亮的控制,因此我将从此处剪切该月亮并将其粘贴到我们的主要部件中。为了将月亮与我们的主脚本结合起来,我们再次需要输入管道。由于我们删除了它们,因此我们必须返回并创建一个新输入。我将在Precomp脚本中附加一个Input节点作为月球的占位符,然后再次保存。回到我们的主要伴奏中,我会击中重装我们将看到两件事。首先,由于Precomp脚本已在磁盘上更改,因此我们将收到错误消息,因此其渲染文件可能已过期。这就是这个错误的意思。因此,您应该取消选中读取文件以输出为了确保您再次从磁盘读取最新的Precomp脚本,并且现在我们添加了输入节点,我们还获得了新管道。因此,现在我们可以将月亮插入此处,并在主要音像中对其进行控制,但是根据此输入在Precomp脚本中的位置,它已与Precomp脚本结合在一起。这样,您可以将Precomp和主comp交织在一起,并且仍然可以创建协作工作流。
完成所有这些操作后,假设我们需要开始一个新镜头,并且想从一个已经存在的Precomp脚本开始。我们需要做的就是创建一个未选择任何内容的Precomp节点,如果未选择任何内容,那么我们得到的只是一个空的Precomp节点。现在,我们可以手动浏览已建立的Precomp,就可以了。现在,我们可以使用此Precomp节点启动一个新脚本。