Maya 变换节点 "black box" - 从大纲中隐藏节点层次

Maya transform node "black box" - hiding node hierarchy from the outliner

Maya 中的 "dagContainer" 资产节点有一个 "blackBox" 属性,启用后会在大纲视图中隐藏资产节点层次结构的内容。

变换节点也有相同的属性,但是它是隐藏的,启用时它不会隐藏大纲中节点层次结构的内容,例如:

from maya import cmds

cmds.createNode('transform', name='test')
cmds.createNode('transform', name='child')
cmds.parent('child', 'test')  # creating some hierarchy;
print cmds.getAttr('test.blackBox')  # returns False;
cmds.setAttr('test.blackBox', True)  # no effect;

与资产 DAG 容器节点类似,是否可以使用转换节点启用相同的 "black box" 功能?或者是否有任何其他方法可以在 Maya 大纲中以编程方式隐藏变换节点的层次结构?

对于有类似问题的人,我的解决方案是使用 "doHideInOutliner" MEL 命令:

from maya import cmds, mel

def node_hierarchy_display(root_node, show=True):
    for node in cmds.listRelatives(root_node,
                                   children=True,
                                   fullPath=True):
        cmds.select(node)
        mel.eval('doHideInOutliner {};'.format(int(not show)))
    cmds.select(clear=True)

这与容器节点的"blackBox"属性达到相同的结果。