如何在Maya MEL语言中创建空节点

3

I would like to create an empty node in Maya (mel language), in which I can store my attributes (visible to the end-user).
The reason why I would need an empty node, is because I don't need any locator information or additional standard Maya information, just a couple of my custom attributes. to be visibl in the node.

createNode "<What_type_should_I_put_here?>" -n "MyCustomEmptyNode";

3个回答

6

scriptNode是用于非物理对象的好工具。您还可以使用scriptNode的open和close函数来进行初始化。

我也喜欢partition节点 - createNode('partition')。它们会出现在大纲中,但不会在场景中出现实体形态。它们具有与资产容器相同的属性,因此您可以添加一些元数据(例如用户名和创建时间)而无需额外工作。

对于变换,请使用createNode('transform')创建一个空组。您可以锁定并隐藏所有属性,但仍然可以在属性编辑器中看到它们。有时我使用单个已锁定和隐藏的变换,将显示覆盖设置为参考,作为无法触及的对象(如绑定内部)的层次结构父级。资产节点是变换,但具有一些额外的功能(例如自动隐藏其内容),并且是其他节点的良好存储库。

您还可以通过使用fileInfo将信息存储到文件中,而不需要节点(python中的链接,但思路相同)。这对于不需要连接到场景图的静态数据非常有用。在Python中使用标准工具可以编码更复杂的数据。


我需要记住这些内容,因为不同情况下有不同的选项。 - mhlester
谢谢。当我创建一个分区节点时,它不会出现在Outliner中。我应该使用特定的选项吗? - Laurent Crivello
确保大纲不是设置为“仅限dag对象”,并检查您的过滤器。 - theodox

4
任何非DAG节点类型都可以,您可以调用命令allNodeTypes来查看完整列表。这里有数百种类型可供选择,其中一些更好。
曾经我使用unknown以为它是一个很好的基础,但在.ma.mb之间切换格式会导致错误。
从那时起,我开始使用scriptNode,因为它可以帮助我记得我的脚本生成了它。我将包含的属性留空并添加自己的属性。

是的,如果你使用unknown,Maya不知道节点数据ID是什么。 - joojaa

3
您还可以查看“网络”节点类型,因为它在默认属性方面具有非常少的开销... 如果您不使用第三方插件/工具,则很少有可能已经存在于您的场景中...

我更喜欢这个比 scriptNode,后者不应该用于此,并且通常被 Maya 和许多插件使用。 - ninhenzo64

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接