TouchDesigner-like Animation
Aktuell werden meine Social-Media-Timelines gehäuft mit Animationen geflutet, die mit TouchDesigner erstellt wurden. Optisch empfinde ich diese Designs als sehr ansprechend, was wohl stark an der Kombination aus Sci-Fi/Tech und dem brutalistisch-minimalen Design liegt. Irgendwann fragte ich mich dann, ob es nicht auch möglich wäre, das Ganze in Blender nachzubauen. Spoiler: Ja, es ist möglich.
Zuerst zerlegte ich den Effekt in seine Einzelteile und baute alles Schritt für Schritt wieder auf.
Unterschiedlich große Bildbereiche werden ausgetauscht und neu platziert.
Die Bildbereiche werden teilweise mit Text oder Frames gefüllt.
Linien entstehen und verbinden einzelne ausgetauschte Bereiche.
Okay, soweit so gut.
Damit die Bereiche unterschiedliche Größen erhalten, benötige ich eine rekursive Unterteilung des Bildes. Das funktioniert relativ einfach: Ich separiere einzelne Bereiche einer Fläche durch zufällige Werte und unterteile den abgetrennten Teil erneut. Danach füge ich alles wieder zu einer Gesamtfläche zusammen. Weil es so gut funktioniert, wiederhole ich diesen Vorgang iterativ in sechs Zyklen. Im Anschluss werden aus der zufällig aufgeteilten Fläche wiederum zufällig Bereiche separiert. Diese ausgetauschten Bereiche werden dann mit einem anderen Shader versehen, beispielsweise einem Bild oder Video.
Auf den separierten Bereichen werden nun Punkte generiert, die später auch der Positionierung der Linien dienen. Auf diesen Punkten lassen sich dann Frames oder Text beliebig platzieren. Der Text wird über einen direkten String-Input eingebunden und kann anschließend verändert werden. Um eine Überlappung des Textes zu vermeiden, können die Punkte basierend auf ihrer Distanz zueinander zusammengefügt werden, wodurch eine unübersichtliche Textgenerierung verhindert wird.
Die Linien stellen ein etwas komplexeres Konstrukt dar. Hierbei verbindet eine Verschachtelung von zwei "For-Each-Element"-Zonen die jeweiligen Punkte miteinander, die im zweiten Teil generiert wurden. Damit das Ganze nicht zu unübersichtlich wird, werden bestimmte Verbindungen wieder gelöscht.