Q100457:如何使用单个 Write 节点渲染多个 Switch 输入

概括

本文解释了如何在Nuke脚本中使用 Switch 节点和单个 Write 节点来输出不同的结果。

Switch 节点用于在不同的输入之间切换。当用作 Write 节点的输入时,它可以让脚本通过帧调用各个输入来渲染多个结果。


更多信息

可以在 Switch 节点的“which”旋钮中使用表达式,对每个可用输入的帧进行排序,如下例所示。

此脚本可用于一次性输出多个待渲染结果。例如,假设序列中有 3 张图像出现过快。您可以使用此 Switch 节点进程来增加图像的帧数,从而通过增加帧数来减慢序列速度。

例子: 

在单个 Switch 上渲染 3 个输入,每个输入 10 帧

  1. 在节点图中,创建一个 Switch 节点。
  2. 添加 3 个常量节点。
  3. 将每个节点的颜色值分别更改为红色、绿色和蓝色,如下所示。

  1. 将常量节点连接到开关节点的输入端。现在它们应该分别显示为(红色 - 0,绿色 - 1,蓝色 - 2)。

  1. 双击“开关”节点以打开“属性”框。
  2. 右键单击“哪个”旋钮并选择 添加表达式...
  3. 将以下代码添加到“表达式”字段,然后按“确定”进行确认: root.frame()%30/10



  4. 添加一个写入节点并将其连接到交换节点。
  5. 打开写入节点的属性面板,并将文件路径设置为在指定目录中渲染文件。
  6. 点击“渲染”并查看渲染提示。
  7. 将帧范围设置为 0-29,然后单击“确定”开始渲染。
  8. 查看输出文件夹并观察生成的图像。

根据上述渲染结果,单个 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中的工作原理。

有关模运算 (%) 表达式的更多信息,请参阅此处: 模运算

    我们很遗憾听到

    请告诉我们