Wie ihr mittlerweile gemerkt haben könntet, habe ich Gefallen an Adobe Substance 3D Designer gefunden. Während meines Abschlussprojekts habe ich bereits etwas mit Flipbook-Animationen, die ich in Designer erstellt habe, herumexperimentiert. Ich weiß noch, wie viel Aufwand letztendlich das Rendern der Bildsequenz war und ich war froh, auf SpriteIterator von Jonas Olesen gestoßen zu sein, auch wenn die Nutzung ein paar Einschränkungen hatte.
Um den Workflow zu verbessern, habe ich nun ein Plugin erstellt, welches direkt Bildsequenzen exportieren kann. Es ist zwar noch nicht perfekt für die Erstellung von Flipbooks bzw. Spritesheets geeignet, da jeweils Einzelbilder erstellt werden, aber der Schritt zum Flipbook ist anschließend nur noch einen Befehl entfernt, indem ihr bspw. ImageMagick nutzt.
Für alle Ungeduldigen: Hier geht es zum Download
Animationen in Designer
Wunderbare und sehr beeindruckende Beispiele für Animationen, die komplett in Designer erstellt wurden, sind ein paar der Portfolio-Stücke von Kelly Recco, insbesondere Lab Incubators und Dragon Egg.
Wie Kelly in ihrer Retrospektive beschreibt, basieren ihre Animationen auf $time
, einer globalen Variablen, die laut Handbuch die vergangenen Sekunden seit Start der Substance Engine enthält. Der Vorteil dabei ist, dass man dann den Substance Player verwenden kann, um Bildsequenzen zu exportieren.
Ein Nachteil ist, dass man bei Nutzung nur bedingt Einfluss hat, da die Zeit schließlich kontinuierlich vergeht. Da ich gerne die Kontrolle behalte, nutze ich eine eigene Variable, die ich dann gezielt verändern und so bspw. auch vor- und zurückspulen kann, wie ich es gerade möchte.
Das Plugin
Installation
Die Installation ist schnell gemacht. Einfach über Tools
-> Plugin Manager…
den Plugin Manager starten und dort unter INSTALL…
das vorher heruntergeladene und entpackte Plugin auswählen.
Nach erfolgreicher Installation erscheint Export
als weiterer Eintrag in der Menüleiste. Darunter ist der Punkt Export Sequence
zu finden, der das Konfigurationsfenster für den Exporter aufruft.
Kleiner Beispielgraph
Um die Vorteile des Plugins direkt sehen zu können, hier ein kleines Beispiel. Es ist einer meiner Beispielgraphen, die ich während der Pluginentwicklung erstellt habe:

Kleiner Beispielgraph

Input Parameter Konfiguration
Das ist nun erst einmal ein ganz normaler statischer Graph. Animieren können wir ihn nun, indem wir dem Graphen einen Input Parameter hinzufügen. Die Idee ist, mit Hilfe des Parameters den Warp Angle
des Multidirectional Warp Grayscale
zu beeinflussen und dadurch den Eindruck einer wabernden Bewegung zu erzeugen.
Ich habe mich in diesem Beispiel für einen float
Parameter namens rotation
entschieden. Da Warp Angle
laut Dokumentation den Wertebereich 0 - 1 hat, habe ich dies im Parameter ebenfalls als Minimal- bzw. Maximalwert konfiguriert. Auf das Clamping habe ich verzichtet. Da ich vermute, dass Warp Angle
intern mit Umdrehungen rechnet, sollte die Zahl vor dem Komma keinerlei Auswirkungen haben. Denn eine halbe Umdrehung sollte das gleiche Ergebnis liefern wie anderthalb Umdrehungen.
Ich habe auch ein passendes Label eingetragen, da es meiner Meinung nach einerseits zu den Best Practices gehört und andererseits der Wert ist, den man standardmäßig im Konfigurationsdialog des Exporter-Plugins auswählen kann, wie später noch zu sehen sein wird.
Nachdem der Graph nun soweit konfiguriert ist, muss nur noch der Warp Angle
angepasst werden. Dafür einfach im Konfigurationsmenü () von Warp Angle
den vorher angelegten Parameter auswählen, die dafür notwendige Funktion wird dann automatisch erzeugt.
Nutzung

Plugin Konfigurationsdialog
Das nebenstehende Konfigurationsfenster wird durch Klick in der Menüleiste auf Export
-> Export Sequence
gestartet. Das Dialogfenster besteht aus drei Teilen, den “Output Settings”, den “Sequence Settings” und den “Export Settings”.
Die “Output Settings” enthalten alle kompatiblen Outputs des Graphen. Über die nebenstehende Checkbox kann entschieden werden, welche Outputs exportiert werden sollen. Bevorzugt werden dort die hinterlegten Labels angezeigt, aber sollte kein Label existieren, so wird der Identifier angezeigt. Es muss mindestens ein Output exportiert werden. Standardmäßig sind alle Outputs für den Export vorgemerkt.
In den “Sequence Settings” wird konfiguriert, aus wie vielen Bildern die zu exportierende Sequenz besteht, welcher Parameter die zu verändernde Variable ist und wie sie verändert werden soll. Aktuell kann man zwischen linearer Interpolation und manuellen Werten wählen.
In den “Export Settings” darf dann noch konfiguriert werden, in welchen Ordner der Export stattfinden soll, welches Dateiformat genommen werden soll und in welcher Auflösung die Ausgaben erzeugt werden sollen.
Zu guter Letzt klickt man dann auf Export und kann sich, je nach vorhandener Hardware und eingestellten Werten, gemütlich zurücklehnen oder sich ein wenig die Beine vertreten. Denn dann beginnt die eigentliche Arbeit, indem für jeden Variablenwert der Graph neu berechnet wird, um dann die Ergebnisse der ausgewählten Outputs zu exportieren. Die exportierten Bilder folgen dabei dem Namensschema <GRAPHNAME>_<OUTPUT>_<N>
, wobei <N>
eine laufende Nummer ist, die mit 1 beginnt.
Seid ihr diesem Beispiel komplett gefolgt, so solltet ihr nun 360 Bilder haben, die als Video wie folgt aussehen sollten:
Downloads
Ich stelle das Plugin allen Interessierten kostenlos unter der CC0 1.0 zur Verfügung.
Ihr dürft damit also eigentlich alles Legale tun, solange ihr mich nicht für etwaige Fehler verantwortlich macht. Solltet ihr Fehler finden, würde ich mich aber dennoch freuen, wenn ihr sie mir mitteilt, damit ich sie korrigieren kann 😉