Q100472:如何在 Windows 系统上使用 Nuke 创建批量渲染

概括

本文介绍如何在 Windows 操作系统上创建批处理文件来渲染多个Nuke脚本。这对于需要同时渲染多个脚本的用户非常有用,尤其适用于那些具有异步帧输出的脚本。


更多信息

此过程允许用户运行单个批处理文件,即可达到与打开多个命令窗口进行渲染相同的效果。此过程相当复杂,需要具备 Windows 目录结构和Nuke特定命令行操作的知识才能完成。

例子

1. 打开文本编辑器,例如记事本。

2. 开始编写批处理脚本,首先在批处理文件中添加Nuke的路径,代码如下:

path="C:\Program Files\Nuke16.0v4\" - 使用当前安装的Nuke版本。

2a. 然后,使用以下代码行实现要渲染的脚本:

start Nuke 16.0.exe -x -F 1-10 “path\to\the\script_v1.nk "

注意:启动命令会打开Nuke 15.1,然后执行( -x )脚本中所有帧的写入节点( -F )。 1-10 在名为“ test_v1.nk ”的特定脚本中。

2b. 对每个要渲染的脚本重复上述命令。请参考以下示例。

3. 使用“文件”>“另存为…”保存脚本。

4. 创建扩展名为.bat的文件(例如“my_batchrender.bat”),然后单击“保存”进行确认。

5. 双击保存位置的批处理文件以运行脚本。或者,右键单击该文件并选择“打开”。

6. 批处理文件完成后,查看指定目录以获取渲染输出。

请查看此示例批处理文件,该文件可同时渲染 3 个脚本,其中还包含一些上文未提及的其他代码行。您可以在“延伸阅读”部分查看有关这些代码行的更多信息,也可以从“示例文件”部分下载此脚本:

批处理文件示例...
@echo off
title Batch Render Nuke Scripts!
mode 45, 10

rem ======================
rem A CHOICE TO MAKE
rem ======================
echo.
echo WELCOME!
echo.
echo.

CHOICE /M "Would you like to begin rendering?"
IF ERRORLEVEL 2 GOTO :End
IF ERRORLEVEL 1 GOTO :Begin

rem ============================
rem BEGIN THE BATCH RENDER
rem ============================

:Begin
rem ======================================
rem SETTING PATH TO EXECUTE RENDER
rem ======================================

path="C:\Program Files\Nuke16.0v4\"

rem =========================
rem BEGIN SCRIPT 1 RENDER
rem =========================

start Nuke 16.0.exe -x -F 1-10 "C:\temp\test_v1.nk"

rem =========================
rem BEGIN SCRIPT 2 RENDER
rem =========================

start Nuke 16.0.exe -x -F 1-10 "C:\temp\test_v2.nk"

rem =========================
rem BEGIN SCRIPT 3 RENDER
rem =========================

start Nuke 16.0.exe -x -F 1-10 "C:\temp\test_v3.nk"


:End
title No Renders made...
cls
echo.
echo.
echo.
echo NO RENDERS MADE, NOW EXITING!
PING localhost -n 2 >NUL
exit


补充说明:

以上批处理文件示例首先设置了Nukepath ,以便程序正确初始化。然后,针对test_v1.nk、test_v2.nktest_v3.nk的具体脚本位置,将分别打开相应的命令提示符,并执行start行中指定的帧。

Nuke接受的任何命令行操作都可以在批处理文件中使用,例如使用-sro设置渲染顺序,或者使用-X命令和写入节点的名称来使用特定的写入节点。

此外,可能还需要使用名为/wait的命令来错开渲染时间。使用此命令会在前一个脚本完成后才开始执行下一个脚本。例如:

@echo off
rem ======================================
rem SETTING PATH TO EXECUTE RENDER
rem ======================================

path="C:\Program Files\Nuke16.0v4\"
 
rem =========================
rem BEGIN SCRIPT 1 RENDER
rem =========================

start /wait Nuke 16.0.exe -x -F 1-10 "C:\temp\test_v1.nk"

rem =========================
rem BEGIN SCRIPT 2 RENDER
rem =========================

start Nuke 16.0.exe -x -F 1-10 "C:\temp\test_v2.nk"

延伸阅读

请查阅我们的文档,了解有关Nuke命令行操作的更多详细信息。

有关批处理文件的更多信息,请参阅以下文章:

示例文件

我们很遗憾听到

请告诉我们