#!/usr/bin/env python # -*- coding: utf-8 -*- """ 版权所有: 清泉时代科技有限公司 联系方式: q.100@qq.com 创建日期: 2023/08/08 """ import maya.cmds as cmds import maya.mel as mel def sg_copy_skin(): """ 复制蒙皮权重 - 从第一个选中的模型复制蒙皮权重到其他选中的模型 - 如果目标模型已有蒙皮,会先解绑再重新绑定 """ # 获取选中的模型 meshes = cmds.ls(selection=True) # 获取源模型的影响骨骼 joints = cmds.skinCluster(meshes[0], query=True, influence=True) # 处理每个目标模型 for mesh in meshes[1:]: # 检查是否已有蒙皮变形器 skin_cluster = mel.eval(f'findRelatedSkinCluster("{mesh}")') # 如果存在蒙皮变形器则解绑 if cmds.objExists(skin_cluster): cmds.skinCluster(mesh, edit=True, unbind=True) # 创建新的蒙皮变形器 cmds.skinCluster(joints, mesh) # 复制蒙皮权重 cmds.copySkinWeights( sourceShape=meshes[0], destinationShape=mesh, noMirror=True, surfaceAssociation="closestPoint", influenceAssociation="closestJoint" )