Как перенести вес кожи с одной кости на другую через питона - PullRequest
0 голосов
/ 05 декабря 2018

Я хочу перенести вес кожи с одной кости на другую.Может кто-нибудь сказать, как я могу это сделать?

Этот код предполагает, что вы выбираете только две кости одновременно

import pymel.core as pm

oldjnt = pm.ls("*_oldJnt", sl=True, type='joint')[0]
newjnt = pm.ls("*_newJnt", sl=True, type='joint')[0]

pm.skinCluster( "skinCluster1", e=True, selectInfluenceVerts=oldjnt,)
pm.skinPercent(tmw=oldjnt, tmw=newjnt, "skinCluster1")

Я не уверен, как получить transformMoveWeights (tmw) наносить из одной кости в другую, как это делается в Мел.

Вот код Мел:

skinCluster -e -selectInfluenceVerts Jnt_oldJnt skinCluster1;
skinPercent -tmw Jnt_oldJnt -tmw Jnt_newJnt skinCluster1;

1 Ответ

0 голосов
/ 06 декабря 2018

Похоже, у вас почти все было, но только некоторые синтаксические ошибки с командой.Я знаю, что ваш код пытается передать только из одного соединения, но этот пример будет проходить по всем соединениям, которые соответствуют правильному именованию.Пока имена oldJnt правильно совпадают с именами newJnt, он должен передавать веса от правильного:

import maya.cmds as cmds

# Select all vertexes from your mesh.
cmds.select("pSphere1.vtx[*]")

# We use sorted so that if the objects are names properly, the order of the objects should match indexes.
old_objs = sorted(cmds.ls("*_oldJnt")) # Get a list of all of your old joints.
new_objs = sorted(cmds.ls("*_newJnt")) # Get a list of all of your new joints.

# Use zip to loop through both old and new joints.
for old_jnt, new_jnt in zip(old_objs, new_objs):
    cmds.skinPercent("skinCluster1", tmw=[old_jnt, new_jnt]) # Transfer weights from the old joint to the new one.

# Clear vertex selection.
cmds.select(clear=True)

Я использую здесь cmds, но вы также можете переключить его на pymel, если выкак.

В документах упоминается, что он будет передавать веса только из выбранных вершин, поэтому в этом примере я просто выбираю все вершины.

Это было проверено со сферой и 2 старыми соединениями в 2новые суставы.

...