maya Python Ich möchte die gebackene Animation wieder reparieren.

Ich habe gerade versucht, so etwas für das Studium von Maya und Python zu machen.

Erstellen Sie zunächst eine einfache IK-Animation Setzen Sie den Schlüssel im 1., 5. und 10. Frame auf iKHandle1 So was ...

Backen Sie eine runde Animation Dann werden in allen Frames wie diesem in Joint usw. Tasten gedrückt.

Ich möchte nur 1 5 10 Keyframes von hier löschen. Ich möchte die Animation so ändern, dass es schwierig ist, sie zu korrigieren, da alle Tasten überall gedrückt werden. Ich frage mich, ob das bedeutet. Ich muss es nur unter einem anderen Namen speichern, bevor ich backe ...

Befehl, den Sie machen möchten

Verfahren Erstellen Sie einen Würfel usw. und setzen Sie die Schlüssel in 1,5,10 Frames. Wählen Sie danach zuerst den Würfel, dann das gebackene Objekt und führen Sie den Befehl aus! Ideales Ergebnis Andere Animationen als die im Cube festgelegten Schlüssel werden gelöscht

Ergebnisse von Versuch und Irrtum

Ich habe es geschafft


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);

Es ist unangenehm zu schreiben, wenn man nicht Python werden kann, aber es ist kurz!

Kurzer Kommentar

Legen Sie den Namen des ersten ausgewählten zu modellierenden Objekts fest


model = cmds.ls(selection=True)[0];

Holen Sie sich Keyframes für das erste ausgewählte Objekt (Duplikate, weil wir alle haben)


keyTimes = cmds.keyframe(model,query=True)

Erstellen Sie eine Liste mit Frame-Nummern bis zur maximalen Zeit (in diesem Fall 1,2,3,4,5,6,7,8,9,10).


timeList = range(1, int(max(keyTimes)));

Keyframe-Unterschiede abrufen (Liste der zu löschenden Keyframes) (2,3,4,7,8,9)


data = list(set(timeList) - set(keyTimes))

Danach durchlaufen Sie das ausgewählte Objekt (mit Ausnahme des ersten). Schleifen Sie mit einer Liste der zu löschenden Keyframes OK mit 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

maya Python Ich möchte die gebackene Animation wieder reparieren.
Ich möchte den Fortschritt in Python anzeigen!
Ich möchte mit Python-Datenklasse nach hinten erben
Ich möchte in Python schreiben! (3) Verwenden Sie Mock
Ich möchte R-Datensatz mit Python verwenden
Ich möchte initialisieren, wenn der Wert leer ist (Python)
[Python] Ich möchte die Option -h mit argparse verwenden
Ich möchte die Natur von Python und Pip kennenlernen
Ich möchte mit Python debuggen
Ich möchte das Wetter mit LINE bot feat.Heroku + Python wissen
Ich möchte den Anfang des nächsten Monats mit Python ausgeben
Ich möchte Python GUI ausführen, wenn Raspberry Pi startet
Ich möchte Spyder an die Taskleiste anheften
Ich möchte kühl auf die Konsole ausgeben
Ich möchte mit dem Reim Teil1 umgehen
Ich möchte mit dem Reim part3 umgehen
Ich möchte ein Glas aus Python verwenden
Ich möchte eine Python-Umgebung erstellen
Ich möchte Protokolle mit Python analysieren
Ich möchte mit aws mit Python spielen
Ich möchte den Fortschrittsbalken anzeigen
Ich möchte mit dem Reim part2 umgehen
Ich möchte mit dem Reim part5 umgehen
Ich möchte mit dem Reim part4 umgehen
Ich möchte das Ergebnis von "Zeichenfolge" .split () in Python stapelweise konvertieren
Ich möchte die abstrakte Klasse (ABCmeta) von Python im Detail erklären
Python: Ich möchte die Verarbeitungszeit einer Funktion genau messen
Ich möchte Dunnetts Test in Python machen
Ich möchte MATLAB feval mit Python verwenden
Ich möchte mich mit Schlüsselwortargumenten von Python merken
Ich möchte mit Python ein Fenster erstellen
Ich möchte mit Python eine E-Mail von Google Mail senden.
[Python] Ich möchte 7DaysToDie von Discord aus verwalten! 1/3
Ich möchte ein Spiel mit Python machen
Ich möchte mit dem Reim part7 (BOW) umgehen
Ich möchte verschachtelte Dicts in Python zusammenführen
Ich möchte Temporäres Verzeichnis mit Python2 verwenden
Ich möchte Ceres Solver aus Python verwenden
#Unresolved Ich möchte Gobject-Introspection mit Python3 kompilieren
Ich möchte APG4b mit Python lösen (Kapitel 2)
Ich möchte die Produkte verkaufen, die ich durch Python Scraping Mercari aufgelistet habe
[Python] Ich möchte 7DaysToDie von Discord aus verwalten! 2/3
Ich möchte C ++ - Code aus Python-Code erstellen!
[Python] Ich werde FTP auf den FTP-Server hochladen.
Ich möchte das Erscheinungsbild von zabbix anpassen
Ich möchte mit Python in eine Datei schreiben
Ich möchte die Aktivierungsfunktion Mish verwenden
Ich möchte Python in der Umgebung von pyenv + pipenv unter Windows 10 verwenden
Ich möchte das Bild entlang der Kontur anstelle des Rechtecks zuschneiden [Python OpenCV]
Ich möchte den Dateinamen, die Zeilennummer und den Funktionsnamen in Python 3.4 erhalten
Ich möchte in Python schreiben! (1) Überprüfung des Codeformats
Ich möchte den Dateinamen von DataLoader sehen
Ich habe versucht, die in Python installierten Pakete grafisch darzustellen
Ich möchte eine Variable in einen Python-String einbetten
Ich möchte Timeout einfach in Python implementieren
Ich möchte einen Python-Generator viele Male iterieren
Ich möchte schnell UUID generieren (Gedenknotiz) ~ Python Edition ~
Ich möchte das Ausführungsergebnis von strace erfassen
Ich möchte in der Django-Verschiebungstabelle scrollen, aber ...