概括
当设置具有多个输入的节点(例如 Merge、Switch 或VariableSwitch节点)时,重命名每个输入端口以指示上游连接到其的节点类型可能会很有用。但是,手动重命名端口可能会很乏味。
本文旨在根据Q100372:使用 Python 重命名输入和输出端口中给出的示例进行构建,并提供通过用户定义的类别将输入端口重命名为合并节点的功能。
更多信息
构建Katana模板时,如果输入端口显示它们连接到上游的节点的类别,则更容易理解模板的流程。
使用合并节点的默认行为时,创建的输入被命名为 i0、i1、i2 等。此命名约定不提供有关上游连接节点的任何信息。
您可以创建一个自定义 Python 设置,而不是使用 Merge 节点的默认端口名称,该设置根据连接的节点的类别重命名 Merge 节点输入端口(例如,连接到 CameraCreate 节点时,Merge 节点输入端口将是“ Camera”,对于 NetworkMaterial 节点,它将是“Material”)。
例如,将功能添加到合并节点可以使用以下输入端口名称,这将允许更轻松地理解上游设置:
如上图所示,合并节点的输入端口根据连接到每个输入的节点的类别进行重命名。
示例脚本
本文附带了一个 Python 示例脚本,可以根据您的工作室需求下载和修改该脚本。
要使脚本正常工作,您需要将附加文件添加到.katana/Shelves文件夹位置,例如:
Windows: C:\Users\USERNAME\.katana\Shelves\RenameShelf\Type_Merge.py
Linux: /mnt/nethome/users/USERNAME/.katana/Shelves/RenameShelf/Type_Merge.py
有关 Shelf 脚本的更多信息,请查看以下文章:
Q100401:如何在Katana中创建货架物品
Q100402:如何在Katana中编辑和删除架子上的物品
使用脚本
要在Katana中测试此自定义脚本,您需要创建一系列节点(例如 CameraCreate、PonyCreate 和 Material 节点)。
创建节点后,选择所有节点并使用键盘快捷键Ctrl+M使用自定义架项脚本合并节点。或者,也可以通过转到“帮助”旁边的齿轮图标并在“Shelf”下选择“RenameShelf”架子操作和“Type_Merge ”架子项来访问该脚本。
如上例图所示,合并节点输入端口将按它们所连接的节点类别命名,如架子项脚本中所定义。
该工具还能够添加多个类别,例如,“prmanCameraSettings”节点的合并端口将被命名为“Prman_Camera_Settings”。
有关设置连接、创建架子项和 SuperTools 的更多信息,请使用以下链接查看Katana用户指南和Katana开发人员指南:
Python 连接节点: Katana开发人员指南 - 使用节点 - 连接节点
Shelf 脚本: Katana用户指南 - Katana中的脚本和编程 - Shelf 项目脚本
SuperTools: Katana用户指南 - 组、宏和 SuperTools - SuperTools
脚本说明
该脚本首先在设置定义和库变量后整理选定的节点(第 80 行)。收集此数据后,它会创建新的合并节点。
继续Q100372:使用Python脚本重命名输入和输出端口示例,从第87行开始,通过在for循环中迭代每个选定节点,将选定节点连接到新创建的Merge节点,从而获取该节点的所有输出端口选定的节点。
该脚本与Q100372文章中的示例不同,它在添加输入端口之前调用新函数checkDictionary()
来检查特定节点的用户定义字典。
自定义字典(第 18 行到第 44 行)使用字典值来匹配现有节点名称(例如 PrimitiveCreate)或节点名称中的潜在部分(例如 Camera),并使用用于输入端口重命名的节点类别键。
这是第 24 行的 MergeType 自定义字典:
例如,按照上面的字典键,PrimitiveCreate 节点的输出将根据其节点类别映射被命名为“Geometry”:
checkDictionary checkDictionary()
函数循环访问这些字典,尝试查找其中一个键是否与所选节点的类型匹配。一旦节点的类型与其中一个键匹配,该键就会附加到名为“mergeLabel”的变量中,该变量用作输入端口的名称。
例如, ArnoldCameraSettings节点将捕获 3 个键并将它们一个接一个地附加,如下所示:
名称组件附加到最终输入端口名称的顺序由使用checkDictionary()
检查类别字典的顺序决定:
如果切换上面显示的对checkDictionary()
的调用,输入端口将被命名为“Camera_Settings_Arnold”而不是“Arnold_Camera_Settings”。
完成字典格式设置后,您可以添加自己的自定义字典并调用checkDictionary()
以向输入端口名称添加更多组件。
添加所有输入端口后,新的合并节点将设置为选定节点,并通过 Q100402:如何在Katana中编辑和删除架子项中讨论的功能浮动在“节点图”选项卡中
浮动合并节点提供与创建新节点相同的行为。
注意:有关脚本的更多说明,请查看脚本中的帮助注释。
附件
我们很遗憾听到
请告诉我们