Da es öfters vorkommt, dass man mehrere animierte Objekte in einer gewissen Reihenfolge animieren möchte (z.B. bei Auf- oder Abbauanimationen) habe ich vor einiger Zeit mal ein Script geschrieben welches ich nun teilen möchte.
Louis Marcoux hat auf seinem Blog ganz schön beschrieben wie man so ein Script selber programmieren kann: Reveal Techniques
Ich habe einen ähnlichen Ansatz allerdings mit einer kleinen Änderung welche mehr Dynamik und Flexibilität ermöglicht.
AnimationReTimer
Die Idee ist, dass sich jedes dieser Objekte an einem (oder mehreren) “Timer-Objekt” orientiert und zwar abhängig von der Distanz. Kommt also dieses Timer-Objekt in die Nähe eines anderen Objekts fängt dieses seine Animation an.
Somit kann ich jedes dieser Objekte frei animieren (alle mit der selben Animation wie im Video-Tutorial, aber auch jedes Objekt mit einer einzigartigen Animation).
Die Keys dieser Animation werden dann durch das Script einfach nur verschoben.
Objecs [Add] [Remove]
Timer-Objekt(e) hinzufügen.
Timer-Objekte sollten mindestens zwei Key-Frames haben (z.B. Start- & Endposition). Wird also ein Timer-Objekt durch ein Noise-Controller gesteuert sollten trotzdem (irgendwelche) Keyframes existieren, damit das Script weiss wann die Animation anfängt bzw. aufhört.
Animation Reference
Animation fängt an <-> hört auf wenn Timer-Objekt am nächsten ist.
Distance Reference
Distanz zum Timer-Objekt wird am
Anfang <-> Ende der Animation gemessen.
Nur sinnvoll wenn sich Objekt bewegt.
Delay
Ganze Animation verzögern (Frames).
Accuracy
Genauigkeit der Berechnung um diese zu beschleunigen. Eignet sich wenn das Skript auf sehr viele Objekte angewendet wird (höherer Wert = schnellere & ungenauere Berechnung).
Lazy Animation
Objekt kann auch vom Nachbar-Objekt aktiviert werden. Dieser Wert steuert den Zeitverzug. Timer-Objekt kann somit eine Art Welle erzeugen.
Distance Dependent
Wenn Aktiv wird Objekt nur vom nächsten Timer-Objekt aktiviert ansonsten kann es unabhängig auch vom Nachbar-Objekt aktiviert werden (je nach Wert von “Lazy Animation”).
RETIME!
Alle selektierten Objekte werden “Retimed”.
Installation:
Script einfach per Drag-and-Drop ins Fenster schieben.
Tool (AnimationReTimer) findet man bei der Kategorie “Animation-Tools”.
.. hoffe das Script hilft euch wie es mir schon oft geholfen hat!
Hier ein kleines Tutorial:
… und noch eine weiteres Beispiel:
David Fritsche
Tags: 3d, 3ds Max, 3ds Max Script





Hey David, vielen vielen Dank für das sehr praktische Script! Genau das habe ich gesucht und werde es zukünftig sehr oft verwenden! DANKE!
Gruß, Martin