概括
本文介绍了 init.py 和 menu.py 文件是什么以及它们如何与Nuke一起使用,如下小节所述:
更多信息
Nuke允许用户通过其 Python API(应用程序编程接口)定制大量应用程序。这包括更改Nuke的颜色、设置默认旋钮值、更改整个菜单结构和自动创建Nuke脚本。这种定制能力使Nuke在工作室流程中非常有用和强大。
大多数此类自定义都可以在Nuke的脚本编辑器中运行。例如,如果用户希望创建的所有 ColorCorrect 节点默认增益值为 2,则在脚本编辑器中运行nuke .knobDefault("ColorCorrect.gain", "2")
将为所有未来的 ColorCorrect 执行此操作在该Nuke会话中创建的节点:
但是,下次启动不同的Nuke会话时,新创建的 ColorCorrect 节点的默认增益值为 1。为了使这些默认值更改永久生效,需要为每个Nuke会话设置旋钮默认值,使用启动脚本。
启动脚本是在Nuke启动时运行的 Python 脚本,可用于运行nuke .knobDefault("ColorCorrect.gain", "2")
等命令。这意味着Nuke的任何未来会话都将创建“增益”旋钮设置为 2 的 ColorCorrect 节点。
启动脚本位置
Nuke在Nuke插件路径中列出的任何路径中搜索启动脚本。默认的Nuke 14.0v5插件路径如下:
视窗:
'C:\Users\ <用户名> \ .nuke'
'C:\Program Files\Common Files\Nuke\14.0\plugins',
'C:\Program Files\Nuke14.0v5\plugins\user'
'C:\Program Files\Nuke14.0v5\plugins\caravr'
'C:\Program Files\Nuke14.0v5\plugins\air'
'C:\Program Files\Nuke14.0v5\plugins\icons'
'C:\Program Files\Nuke14.0v5\plugins'
Linux:
'/home/ <用户名> /.nuke'
' Nuke '
'/usr/local/ Nuke 14.0v5/plugins/user'
'/usr/local/ Nuke 14.0v5/plugins/ caravr '
'/usr/local/ Nuke 14.0v5/plugins/air'
'/usr/local/ Nuke 14.0v5/plugins/icons'
'/usr/local/ Nuke 14.0v5/plugins'
苹果系统:
'/Users/ <用户名> /.nuke'
'/库/应用程序支持/ Nuke /14.0/plugins'
'/Applications/ Nuke 14.0v5/ Nuke 14.0v5.app/Contents/MacOS/plugins/user' ' '/Applications/ Nuke 14.0v5/ Nuke 14.0v5.app/Contents/MacOS/plugins/ caravr ' '/Applications/ Nuke 14.0 v5/ Nuke 14.0v5.app/Contents/MacOS/plugins/air' '/Applications/ Nuke 14.0v5/ Nuke 14.0v5.app/Contents/MacOS/plugins/icons' ' ' /Applications/ Nuke 14.0v5/ Nuke 14.0v5。应用程序/内容/MacOS/插件'
Nuke当前使用的插件路径集可以通过在脚本编辑器中运行以下命令来找到:
print(nuke.pluginPath())
Nuke按照与列出的顺序相反的顺序扫描启动脚本,因此从上面的列表中,首先扫描Nuke 14.0v5/plugins
,最后扫描<userName> /.nuke
。
其他路径也可以添加到此列表中,方法是使用nuke .pluginAddPath()
将路径添加到列表的开头,或nuke .pluginAppendPath()
将路径添加到列表的末尾。还可以通过修改NUKE _PATH环境变量来编辑插件路径列表。
INIT.PY 与 MENU.PY
Nuke在启动时调用的两个启动脚本是 init.py 和 menu.py 文件。 Nuke会在Nuke插件路径中主动搜索这些文件名,并在找到时执行。
- init.py文件在任何Nuke会话初始化时都会被调用,例如Nuke 、 Nuke Studio或在终端模式下甚至是 Frame Server 进程启动Nuke时。
- 每当启动 GUI 版本的Nuke时都会Nuke menu.py文件,因此不会像框架服务器进程那样仅在 Nuke 的终端会话中调用该文件。
在大多数情况下,自定义应该放在 init.py 文件中,因为所有类型的Nuke会话都会调用该文件,主要的例外是与 GUI 相关的任何内容,例如创建自定义菜单或调整Nuke的默认菜单。
Nuke处理插件路径时,首先以相反的顺序循环遍历整个插件列表,查找所有 init.py 文件并执行它们。接下来,它将再次循环遍历整个插件路径列表,查找 menu.py 文件并执行它们。
使用不同的启动脚本目录
尽管Nuke会扫描插件路径中的所有目录, Nuke不会自动创建 init.py 或 menu.py 文件。有些目录(例如Nuke 14.0v5/plugins
已经有一个,但对于其他路径,则需要创建它们。
大多数用户将 init.py 和 menu.py 文件添加到他们的 .nuke 目录中,这是Nuke插件路径列表中的第一个路径。由于 .nuke 目录位于用户自己的区域内,因此在其中添加 menu.py 只会影响该用户的Nuke会话,并且通常比尝试访问应用程序安装文件的权限问题要少,因此用户不太可能意外更改Nuke安装的一些东西。
注意:如果启动脚本添加到Nuke /14.0/plugins directory
,那么这些脚本将影响Nuke的所有版本,因此在这种情况下,将影响Nuke的所有Nuke 14.0v# 版本。如果在创建Nuke 14.0v5/plugins/user
目录后将启动脚本添加到该目录中,那么这些脚本将影响该特定的Nuke版本。
注意:我们不建议更改Nuke 14.0v5/plugins
路径中的 init.py 和 menu.py 文件,因为如果这些文件更改不正确, Nuke可能无法按预期运行或启动。
使用启动脚本
如前所述,启动脚本可用于对Nuke应用整个范围的自定义。对于管道环境来说,一项有用的函数是nuke .pluginAddPath()
。
处理管道的技术总监 (TD) 可以创建一系列工具并将它们添加到网络上可访问的一条路径中。添加插件路径的用户将自动从该目录加载启动脚本,从而允许 TD 调整单个 Python 文件并将工具推广到整个公司。然后,主网络启动脚本可以根据用户是谁或其他因素添加额外的插件路径,以便可以为不同的用户包含其他插件路径,以便只能访问显示特定的工具。
NUKE vs HIERO vs NUKE STUDIO启动脚本
当Nuke启动时,它会扫描Nuke插件路径中的 init.py 和 menu.py 文件并执行它们。
当Hiero启动时,它会扫描Hiero插件路径中的 init.py、menu.py 以及在插件路径中找到的Python/Startup
和Python/StartupUI
目录中的任何其他 Python 文件,然后执行它们。有关这方面的更多信息可以在这里找到: Q100373:如何向Nuke Studio和Hiero添加插件路径
当Nuke Studio启动时,它会扫描Nuke插件路径中的 init.py 和 menu.py 文件并执行它们,然后扫描Hiero插件路径中的与Hiero相同的文件,然后执行它们。
当向Hiero插件路径添加额外的 Python 文件时,应该检查这些文件,以确保它们如果是首字母缩写的,则在启动时调用时不会引起任何不良反应。而存储在Nuke插件路径中的 Python 文件不会被初始化,除非由用户代码专门调用。
延伸阅读
有关 init.py 和 menu.py 文件的更多信息可以在下面找到:
我们很遗憾听到
请告诉我们