Maya中获取模型隐藏显示状态的若干方法

获取maya 中模型是否隐藏状态的方法

方法1:获取mesh 模型的visibility属性

import maya.cmds as cmds

all_meshs = cmds.ls(type = "mesh",dag=True,l=True)

for _mesh in all_meshs:
    _is_show = cmds.getAttr("{}.visibility".format(_mesh))
    if _is_show ==0:
        print(u"{}---隐藏".format(_mesh))
    else:
        print(u"{}---显示".format(_mesh))

这是比较简单的方法,直接获取节点的属性,但是局限性比较大,比如当父层级节点或更上层节点是设置隐藏了的时候,是没有办法准确节点是否隐藏的,所以我们直接用maya 的api 来获取节点的显示状态

方法2:使用maya 的api 来获取节点的状态

import maya.api.OpenMaya as OpenMaya
import maya.api.OpenMayaUI as OpenMayaUI
def get_object_display_status(node_name):
    selection_list = OpenMaya.MSelectionList()
    selection_list.add(node_name)
    dag_path = selection_list.getDagPath(0)
    view = OpenMayaUI.M3dView.active3dView()
    displayStatus = view.displayStatus(dag_path)
    return displayStatus

这里面返回的displayStatue 是返回的状态代号,我们后面需要通过具体情况来分析状态

隐藏为3,显示为2,有时候会出现8,是上次选中的模型

链接在

Maya 帮助 | Python API 2.0 Reference: OpenMayaUI.M3dView Class Reference | Autodesk

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值