Q100494:通过根据传入节点类型重命名合并输入来提高节点图的可读性

关注

概括

当设置具有多个输入的节点(例如 Merge、Switch 或VariableSwitch节点),重命名每个输入端口以指示上游连接到其的节点类型可能会很有用。但是,手动重命名端口可能会很乏味。

本文旨在根据Q100372:使用 Python 重命名输入和输出端口中给出的示例进行构建,并提供通过用户定义的类别将输入端口重命名为合并节点的功能。

更多信息

构建Katana模板时,如果输入端口显示它们连接到上游的节点的类别,则更容易理解模板的流程。

使用合并节点的默认行为时,创建的输入被命名为 i0、i1、i2 等。此命名约定不提供有关上游连接节点的任何信息。

您可以创建一个自定义 Python 设置,而不是使用 Merge 节点的默认端口名称,该设置根据连接的节点的类别重命名 Merge 节点输入端口(例如,连接到 CameraCreate 节点时,Merge 节点输入端口将是“ Camera”,对于 NetworkMaterial 节点,它将是“Material”)。

例如,将功能添加到合并节点可以使用以下输入端口名称,这将允许更轻松地理解上游设置:

advRename1.PNG

如上图所示,合并节点的输入端口根据连接到每个输入的节点的类别进行重命名。

示例脚本

本文附带了一个 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 自定义字典:

合并字典.PNG

例如,按照上面的字典键,PrimitiveCreate 节点的输出将根据其节点类别映射被命名为“Geometry”:

合并词典1.PNG

checkDictionary checkDictionary()函数循环访问这些字典,尝试查找其中一个键是否与所选节点的类型匹配。一旦节点的类型与其中一个键匹配,该键就会附加到名为“mergeLabel”的变量中,该变量用作输入端口的名称。

例如, ArnoldCameraSettings节点将捕获 3 个键并将它们一个接一个地附加,如下所示:

advRename2.PNG

名称组件附加到最终输入端口名称的顺序由使用checkDictionary()检查类别字典的顺序决定

advRename3.PNG

如果切换上面显示的对checkDictionary()的调用,输入端口将被命名为“Camera_Settings_Arnold”而不是“Arnold_Camera_Settings”。

完成字典格式设置后,您可以添加自己的自定义字典并调用checkDictionary()以向输入端口名称添加更多组件。

添加所有输入端口后,新的合并节点将设置为选定节点,并通过 Q100402:如何在Katana中编辑和删除架子项中讨论的功能浮动在“节点图”选项卡中

浮动合并节点提供与创建新节点相同的行为。

注意:有关脚本的更多说明,请查看脚本中的帮助注释。

附件

我们很遗憾听到

请告诉我们