Установка скрипта "перенос весов" для Майя:
Скрипт:
Код:Привет! Если кому нужно вот скрипт для переноса весов с одного идентичного объекта на другой #created by @spaeceman import maya.cmds as mc ''' Скрипт позволяет автоматически привязать одежду к скелету целевого меша, и скопировать его веса 1) Выделяем основной заскиненный меш 2) Выделяем всё остальное что хотим прибить к персонажу ''' def selectLS(m): ''' Модуль выделения объектов ''' mode = m list_of_selections = mc.ls(selection=True) if mode == 'full': return(list_of_selections) elif mode == 'last': last = list_of_selections[-1] return(last) elif mode == 'first': first = list_of_selections[0] return(first) else: pass selected_cloth = (selectLS(m="full")[1:]) reference_skin_geo = (selectLS(m="first")) joints = [] def skn_name(name): ''' Модуль поиска скинкластера целевого меша ''' history = mc.listHistory(name) skinClusters = mc.ls(history, type='skinCluster') return "".join(skinClusters[0]) try: cluster = skn_name(reference_skin_geo) history = mc.listHistory(cluster) joints = mc.ls(history, type='joint') except: if selectLS(m="full") == None: mc.warning("Nothing selected") else: mc.warning("The object does not contain a skin cluster") for objects in selected_cloth: ''' логика бинда ''' mc.skinCluster(objects, joints, bindMethod=0, ih=True, mi=5) mc.select([reference_skin_geo, objects]) mc.copySkinWeights(noMirror=True, surfaceAssociation="closestPoint", influenceAssociation=["label", "closestJoint", "oneToOne"])