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"属性达到相同的结果。
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"属性达到相同的结果。