Skocz do zawartości

Maya 2016 - reset skin cluster'a

Featured Replies

Napisano

Hej - w Maya 2016 zmieniło się troszkę działanie node'a skinCluster, który teraz keszuje sobie macierze pre-bind. Przez to modyfikacja atrybutów bindPreMatrix na pierwszy rzut oka nie wpływa na skina.

 

Ten skrypt resetuje skin'a (ustawia aktualną pozycję szkieletu jako "początkową".

Sprawdziłem na Maya 2015 i 2016.

 

import maya.cmds as cmds

def reset_skin_cluster(mayanode):
   historyNodes = cmds.listHistory(mayanode)
   for node in historyNodes:

       if cmds.nodeType(node) != "skinCluster":
           continue
       skinCl = node

       # influences = cmds.listConnections( skinCl + ".matrix" )
       indices = cmds.getAttr(skinCl + ".matrix", mi=True)
       for indx in indices:
           influence = cmds.listConnections("%s.matrix[%i]" % (skinCl, indx))

           if len(influence) > 0:
               mat = cmds.getAttr(influence[0] + ".worldInverseMatrix")

               cmds.setAttr("%s.bindPreMatrix[%i]" % (skinCl, indx),
                            mat[0], mat[1], mat[2], mat[3],
                            mat[4], mat[5], mat[6], mat[7],
                            mat[8], mat[9], mat[10], mat[11],
                            mat[12], mat[13], mat[14], mat[15],
                            type="matrix")

       try:
           cmds.skinCluster(skinCl, e=True, recacheBindMatrices=True)
       except StandardError:
           pass

  • Wyświetleń 1,7k
  • Created
  • Ostatniej odpowiedzi

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Powiadomienie o plikach cookie

Wykorzystujemy cookies. Przeczytaj więcej Polityka prywatności Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę.

Account

Navigation

Szukaj

Szukaj

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.