J'ai juste essayé de faire quelque chose comme ça pour étudier la maya et le python.
Tout d'abord, créez une animation IK simple Réglez la clé sur iKHandle1 dans les 1re, 5e et 10e images Comme ça ...
Faire une animation ronde Ensuite, les touches sont frappées dans toutes les images comme celle-ci dans Joint, etc.
Je souhaite supprimer uniquement 1 5 10 images clés d'ici. Je veux changer l'animation pour qu'elle soit difficile à corriger car toutes les touches sont frappées où qu'elles se trouvent. Je me demande si cela veut dire. J'ai juste besoin de l'enregistrer sous un nom différent avant de le cuire ...
procédure Créez un cube etc. et définissez les clés dans 1,5,10 cadres. Après cela, sélectionnez d'abord le cube, puis sélectionnez l'objet cuit et exécutez la commande! Résultat idéal Les animations autres que les clés définies dans le cube sont supprimées
J'ai réussi à le faire
import maya.cmds;
model = cmds.ls(selection=True)[0];
keyTimes = cmds.keyframe(model,query=True);
timeList = range(1, int(max(keyTimes)));
data = list(set(timeList) - set(keyTimes));
selectObjList = cmds.ls(selection=True);
for frameTime in data:
for obj in selectObjList[1:]:
cmds.cutKey(obj, time=(frameTime,frameTime), cl=1);
C'est désagréable à écrire si vous ne pouvez pas devenir python, mais c'est court!
Définir le nom du premier objet sélectionné à modeler
model = cmds.ls(selection=True)[0];
Obtenir des images clés pour le premier objet sélectionné (doublons car nous avons tous)
keyTimes = cmds.keyframe(model,query=True)
Créez une liste de numéros d'images jusqu'à la durée maximale (dans ce cas, 1,2,3,4,5,6,7,8,9,10)
timeList = range(1, int(max(keyTimes)));
Obtenir les différences d'images clés (liste des images clés à effacer) (2,3,4,7,8,9)
data = list(set(timeList) - set(keyTimes))
Après cela, faites une boucle autour de l'objet sélectionné (sauf le premier), Bouclez avec une liste d'images clés à supprimer OK avec cutKey!
selectObjList = cmds.ls(selection=True);
for frameTime in data:
for obj in selectObjList[1:]:
cmds.cutKey(obj, time=(frameTime,frameTime), cl=1);
Recommended Posts