42 lines
1.1 KiB
Python
42 lines
1.1 KiB
Python
|
#!/usr/bin/env python
|
||
|
# -*- coding: utf-8 -*-
|
||
|
|
||
|
import maya.cmds as cmds
|
||
|
import maya.mel as mel
|
||
|
from Core import GetMeshes
|
||
|
|
||
|
def clothing_weight():
|
||
|
"""
|
||
|
处理服装权重
|
||
|
- 获取选中的对象
|
||
|
- 从头部和身体模型复制蒙皮权重
|
||
|
- 应用到选中的服装模型上
|
||
|
"""
|
||
|
# 获取选中的对象
|
||
|
selection = cmds.ls(selection=True)
|
||
|
|
||
|
# 获取头部和身体模型
|
||
|
head = GetMeshes(m=0)
|
||
|
body = GetMeshes(m=50)
|
||
|
|
||
|
# 清除选择并选择身体和目标模型
|
||
|
cmds.select(clear=True)
|
||
|
cmds.select(body, add=True)
|
||
|
cmds.select(selection, add=True)
|
||
|
|
||
|
# 执行蒙皮复制
|
||
|
mel.eval('copySkin')
|
||
|
|
||
|
# 为每个选中的模型复制头部和身体的权重
|
||
|
for obj in selection:
|
||
|
cmds.select(clear=True)
|
||
|
cmds.select(head, add=True)
|
||
|
cmds.select(body, add=True)
|
||
|
cmds.select(obj, add=True)
|
||
|
|
||
|
# 复制蒙皮权重
|
||
|
cmds.copySkinWeights(
|
||
|
noMirror=True,
|
||
|
surfaceAssociation="closestPoint",
|
||
|
influenceAssociation="closestJoint"
|
||
|
)
|