Nuke学习笔记
Nuke 脚本编辑窗口相关快捷键和操作
tab键 自动代码补全 输入部分脚本后,可获取相关的方法
Edit > Preferences > ScriptEditor > echo python commands to output window 将输出常用操作的 Nuke Python API 代码显示在代码执行结果显示区。
搭建 Pycharm IDE 开发环境
在 Pycharm 中新建一个项目,用于开发Nuke插件,必须使用Nuke本身的Python编译器 "C:\Program Files\Nuke版本\python.exe",该python编译器拥有完整的Nuke开发环境。
关于 nukescripts 模块的使用,需要将“C:\Program Files\Nuke版本号\plugins”加入搜索路径
关于 Pyside2 模块的使用,需要将“C:\Program Files\Nuke版本号\pythonextensions\site-packages”加入搜索路径
配置好上面的环境后执行代码会发现报错:缺少一个“_nuke” 模块。这个模块在这里 "C:\Program Files\Nuke12.2v2\lib\site-packages\nuke.pyd" 中,由于这个文件和上面的 nukescripts 模块同级目录的nuke模块重名,导致不能加载这个nuke.pyd,因此会报这个错,如何解决呢?
- 方法一.从搜索路径中去掉 “C:\Program Files\Nuke版本号\plugins”,但nukescripts模块的会缺少代码补全(加载完nuke.pyd后,会自动加载nuke和nukescripts模块,因此在执行代码时不会报这两个模块的错).
- 方法二.在pycharm中将编辑nuke代码的Python解释器和运行nuke代码的python解释器分开,在编写的nuke代码的时候,将项目中python interpreter中设置的python解释器设置为普通的python解释器,可以在其搜索路径中加入我们想要的搜索路径,然后在运行nuke代码的时候,在Run/Debug configuration中设置的python解释器设置为带有nuke环境的python解释器即可。
此环境可能无法正常运行Pyside2相关的代码,需要在nuke中执行(详情见下一节)。
Nuke 命令行模式
"C:\Program Files\Nuke12.2v2\python.exe" "D:\test.py"
运行脚本需使用Nuke的Python解释器,若后台调用脚本,可使用subprocess方法切换至Nuke本身的Python解释器。
若要使用 Pyside2 模块,需要在通过nuke主程序 nuke.exe 使用参数 -t 就可以运行Pyside2模块。
"C:\Program Files\Nuke12.2v2\nuke.exe" -t "D:\test.py"
但 -t 参数不能获取到 QApplication 类,只能获取到 QCoreApplication 类(QApplication是QCoreApplication的子类),所以要通过 --tg 参数来获取 Pyside2 模块创建窗口所需要的 QApplication 类。
"C:\Program Files\Nuke12.2v2\nuke.exe" --tg "D:\test.py"
nuke命令行语法:
nuke.exe <\option> [<\argv>] <\script> [<\range>]
使用不同类别的主程序常用参数:- --nukex
- --studio
- --nc
- --nukeassist
可以在Windows环境下使用doskey创建快捷键(只在当前窗口有效),可以使用PATH环境变量,并写在一个bat脚本中:
doskey nukex = "C:\Program Files\Nuke12.2v2\nuke.exe" --nukex $*
效果等于:
“C:\Program Files\Nuke12.2v2\nuke.exe” -- nukex <\option> [<\argv>] <\script> [<\range>] = nukex <\option> [<\argv>] <\script> [<\range>]
一些常用的参数:
- -t 适用于纯命令行脚本
- –tg 会产生一个 QApplication 实例,用于执行 Pyside2 的Gui相关脚本
- -x <\scriptname> 渲染名为 \scriptname 的nuke工程中所有激活的write节点
- -X<\nodename> 仅渲染指定名的\nodename的write节点
- -F 指定帧范围
- –cont 出错后继续渲染
- –sro 按顺序依次渲染节点
- -f 以全尺(full resolution)的方式打开nuk工程
- -p 和-f相对,以 proxy 的方式打开nuke工程
- -v 打开指定的图像文件,如果是视频,还需要跟上帧范围(文件路径使用正斜杠,不能使用反斜杠)
- –pause 打开nuke工程时暂停 Viewer 初始化
- -P 显示每个节点的资源占用情况
- -Pf<\filename> 将每个节点的资源占用情况写入名为 \filename 的xml文件中
- –multigpu 启用多gpu支持
- –gpulist 列出当前系统可用的GPU及其索引号
- –gpu ARG 使用由索引号ARG指定的GPU,在终端模式下启动GPU加速
- –safe 安全模式,启动nuke不加载 .nuke、NUKE_PATH及OFX插件
- -m # 指定线程数
- -n 关闭节点postage stamps的预览显示
- -q 关闭终端输出
- -i 使用nuke_i授权,可与 -x 和 -t 连用,写成 -ti 或 -xi,默认情况下使用nuke_r授权,但有些操作需要使用nuke_i授权。
- –remap<\pathPair> 仅能在命令行模式下使用,在当前会话中设置路径映射,要求参数为一对或多对路径拼成的字符串,用逗号分隔