Q100273:如何在 Nuke 终端会话中设置路径替换

关注

症状

您已在Nuke中的Edit > Preferences...下设置了路径替换,但在命令行渲染或 Python 终端模式期间文件路径未正确替换。您的路径替换如下所示:

路径Subs.png


原因

文件路径可能无法在命令行渲染或 Python 终端模式下正确替换,因为当Nuke在 GUI 模式之外运行时不会加载首选项。

终端模式(无 GUI)允许您在不启动 GUI 的情况下输入 Python 命令。
在此模式下会显示>>>命令提示符。命令行模式(批处理模式)允许您在终端中运行命令来渲染Nuke脚本(没有 GUI)。
请参阅有关命令行操作的Nuke在线帮助以获取更多信息。

解决

要解决此问题,您可以使用命令行参数--remap ,它将获取路径替换对的列表,并且仅适用于活动的Nuke会话,或者在init.py文件中设置filenameFilter回调以使其在所有Nuke会议。

当前Nuke会话

以下是在终端模式下运行Nuke时如何使用该标志的示例:

nuke -t --remap "X:/path,Y:,A:,B:/anotherpath"

在哪里:

  • nuke引用适当的Nuke可执行文件安装位置:

    Windows :C:\ Program Files \ Nuke14.0v5 \ Nuke14.0.exe
    OSX :/Applications/ Nuke 14.0v5/ Nuke 14.0v5.app/Contents/MacOS/ Nuke 14.0
    Linux :/usr/local/ Nuke 14.0v5/ Nuke 14.0

  • 任何以X:/path开头的路径都会转换为以Y:开头。
  • 任何以A:开头的路径都会转换为以B:/anotherpath开头。

要替换不同操作系统之间的路径,您的命令将如下所示:

nuke -t --remap "/home/project/shot/,C:/project/shot"

注意:路径映射仅应用于当前Nuke会话,并且不会影响运行Nuke GUI 时使用的 Preferences.nk 文件。


多个Nuke会话

要使路径替换在多个Nuke会话中持续存在,您可以使用filenameFilter回调。以下示例展示了如何针对与上一示例类似的场景进行设置:

import nuke 

def myFilenameFilter(filename):
filename = filename.replace( 'X:/path', 'Y:/' )
filename = filename.replace( 'A:/', 'B:/anotherpath' )

return filename

nuke .addFilenameFilter(myFilenameFilter)

要在所有终端会话中执行此代码,您需要将该代码添加到init.py 文件中。

有关filenameFilter回调的更多信息也可以在Nuke Python 开发人员指南中找到。

    我们很遗憾听到

    请告诉我们