概括
本文解释了如何在Nuke Studio中查找可用的导出令牌列表,并添加额外的令牌,使用户能够进一步自定义导出器中使用的导出路径。
更多信息
Nuke Studio导出器中的导出标记是特殊的关键字,它们会根据所选的导出任务解析为一个字符串。例如, {shot}导出标记会返回要导出的镜头名称,并且该标记仅在导出镜头时可用。其他标记,例如{user}标记(返回使用导出器的用户名称),可以在导出序列、镜头或片段时使用。
可用令牌列表可通过以下方式查看:
- 将鼠标悬停在路径模板上并阅读工具提示
- 右键单击活动路径模板,然后选择“选择关键字…”
- 请查看我们的文档: 使用本地预设和项目预设
添加额外代币
可以使用 Python 添加额外的令牌,这可以使它们在特定环境中(例如生产管道中)更好地工作。
为此,需要添加解析器,解析器会针对特定的关键字调用,并返回要在最终路径中使用的字符串,以代替标记。
可以通过重写以下实例来添加解析器:
hiero .core.TaskPresetBase.addUserResolveEntries
如果您覆盖主hiero .core.TaskPresetBase.addUserResolveEntries ,则解析器将添加到所有导出处理器。
但是,如果您覆盖了其他addUserResolveEntries实例之一,例如hiero .exporters.FnShotProcessor.ShotProcessorPreset.addUserResolveEntries ,则解析器只会添加到镜头导出处理器中。
添加全局导出令牌
以下是如何添加全局导出令牌的示例:
import hiero .core
def global_addUserResolveEntries(self, resolver):
resolver.addResolver("{proj}", "First four characters of the project.", lambda keyword, task: task.projectName()[:4])
# This token can be applied to ANY export process, so add it to the base class
hiero .core.TaskPresetBase.addUserResolveEntries = global_addUserResolveEntries
此示例通过调用task.projectName()[:4]返回项目的完整名称,然后使用 Python 字符串语法仅返回项目名称的前 4 个字符。
addResolver()函数需要三个参数:标记的名称(关键字)、标记的描述(将显示在工具提示和选择关键字对话框中)以及解析器(即返回将在路径中用于代替标记的字符串的函数)。
添加特定射击导出令牌
以下是如何添加镜头特定导出标记的示例:
from hiero .exporters.FnShotProcessor import ShotProcessorPreset
def shot_addUserResolveEntries(self, resolver):
def plateWidth(task):
trackItem = task._item
media = trackItem.source().mediaSource()
return str(media.width())
resolver.addResolver("{platewidth}", "Returns the width of the source plate", lambda keyword, task: plateWidth(task))
resolver.addResolver("{plateheight}", "Returns the height of the source plate", lambda keyword, task: str(task._item.source().mediaSource().height()))
# This token will only be applied to the Shot Processor
ShotProcessorPreset.addUserResolveEntries = shot_addUserResolveEntries
此示例返回源素材的宽度/高度字符串。宽度是通过调用plateWidth()函数获取的,该函数返回媒体源的 ` .width()方法的字符串。高度的获取方式相同,但只需一行代码即可完成,无需调用其他函数。由于两个转轮都添加到了shot_addUserResolveEntries()函数中,因此在重写addUserResolveEntries函数时,它们都会被添加到镜头导出处理器中。
在脚本编辑器中运行上述示例会将这些标记添加到该Nuke Studio会话的导出器中。要检查标记是否正常工作,请将标记添加到路径中,并在导出器中检查路径预览,此时会返回全高清素材的分辨率:
您可以通过将令牌添加到.nuke/Python/Startup目录下的 Python (.py) 文件中,将其永久添加到Nuke Studio设置中。如果.nuke目录下不存在/Python/Startup目录,您可能需要先创建它们。
延伸阅读
有关Nuke Studio导出系统的更多信息,请参阅我们的文档:
出口系统
有关查找.nuke目录的信息请参见此处:
Q100048: Nuke目录位置
有关 .nuke/ Python/Startup目录的信息可以在这里找到:
Q100142:如何在Nuke Studio启动时执行Hiero Python 代码
我们很遗憾听到
请告诉我们