将自定义属性分组到Maya中的节点 我在C++中编写了一个玛雅插件,并有一个自定义的MPXLoalPotoNo..BR>我已经添加了许多自定义属性给这个节点: 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); ...

将自定义属性分组到Maya中的节点 我在C++中编写了一个玛雅插件,并有一个自定义的MPXLoalPotoNo..BR>我已经添加了许多自定义属性给这个节点: 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); ...,c++,attributes,maya,C++,Attributes,Maya,但是,我需要添加大量这些属性,因此希望在属性编辑器中显示时对它们进行分组。有没有一种方法可以动态创建组或分隔符?我对“分组”这个词有点困惑,但我将回答两个分组选项 第一种方法是将属性分组为复合属性。化合物的一个很好的例子是点化合物。简言之,您得到了一个点属性,它拥有3个双属性。因此,x、y、z坐标在“点”属性下分组。如果现在进入通道编辑器,将看到分组效果。在“属性编辑器”(Attribute Editor)中,对于已知/预定义类型,将自动指定控件,并进行一些分组 现在,因为您提到了属性面板,我想

但是,我需要添加大量这些属性,因此希望在属性编辑器中显示时对它们进行分组。有没有一种方法可以动态创建组或分隔符?

我对“分组”这个词有点困惑,但我将回答两个分组选项

第一种方法是将属性分组为复合属性。化合物的一个很好的例子是点化合物。简言之,您得到了一个点属性,它拥有3个双属性。因此,x、y、z坐标在“点”属性下分组。如果现在进入通道编辑器,将看到分组效果。在“属性编辑器”(Attribute Editor)中,对于已知/预定义类型,将自动指定控件,并进行一些分组

现在,因为您提到了属性面板,我想您更感兴趣的是如何教属性编辑器具有不同于默认布局的布局。如果创建AETemplate.mel文件,其中包含同名函数,则可以控制布局的完成方式,并对每个单独属性的控件进行分组、显示、隐藏和更改

例如,我有一个自定义节点,您可以从中下载。因为它是Python和MEL,所以您可以从那里获得完整的源代码

节点名为adskMathNode。 所以我创建了一个AEadskMathNodeTemplate.mel文件。 此文件包含如下函数声明:

global proc AEasdkMathNodeTemplate (string $nodeName) {
    editorTemplate -beginScrollLayout ;
    ...
}
这就是您描述新布局的地方。 您将在的Maya文件夹中获得大量更大的示例
/脚本/AETemplates

我对单词分组有点困惑,但我将回答两个分组选项

第一种方法是将属性分组为复合属性。化合物的一个很好的例子是点化合物。简言之,您得到了一个点属性,它拥有3个双属性。因此,x、y、z坐标在“点”属性下分组。如果现在进入通道编辑器,将看到分组效果。在“属性编辑器”(Attribute Editor)中,对于已知/预定义类型,将自动指定控件,并进行一些分组

现在,因为您提到了属性面板,我想您更感兴趣的是如何教属性编辑器具有不同于默认布局的布局。如果创建AETemplate.mel文件,其中包含同名函数,则可以控制布局的完成方式,并对每个单独属性的控件进行分组、显示、隐藏和更改

例如,我有一个自定义节点,您可以从中下载。因为它是Python和MEL,所以您可以从那里获得完整的源代码

节点名为adskMathNode。 所以我创建了一个AEadskMathNodeTemplate.mel文件。 此文件包含如下函数声明:

global proc AEasdkMathNodeTemplate (string $nodeName) {
    editorTemplate -beginScrollLayout ;
    ...
}
这就是您描述新布局的地方。 您将在的Maya文件夹中获得大量更大的示例
/脚本/AETemplates

感谢您的输入,看起来很有趣。您知道这是否允许动态属性吗?我的代码正在动态地在节点中生成属性。是的,模板部分可以-您还可以创建动态复合属性。感谢您的输入,看起来很有趣。您知道这是否允许动态属性吗?我的代码正在动态地在节点中生成属性。是的,模板部分会生成属性-您还可以创建动态复合属性。