您可以使用属性模式创建动态或扩展属性。属性模式是关于可以添加到任何特定节点或节点类型的动态或扩展属性的描述。使用此功能后,您无需逐个使用 addAttr 或 addExtension 命令创建每个属性。
pyJsonAttrPatternFactory.py 插件不支持此功能。
要使用此功能,首先要创建一个模式文件。该模式文件列出将添加到节点或节点类型并可以采用插件定义的任何格式的属性。Maya 插件 pyJsonAttrPatternFactory.py 支持 .json 格式。您也可以添加一个用于描述模式文件语法的模式文件(可选)。
模式只是关于通过 applyAttrPattern 命令复制到节点或节点类型的属性的描述。
某些模式类型由插件定义,除非卸载该插件,否则不会删除这些模式类型。
一个模式文件可以包含多个模式,每个模式可以包含多个属性。应用一个模式时,将应用其所有属性,并不仅仅是其中一部分。有关模式文件示例,请参见 attrPatternSchema.json;有关开发人员工具包安装的 devkit/plug-ins/scripted 目录中的模式文件示例,请参见 sampleAttrPatterns.json。
Autodesk Developer Network 中提供了开发人员工具包。将开发人员工具包归档复制到本地目录,取消归档它,并将文件夹复制到 Maya 安装目录。有关如何安装和设置 Maya 开发人员工具包的信息,请参见 Maya 开发人员帮助中的“设置构建环境”部分。
使用 createAttrPatterns 命令创建模式文件中列出的模式集。然后,使用 applyAttrPattern 命令将模式文件的任一模式中列出的属性附加到节点或节点类型。使用 applyAttrPattern 命令,可以确定是否创建动态或扩展属性。如果在命令之后列出节点名称,将创建动态属性。如果使用 -nt 标志列出节点类型,将创建扩展属性。
使用 listAttrPatterns 命令列出可用的模式实例和模式类型。
使用模式将属性应用于节点后,这些属性将不再与该模式关联,并只能使用 deleteAttr 或 deleteExtension 命令(而不是 deleteAttrPattern 命令)删除。
使用属性模式创建动态或扩展属性的工作流程概要
下面是此功能的简单示例应用:
[ { "name" : "samplePattern", "attributes" : [ { "name" : "sampleAttr", "defaultValue" : 0.0, "attributeType": "float" } ] } ]
loadPlugin pyJsonAttrPatternFactory.py;
createAttrPatterns –pt “json” –pf “yourfile.json”;
createNode addMatrix; // Result: addMatrix1 // listAttrs; // Result: [the addMatrix attributes] //
applyAttrPattern –pn “samplePattern” “addMatrix1”;
将添加动态属性 sampleAttr。
listAttrs; // Result: [the addMatrix attributes] sampleAttr //