概括
在设置具有多个输入的节点(例如合并、切换或全局状态变量节点)时,手动重命名每个连接端口以明确连接用途可能非常繁琐。为了自动化此过程,您可以使用 Python 创建一个自定义的 Shelf Item 或 SuperTool 来处理重命名操作。本文将介绍如何实现这一点。
更多信息
下面提供了一个示例脚本,该脚本会遍历每个选定节点的输入端口,并将它们重命名为特定值,并对其进行了说明。
这可以在Katana中使用 Merge 或 VariableSwitch 节点进行测试。
示例脚本
# Grab all currently selected nodes
selectedNodes = NodegraphAPI.GetAllSelectedNodes()
# Loop through each selected node for node in selectedNodes:
# Get all the import ports within the node inputPorts = node.getInputPorts()
# Loop through each port within the node for inputs in inputPorts: index = inputs.getIndex() name = node.getInputPortByIndex(index).getName()
# Name each port 'Shot' plus their indexed location node.renameInputPort(name,('Shot'+repr(index+1)))
使用脚本
在Katana中,只需创建一个 Merge 或 VariableSwitch 节点并向其添加多个输入端口即可测试脚本(单击节点上的大箭头以添加输入端口):
在选中节点的情况下,将上述脚本粘贴/执行到 Python 选项卡中,应该会将默认输入端口重命名为类似这样的名称:
您还可以通过下载附件中的“renameInputPorts.py”文件并将其放置在用户主区域“ .katana/Shelves/ ”目录下的“书架”文件夹名称中,来测试上述脚本作为自定义书架项的功能。
例如:
Windows: C:\Users\username\.katana\Shelves\RenameShelf\renameInputPorts.py
Linux: /home/username/.katana/Shelves/RenameShelf/renameInputPorts.py
这种设置是自定义 Shelf 或 SuperTool 的基础。在此基础上,您可以添加一个弹出窗口小部件,允许您重命名每个端口,或者您可以将代码直接包含在 SuperTool 节点中。
有关设置连接、创建书架项目和超级工具的更多信息,请使用以下链接查看Katana用户指南和Katana开发人员指南:
Python 连接节点: Katana开发者指南 - 使用节点 - 连接节点
书架脚本: Katana用户指南 - Katana中的脚本编写和编程 - 书架项目脚本
SuperTools: Katana用户指南 - 组、宏和超级工具 - SuperTools
剧本解释
selectedNodes = NodegraphAPI.GetAllSelectedNodes()
使用 NodegraphAPI,首先需要找到要应用脚本逻辑的目标节点。这可以通过两种方式实现:一种是按节点名称指定节点,另一种是查询当前选中的节点。上面的代码行查找并存储当前选中的节点对象列表,并将其命名为selectedNodes 。
for node in selectedNodes:
inputPorts = node.getInputPorts()
一旦你获得了节点对象列表,你就可以通过 for 循环遍历每个节点,并调用getInputPorts()函数来获取节点的所有输入端口。
for inputs in inputPorts:
index = inputs.getIndex()
现在你已经获取了每个节点的端口,你可以设置程序按端口名称或索引位置遍历各个端口。上面的代码行使用getIndex()函数查找端口的索引位置。
name = node.getInputPortByIndex(index).getName()
node.renameInputPort(name,('Shot'+repr(index+1)))
以上代码行获取节点端口的当前名称,并将其重命名为“Shot”后跟该端口的索引。最终名称类似于 Shot1、Shot2、Shot3,具体取决于节点有多少个端口。
附件
我们很遗憾听到
请告诉我们