我正在尝试制作一个脚本,该脚本扫描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()
答案 0 :(得分:1)
看起来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