概括
本文解释了如何在Nuke脚本中使用 Switch 节点和单个 Write 节点来输出不同的结果。
Switch 节点用于在不同的输入之间切换。当用作 Write 节点的输入时,它可以让脚本通过帧调用各个输入来渲染多个结果。
更多信息
可以在 Switch 节点的“which”旋钮中使用表达式,对每个可用输入的帧进行排序,如下例所示。
此脚本可用于一次性输出多个待渲染结果。例如,假设序列中有 3 张图像出现过快。您可以使用此 Switch 节点进程来增加图像的帧数,从而通过增加帧数来减慢序列速度。
例子:
在单个 Switch 上渲染 3 个输入,每个输入 10 帧:
- 在节点图中,创建一个 Switch 节点。
- 添加 3 个常量节点。
-
将每个节点的颜色值分别更改为红色、绿色和蓝色,如下所示。
-
将常量节点连接到开关节点的输入端。现在它们应该分别显示为(红色 - 0,绿色 - 1,蓝色 - 2)。
- 双击“开关”节点以打开“属性”框。
- 右键单击“哪个”旋钮并选择 添加表达式...
- 将以下代码添加到“表达式”字段,然后按“确定”进行确认:
root.frame()%30/10
- 添加一个写入节点并将其连接到交换节点。
- 打开写入节点的属性面板,并将文件路径设置为在指定目录中渲染文件。
- 点击“渲染”并查看渲染提示。
- 将帧范围设置为 0-29,然后单击“确定”开始渲染。
- 查看输出文件夹并观察生成的图像。
根据上述渲染结果,单个 Write 节点应该输出 3 种颜色,每种颜色 10 帧,如下面的屏幕截图所示:
补充说明:
- 你可以使用此方法同时渲染多个输入,并根据 Switch 的“which”字段中的表达式对帧进行排序。以上面的示例为例,表达式 `
root.frame()%30/10可以根据可访问的输入数量进行扩展。你也可以使用表达式 `frame%30/10来实现相同的结果。
- 如果每次渲染只想渲染 1 帧,则可以使用类似
root.frame()%3的表达式(对应 3 个输入)。此外,如果每次渲染想渲染 3 帧,则可以使用表达式root.frame()%9/3。
注意:表达式%3值会根据输入值的大小而变化,以对应最大输入值数量。(例如,使用 4 个输入值时为%4输入值时为%5 ,依此类推。)请参阅下方的“延伸阅读”部分,了解有关使用百分号进行取模运算的更多信息。
延伸阅读
要查看有关交换机节点的更多信息,请访问交换机参数文档。
请查阅这份关于表达式的文档,了解表达式在Nuke中的工作原理。
有关模运算 (%) 表达式的更多信息,请参阅此处: 模运算
我们很遗憾听到
请告诉我们