货架项目脚本

Shelf Item Scripts是可以从中运行的Python脚本Katana的用户界面,以便使用以下命令执行任意操作Katana的API。货架项目脚本实现了货架项目,这些项目被分组为“货架”。

货架项目脚本可以使用Katana的API,例如NodegraphAPI,以访问的各个部分Katana可以查询或修改的内容,例如项目的节点图及其节点,参数,端口和连接。本节说明如何从中运行它们Katana的用户界面,货架类型以及定义货架和货架项目的文件夹和脚本文件位于何处。

从UI运行货架项目脚本

可用于运行的货架项目Katana的用户界面按货架中的货架列出Shelf Actions单击时显示的弹出窗口Shelf Actions工具栏按钮,这些按钮显示在Katana的用户界面:

在主菜单栏旁边的工具栏Katana的主窗口。

在节点中编辑的节点的窗口小部件工具栏Parameters标签。

工具栏中的Scene Graph标签。

列出的货架和货架项目Shelf Actions的弹出Parameters选项卡被认为是特定于所编辑的节点类型的,但是这不是强制性的:您可以自由地通过以下方式执行任何可用的操作: Katana API或由外部库提供。

同样,在Shelf Actions的弹出Scene Graph标签被认为是专门用于场景图的。

货架类型

有三种类型的货架:

内置式货架

用户定义的货架

额外的架子

内置式货架

内置式货架包含随货附带的预定义货架项目Katana发布。在Shelf Actions弹出窗口,其名称显示为(App)字首。内置货架中对应于货架项目的货架项目脚本是从内部加载的Katana资源目录。

您可以通过UI查看内置货架项目的源代码,但不能修改该源代码或删除项目或它们所包含的货架。您也不能创建新的内置货架或货架项目。如果要创建自定义货架和货架项目,请使用以下类型的货架之一: 用户定义的架子要么额外的货架

用户定义的架子

用户定义的货架是可以根据需要自由创建,修改和删除的货架。它们是特定于您的用户的,因此其他艺术家通常不可用。它们以您的用户名作为前缀显示,例如(David),如果您的用户名是David。

实施用户定义的货架项目的脚本是从.katana您的目录HOME夹。您可以为用户定义的货架项目创建和删除货架,也可以在货架内部创建,删除新的货架项目并直接在其内部编辑其源代码Shelf Actions弹出窗口。

额外的货架

其他货架是从目录中加载的货架,这些目录的路径在KATANA_RESOURCES环境变量。它们可用于在工作室中的艺术家之间共享货架项目脚本:您只需将具有如下所述目录结构的资源目录放置在网络位置,然后将其路径添加到KATANA_RESOURCES

其他货架的名称显示为(other)前缀Shelf Actions弹出窗口。就像内置货架项目一样,您可以通过UI查看其他货架项目的源代码,但不能删除它们或修改其源代码。您也不能使用UI添加或删除其他书架。它们是通过磁盘上的架子文件夹中的脚本文件专门定义的,这些脚本文件通过KATANA_RESOURCES

货架项目脚本的目录结构

在一个Katana资源目录,架子和架子项目从具有以下名称的子文件夹中加载:

Shelves -包含在Shelf Actions弹出工具栏中Katana的主窗口。

ShelvesNodeSpecific -包含显示在Shelf Actions的弹出窗口Parameters标签。

ShelvesScenegraph -包含在Shelf Actions的弹出Scene Graph标签。

这些文件夹的子文件夹表示在Shelf Actions弹出窗口,并包含与在UI中选择的货架列出的货架项目相对应的货架项目脚本。

货架项目脚本文件是使用标准的ASCII文本文件.py Python源文件的文件扩展名,并且可以在源代码或常规文本编辑器应用程序中进行编辑。

注意:  货架的装载存在一个已知问题,其中当多个相同名称的货架出现在其中时,会多次显示相同名称的货架条目Katana资源目录。架子的加载机制从左到右搜索,随后列出的文件夹中的架子胜过第一个列出的文件夹中的架子。如果存在多个具有相同名称的货架KATANA_RESOURCES目录中,该架子的所有架子项目均取自加载了相同名称的最后一个架子。

特定于节点的货架项目脚本

特定于节点的货架项目脚本定义了可以从Shelf Actions弹出Parameters显示其参数的节点的选项卡。

特定于节点的货架项目脚本中的预定义变量

以下变量是预定义的,可用于特定于节点的货架项目脚本:

node -参数显示在Parameters标签。

注意:  此外node,可能存在其他变量,这些变量是使用节点交互委托设置的。

使用节点交互委托为某些类型的节点定义了以下附加变量:

节点数

变数

加夫三

selectedItems -在这些类型的节点的参数界面的Gaffer表中选择的场景图位置的路径列表。

GroupStack和GroupMerge

selectedNodes -在这些类型的节点的参数界面中选择的节点列表。

MaterialStack

selectedLocations -在MaterialStack节点的参数界面中选择的场景图位置的路径列表。

将特定于节点的货架项目脚本定位到特定类型的节点

可以将信息添加到特定于节点的货架项目脚本中,以使其对应的货架项目显示在Shelf Actions的弹出窗口Parameters选项卡仅适用于特定类型的节点。一个特别的SCOPE货架项目脚本的文档字符串中的“字段”可用于列出该脚本适用的节点类型(逗号分隔)的名称。此信息在UI中用于过滤为选定货架显示的货架项目列表,以仅显示与显示其参数的节点类型兼容的那些货架项目。

例如,用于更新OpScript节点的内置特定于节点的货架项目脚本在其文档字符串中包含以下范围信息:

""" NAME: Upgrade OpScript Node To New API SCOPE: OpScript Migrates OpScript nodes from the legacy syntax to the modern syntax. """

货架项目脚本的文档字符串

在用户界面中创建的用户定义的货架项目脚本在文件顶部使用以下模块文档字符串:

""" NAME: <the name of the script to show in the UI> ICON: <the filename of icon to use in the UI> DROP_TYPES: <currently unused> SCOPE: <names of types of nodes to target by node-specific shelf items> <description> """

SCOPE字段仅适用于特定于节点的货架项目脚本(请参见上文)。