在Maya中,使用Python或Mel,如何查找没有UV壳的对象

2024-09-30 01:20:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试制作一个脚本,扫描Maya场景中的所有网格对象并返回没有UV壳的对象。我写了一个脚本,它使用了findUvShells命令,但显然对于这个应用程序来说,这个特定的命令非常慢。在

有没有OpenMaya的方法可以做到这一点,或者使用更快的命令?我在我们的一个简单角色上使用了这个脚本…他只有一个网格对象…花了一分钟告诉我没有对象有0个UV壳。在

def FindObjectsWithNoUVShells():    
    ObjectsWithNoUVShells = []
    OldSel = mc.ls(sl=True)
    Geo = mc.ls(typ="mesh")
    for Obj in Geo:
        mc.select(Obj)
        AllUVSets = (mc.polyUVSet(Obj, q=True, allUVSets=True))
        UVSet = AllUVSets[0]
        if (findUvShells(uvSet=UVSet)[1]) == 0:
            ObjectsWithNoUVShells.append(Obj)
    mc.select(OldSel)

    return (len(ObjectsWithNoUVShells) > 0), ObjectsWithNoUVShells

FindObjectsWithNoUVShells()

Tags: 对象命令脚本trueobj网格mcselect
1条回答
网友
1楼 · 发布于 2024-09-30 01:20:40

看起来polyEvaluate命令就是我要找的。就这个而言,这几乎是瞬间。

def FindObjectsWithNoUVShells():
    ObjectsWithNoUVShells = []
    OldSel = mc.ls(sl=True)
    Geo = mc.ls(typ="mesh")
    for Obj in Geo:
        mc.select(Obj)

        if mc.polyEvaluate(uvShell=True) == 0: 
            ObjectsWithNoUVShells.append(Obj)
    mc.select(OldSel)

    return (len(ObjectsWithNoUVShells) > 0), ObjectsWithNoUVShell

相关问题 更多 >

    热门问题