Maya自动清理多余UVSet的脚本

 

 

我们从网上下载的很多模型的UVSet都很乱,尤其是从引擎里导出的,很多都有channel12345的多余uvset,手工清理还是比较费时间的,所以我这边写了个小脚本,可以快速整理UVSET

功能介绍:

1,自动检测是否有map1,如果没有,会把第一个uvset改名成map1

2,如果有map1,但是不是第一位,会把map1移动到第一位

3,除了第一个map1,其他的uvsets全部删除

因为会删除多余的uvset,具有一点点风险。在初始建模阶段是完全无风险的,但是在材质贴图阶段请三思确认。

执行命令之前请先保存文件!!!

执行命令之前请先保存文件!!!

执行命令之前请先保存文件!!!

###代码比较少,就不加注释了,比较简单易懂

###没做任何内存控制和过程打断功能,自己测试一千个以内的模型都没啥问题,但是仍然建议别一次性选择太多,记得执行命令之前先保存文件。

import maya.cmds as cmds

selectOBJs=cmds.ls(sl=True)
for obj in selectOBJs:
    cmds.select(obj)

    uvList=cmds.polyUVSet(q=True,allUVSets=True)
    if "map1" not in uvList:
        cmds.polyUVSet(rename=True, uvSet=uvList[0], newUVSet="map1")
    else:
        if uvList[0]!="map1":
            cmds.polyUVSet(copy=True, uvSet="map1",nuv=uvList[0])
            cmds.polyUVSet(delete=True,uvSet="map1")
            cmds.polyUVSet(rename=True, uvSet=uvList[0], newUVSet="map1")
    newUVList = cmds.polyUVSet(q=True, allUVSets=True)
    for i in range(1, len(newUVList)):
        cmds.polyUVSet(delete=True, uvSet=newUVList[i])

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值