将自定义属性分组到 Maya 中的节点
Group custom attributes to nodes in Maya
我正在用 C++ 编写一个 Maya 插件,并且有一个自定义的 MPxLocatorNode。
我已经为这个节点添加了许多自定义属性:
MFnNumericAttribute nAttr;
Attrib1 = nAttr.create( "Attribute1", "att1", MFnNumericData::kInt,1.0 );
nAttr.setKeyable(false);
nAttr.setStorable(true);
nAttr.setReadable(true);
nAttr.setWritable(true);
nAttr.setHidden(false);
addAttribute( unitId );
Attrib2 = nAttr.create( "Attribute2", "att2", MFnNumericData::kInt,1.0 );
nAttr.setKeyable(false);
...
但是我需要添加大量这些属性,因此希望在属性编辑器中显示时将它们分组。有没有办法动态创建组或分隔符?
我对分组这个词有点困惑,但我会回答 2 个分组选项。
第一个是将属性分组为一个复合体。化合物的一个很好的例子是点化合物。简而言之,你得到了一个拥有 3 个双重属性的点属性。所以 x、y、z 坐标被分组在 Point 属性下。如果现在您进入频道编辑器,您将看到分组效果。在属性编辑器中,对于已知/预定义类型,控件将自动分配,同时进行一些分组。
现在,因为您提到了属性面板,我认为您对如何让属性编辑器具有与默认布局不同的布局更感兴趣。如果您创建一个 AETemplate.mel 文件,其中包含同名函数,那么您可以控制布局的完成方式以及分组、显示、隐藏、更改每个控件的方式个人属性。
例如,我有一个自定义节点,您可以从 here 下载该节点。由于它是 Python 和 MEL,您可以从那里获得完整的源代码。
节点名称是 adskMathNode。
所以我创建了一个 AEadskMathNodeTemplate.mel 文件。
此文件包含如下函数声明:
global proc AEasdkMathNodeTemplate (string $nodeName) {
editorTemplate -beginScrollLayout ;
...
}
这是您描述新布局的地方。
您将在 Maya 文件夹中获得大量更大的示例,网址为
/scripts/AETemplates
我正在用 C++ 编写一个 Maya 插件,并且有一个自定义的 MPxLocatorNode。
我已经为这个节点添加了许多自定义属性:
MFnNumericAttribute nAttr;
Attrib1 = nAttr.create( "Attribute1", "att1", MFnNumericData::kInt,1.0 );
nAttr.setKeyable(false);
nAttr.setStorable(true);
nAttr.setReadable(true);
nAttr.setWritable(true);
nAttr.setHidden(false);
addAttribute( unitId );
Attrib2 = nAttr.create( "Attribute2", "att2", MFnNumericData::kInt,1.0 );
nAttr.setKeyable(false);
...
但是我需要添加大量这些属性,因此希望在属性编辑器中显示时将它们分组。有没有办法动态创建组或分隔符?
我对分组这个词有点困惑,但我会回答 2 个分组选项。
第一个是将属性分组为一个复合体。化合物的一个很好的例子是点化合物。简而言之,你得到了一个拥有 3 个双重属性的点属性。所以 x、y、z 坐标被分组在 Point 属性下。如果现在您进入频道编辑器,您将看到分组效果。在属性编辑器中,对于已知/预定义类型,控件将自动分配,同时进行一些分组。
现在,因为您提到了属性面板,我认为您对如何让属性编辑器具有与默认布局不同的布局更感兴趣。如果您创建一个 AE
例如,我有一个自定义节点,您可以从 here 下载该节点。由于它是 Python 和 MEL,您可以从那里获得完整的源代码。
节点名称是 adskMathNode。 所以我创建了一个 AEadskMathNodeTemplate.mel 文件。 此文件包含如下函数声明:
global proc AEasdkMathNodeTemplate (string $nodeName) {
editorTemplate -beginScrollLayout ;
...
}
这是您描述新布局的地方。 您将在 Maya 文件夹中获得大量更大的示例,网址为 /scripts/AETemplates