gpt4 book ai didi

c++ - 将自定义属性分组到 Maya 中的节点

转载 作者:行者123 更新时间:2023-11-28 00:07:17 27 4
gpt4 key购买 nike

我正在用 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 属性下。如果现在您进入 channel 编辑器,您将看到分组效果。在属性编辑器中,对于已知/预定义类型,控件将自动分配,同时进行一些分组。

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

例如,我有一个自定义节点,您可以从 here 下载该节点.由于它是 Python 和 MEL,您可以从那里获得完整的源代码。

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

global proc AEasdkMathNodeTemplate (string $nodeName) {
editorTemplate -beginScrollLayout ;
...
}

这是您描述新布局的地方。您将在 Maya 文件夹中获得大量更大的示例,网址为/脚本/AETemplates

关于c++ - 将自定义属性分组到 Maya 中的节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34850113/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com