【问题标题】:Maya transform node "black box" - hiding node hierarchy from the outlinerMaya 变换节点“黑匣子” - 从大纲中隐藏节点层次结构
【发布时间】:2019-08-06 12:04:48
【问题描述】:

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

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

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 容器节点,是否可以使用转换节点启用相同的“黑盒”功能?或者有没有其他方法可以在 Maya 大纲中以编程方式隐藏变换节点的层次结构?

【问题讨论】:

    标签: python maya maya-api


    【解决方案1】:

    对于任何有类似问题的人,我的解决方案是使用“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”属性也达到了同样的效果。

    【讨论】:

    • stackoverflow.com/a/57450777/2742418,如果你想要一个简单的setAttr的属性,你也可以在这里找到它
    • @DrWeeny 是的,我看到了,谢谢!虽然 setAttr 有效,但它不会在不明确刷新大纲的情况下更新大纲,而 MEL 命令在一行中完成所有操作。
    • 是的,它更多的是为了知识,我刚刚从 doHideInOutliner 撕下了 setAttr。
    猜你喜欢
    • 1970-01-01
    • 2017-08-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-20
    • 1970-01-01
    • 2018-02-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多