MetaFusion/scripts/Reference/SGFastUnbindSkinCluster.py

46 lines
1.2 KiB
Python
Raw Normal View History

2025-01-17 02:30:36 +08:00
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
版权所有: 清泉时代科技有限公司
联系方式: q.100@qq.com
创建日期: 2024/03/26
"""
import os
import maya.cmds as cmds
def sg_fast_unbind_skin_cluster():
"""
快速解除蒙皮绑定
- 遍历所有网格
- 导出蒙皮权重
- 解除蒙皮绑定
"""
# 遍历所有网格0-53
for i in range(54):
# 获取网格名称
mesh = cmds.SGGetMeshes(m=i)
# 检查网格是否存在
if not cmds.objExists(mesh):
continue
# 查找蒙皮变形器
skin_cluster = cmds.findRelatedSkinCluster(mesh)
# 如果存在蒙皮变形器
if cmds.objExists(skin_cluster):
# 构建保存路径
path = os.path.join(cmds.SGDescriptor(p=True), "skin_buffer")
skin_file = os.path.join(path, f"{mesh}.skin")
# 如果目录不存在则创建
if not os.path.exists(path):
os.makedirs(path)
# 导出蒙皮权重
cmds.SGSkinCluster(ef=mesh, export_file=skin_file)
# 解除蒙皮绑定
cmds.skinCluster(mesh, edit=True, unbind=True)