Plansequentielle Kamerafahrten mittels Morphing in...

128
DIPLOMARBEIT vorgelegt von: Christoph Oldendorf Weberstr. 35 37242 Bad Sooden-Allendorf E-Mail: [email protected] Matrikelnummer: 7752 angefertigt bei: Prof. Martin Kreyßig Zweitbetreuer: Prof. Holger Reckter eingereicht am: 29.09.2006 Hochschule Harz Fachbereich Automatisierung und Informatik Studiengang Medieninformatik Plansequentielle Kamerafahrten mittels Morphing in Autodesk Combustion Entwicklung eines Workflow zur Realisierung zentral gesteuerter Animationen unter Verwendung von Expressions und eines externen CWS-Parsers

Transcript of Plansequentielle Kamerafahrten mittels Morphing in...

Diplomarbeit

vorgelegt von: Christoph oldendorf

Weberstr. 35 37242 bad Sooden-allendorf e-mail: [email protected]

matrikelnummer: 7752

angefertigt bei: prof. martin Kreyßig

Zweitbetreuer: prof. Holger reckter

eingereicht am: 29.09.2006

Hochschule Harz Fachbereich automatisierung und informatik Studiengang medieninformatik

Plansequentielle Kamerafahrten mittels Morphing in Autodesk Combustion

Entwicklung eines Workflow zur Realisierung zentral gesteuerter Animationen

unter Verwendung von Expressions und eines externen CWS-Parsers

Verzeichnisse

inhalt

bilder

IV inhalt

Inhalt

1 Einleitung 14

1.1 rahmenbedingungen und Definitionen . . . . . . . . . .14

1.2 Historischer Kontext . . . . . . . . . . . . . . . . . . . . . . . . . . .15

1.3 problemstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16

1.4 Ziel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17

1.5 Zielerreichung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17

2 Einführung in Autodesk Combustion 22

2.1 einstellungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22

2.2 benutzerinterface . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25

2.2.1 Hierarchische ansicht im Workspace panel . . . . . . . . . . 25

2.2.2 Viewports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

2.2.3 timeline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

2.2.4 toolbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

2.2.5 operator Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

2.2.6 Scematic View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

2.2.7 info palette und Cache meter . . . . . . . . . . . . . . . . . . . . . . 31

3 Operatoren und Werkzeuge im

Überblick 34

3.1 Footage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .34

Vinhalt

3.2 2D und 3D Composite-operatoren . . . . . . . . . . . . . .36

3.3 paint- und text-operatoren . . . . . . . . . . . . . . . . . . . .37

3.4 Selektionen und masken . . . . . . . . . . . . . . . . . . . . . . .38

3.5 Color Correction . . . . . . . . . . . . . . . . . . . . . . . . . . . . .39

3.6 editing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42

3.7 Der tracker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42

3.8 Keying-operatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . .43

3.9 Das integrierte partikelsystem . . . . . . . . . . . . . . . . . . .44

4 RE:Flex Operatoren von RE:Vision

Effects 48

4.1 re:Flex Warp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .49

4.2 re:Flex motion morph . . . . . . . . . . . . . . . . . . . . . . . .56

4.3 re:Flex morph. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .58

5 Animation und Programmierung in

Combustion 62

5.1 Keyframe-animation . . . . . . . . . . . . . . . . . . . . . . . . . .62

5.2 erweiterte animationsmöglichkeiten mit Nullobjekten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .64

5.3 expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .64

VI inhalt

5.3.1 expressions hinzufügen . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

5.3.2 Nutzung der Vorteile von expressions ohne programmierkenntnisse . . . . . . . . . . . . . . . . . . . . . . . . . . 66

5.3.3 besonderheiten der programmierung in Combustion und die Cb Klasse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

5.3.4 Global verfügbare Funktionen . . . . . . . . . . . . . . . . . . . . . . 68

5.3.5 Capsules als Container für Funktionen . . . . . . . . . . . . . . 68

6 Entwicklung des Workflow 72

6.1 „blank plays DUDeN“ . . . . . . . . . . . . . . . . . . . . . . . . .72

6.2 Vorbereitung des Composite . . . . . . . . . . . . . . . . . . . .73

6.2.1 anlegen der Grundstruktur des Workspace . . . . . . . . . . 73

6.2.2 erstellung und auswahl des Footage . . . . . . . . . . . . . . . . 76

6.2.3 anordnung des Footage in Combustion . . . . . . . . . . . . . 81

6.3 Die zeitliche Dimension des Composite . . . . . . . . . .86

6.3.1 expression zur Übertragung von animationsdaten . . . . 86

6.3.2 erstellung von Kamerafahrten mittels Keyframe-animation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

6.4 Die räumliche Dimension des Composite . . . . . . . . .90

6.4.1 Verworfene ansätze zur implementierung der morphing-effekte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

6.4.2 einfügen der re:Flex motion-morph-operatoren . . . . 91

VIIinhalt

6.4.3 expression zur Synchronisierung der Splines mit den animationsdaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

6.5 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . .102

7 Parsing von CWS-Dateien mittels externer

Programme 106

7.1 aufbau des CWS-Formats . . . . . . . . . . . . . . . . . . . . .106

7.2 möglichkeiten der automatischen bearbeitung . . .107

7.3 implementierung der Funktionalität als Web-interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .109

7.3.1 Datenstruktur zum ablegen der analysedaten . . . . . . . 110

7.3.2 reguläre ausdrücke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

8 Ausblick und Verbesserungspotenziale 116

Quellen 124

bücher . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .124

Websites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .125

Ehrenwörtliche Erklärung 127

VIII bilder

Bilder„The two Ways of life“, oscar G. rejlander, 1857 . . . . . . . . . . . . . . . 15

angeordnetes Footage vor der erstellung von Kamerafahrt und Übergängen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

allgemeine einstellungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

monitor Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

empfohlenes layout des benutzerinterface für den gezeigten Workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

Workspace panel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

Verschiedene Viewport Konfigurationen . . . . . . . . . . . . . . . . . . . . . . . 27

Viewport Konfiguration mit drei Viewports . . . . . . . . . . . . . . . . . . . . 27

timeline im overview-modus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

timeline im Graph-modus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

toolbar in der Konfiguration für Composite-operatoren . . . . . . . . . 29

operator Controls für Composite-operatoren . . . . . . . . . . . . . . . . . . 29

Scematic View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

Cache meter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

Thumbnail browser zum importieren von Footage . . . . . . . . . . . . . . 35

Footage Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

einstellungen des Discreet Color Correctors . . . . . . . . . . . . . . . . . . . . 40

einstellungen zum Color matching . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

resultierender Warp aus Quellgeometrie (rot) und Zielgeometrie (grün) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

IXbilder

re:Flex Warp Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

Warp mit option accumulate Folds mit ausgangsmaterial und Geometrien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

auswirkungen verschiedener Verarbeitungsrichtungen. . . . . . . . . . . 54

individuelle einstellungen für einzelne Spline-paare unter re:Flex Warp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

Fenster Numerical input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

re:Flex motion morph Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

re:Flex morph Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

aktivierter animate button . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

modifizierte animationskurve für einen ease in - ease out - effekt 63

einstellungen des onion Skin modus . . . . . . . . . . . . . . . . . . . . . . . . . . 63

parent einstellungen für Composite layer . . . . . . . . . . . . . . . . . . . . . . 64

expressions in der timeline hinzufügen . . . . . . . . . . . . . . . . . . . . . . . 65

buttons zum Verknüpfen von Kanälen und auswählen vordefinierter expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

expression browser Dialog zur auswahl vordefinierter expressions 66

erstellen neuer Kanäle mittels der Capsule Controls . . . . . . . . . . . . . 69

DVD „blank plays DUDeN“ - Coverart von Günther Förg und tobias rehberger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

erstellen eines neuen Composite operators . . . . . . . . . . . . . . . . . . . . 74

Scematic View des Workspace Getting Started.cws . . . . . . . . . . . . . . 75

X

Hierarchische Struktur des Workspace Getting Started.cws . . . . . . . 75

planung der Kamerafahrt bei der Konzeption von Serienbildern . . . 77

Glasflächen als halbtransparente ebenen im bildmaterial zu „blank plays DUDeN“ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

ausgewähltes Footage für das musikvideo . . . . . . . . . . . . . . . . . . . . . . 80

importieren des Footage in den vorbereiteten Workspace . . . . . . . . . 81

Fertig positioniertes Footage des musikvideos . . . . . . . . . . . . . . . . . . 83

Nesting options für die layer mit dem Footage . . . . . . . . . . . . . . . . . 83

Scematic View der Nested layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

expressions mit Funktionsaufrufen im Nullobjekt Slave animation 87

timeline mit in ihrer länge angepassten Nested layern . . . . . . . . . . 88

Fertig angepasste animationskurven für das musikvideo . . . . . . . . . 89

timeline mit auf die benötigte länge angepassten re:Flex motion-morph-operatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

Frame in der mitte eines morphs umgeben von Quell- und Zielbild mit entsprechenden Splines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

ansatz zur Übertragung von initialen rotationswerten . . . . . . . . . . 101

aufruf der Funktion GetVirtualparentData in den animationskanälen eines Splines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

Web-interface nach dem Hochladen der CWS-Datei . . . . . . . . . . . . 109

Einleitung

rahmenbedingungen und Definitionen

Historischer Kontext

problemstellung

Ziel

Zielerreichung

14 einleitung

1 Einleitung im vorliegenden Kapitel wird der Gegenstand der arbeit „plansequen-tielle Kamerafahrten mittels morphing in autodesk Combustion“ vor-gestellt. einführend sollen formale rahmenbedingungen der arbeit besprochen und Definitionen der begriffe Compositing und planse-quenz gegeben werden.

basierend auf einer kurzen einordnung des Compositing im Kon-text der Geschichte der Fotografie und des Films soll anschließend die problemstellung formuliert werden. Die daraus abgeleitete Zielsetzung beschreibt den beabsichtigten erkenntnisgewinn der arbeit.

abschließend wird aufgeschlüsselt, welchen beitrag die einzelnen Kapitel zur erschließung des Themas leisten.

1.1 Rahmenbedingungen und Definitionen

autodesk Combustion 4 ist allein in englischer Sprache verfügbar. Die einschlägige literatur ist ebenfalls zu einem großen teil englischspra-chig. Deshalb wird nicht versucht, gängige Fachtermini und bezeich-nungen, die sich sowohl in Combustion selbst als auch in der literatur und den zugehörigen online-Handbüchern wiederfinden, konsequent ins Deutsche zu übertragen. Dies würde die praktische anwendbarkeit mindern. Der aus dieser entscheidung resultierende Grad der Verwen-dung von anglizismen muss daher in Kauf genommen werden.

Das digitale Compositing bildet den Kern des anwendungsbereichs des Softwarepakets autodesk Combustion 4. Der autor und Visual effects Supervisor ron brinkmann definiert den begriff des Compo-siting als: „[…] combination of at least two source images to produce an integrated result”1, also als die Kombination von mindestens zwei Quellbildern zu einem visuell ganzheitlichen ergebnis.

ergänzend dazu soll der begriff plansequenz wie folgt definiert wer-den: „bei der plansequenz findet kein Schnitt statt. Unterschiedliche Situationen ergeben sich in einer ununterbrochenen einstellung einzig und allein durch die bewegung der Kamera. Diese kann irgendwo lang fahren und somit den bildinhalt ändern. Sie kann zoomen und somit den bildinhalt ändern. Sie kann geschwenkt oder geneigt werden und ändert dabei ständig den bildinhalt.“2

1 brinkmann (1999), S. 22 biebeler (2006), S. 94

15einleitung

1.2 Historischer Kontext

Die idee der Umsetzung eines visuellen Gesamtkonzepts als produkt der geschickten Kombination mehrer einzelbilder ist nur unwesentlich jünger als die Fotografie selbst. 1857, nur 20 Jahre nach der erfindung des Negativ-positiv-Verfahrens, erstellte oscar G. rejlander mit dem in Bild 1 gezeigten Werk „The two Ways of life“ eine fotografische ar-beit, die dieser Definition genügt und als frühes komplexes Composite bezeichnet werden kann. Da das Werk durch die selektive einbelich-tung von 32 unterschiedlichen Glasnegativen hergestellt wurde, sprach man damals von einem „combination print“.3

bereits zu anfang des 20. Jahrhunderts wurde dieses Vorgehen mit der erfindung des optischen printers auf den Film übertragen und im laufe der Zeit weiterentwickelt. Seit ende der 80er-Jahre hielten mit wachsender Geschwindigkeit digitale Verfahren einzug in den bereich des Compositing. in heutigen Filmproduktionen hat das digitale Com-positing den optischen printer und die mit ihm realisierten effekte nahezu vollständig abgelöst.4

mit der wachsenden rechenleistung von Desktop-Systemen können heute zahlreiche aufgaben dieses noch vor kurzem sehr aufwändigen und teuren bereichs der Filmproduktion mit geeigneter Software auch ohne zusätzliche Hardwareunterstützung realisiert werden.5 in diesen Zusammenhang ist auch die vorgelegte arbeit einzuordnen.

3 Vgl. brinkmann (1999), S. 4 ff.4 Vgl. mulack (2002), S. 505 Vgl. Starmann (2004), S. V

◀ Bild 1„The two Ways of life“, oscar G. rejlander, 1857(photo courtesy of The royal photographic Society Collection, bath, england. www.rps.org)

16 einleitung

1.3 Problemstellung

Die vorliegende arbeit beschäftigt sich mit möglichkeiten zur erstel-lung filmischer arbeiten, die das Konzept klassischer Composites um eine räumliche und eine zeitliche Dimension erweitern.

Dazu sind plansequentielle Fahrten virtueller Kameras als teil des Composite vorgesehen. Das von ihnen abgefahrene Footage soll zu keinem Zeitpunkt ein statisches Gesamtbild erzeugen, sondern sich während der Fahrt dynamisch verändern. aufbauend auf der in Bild 2 gezeigten räumlichen anordnung verschiedener Footage-elemente soll aus der einen Szene nahtlos eine andere hervorgehen.

Da einfache Überblendungen eine plansequenz im Sinne der gegebenen Definition zur Schnittsequenz werden lassen, sollen zur Wahrung der geforderten visuellen Ganzheitlichkeit morphing-effekte eingesetzt werden. Die für Überblendungen typischen Doppelbelichtungseffekte sollen so auf die bereiche außerhalb der gemorphten attraktionen be-grenzt werden.

Das wesentliche problem bei der erstellung solcher arbeiten mit Combustion ist die Gewährleistung der bewegungsfreiheit der virtu-ellen Kamera während der morphs.

Die zahlreichen für die morphs benötigten Geometrieelemente kön-nen erst auf einem Frame der fertigen Fahrt gezeichnet werden. Dies gleicht dem Zeichnen auf einem imaginären monitor. bewegungen im Film haben keinen einfluss auf die Zeichnung. Zur effektiven Synchro-nisierung der Geometrien mit den bewegungen der Kamerafahrt kann nur auf die programmierung von expressions zurückgegriffen werden. eine effiziente lösung des problems ist mit den programmiermöglich-keiten in Combustion jedoch nicht möglich, da manuell expressions in mehrere tausend animationskanäle eingefügt werden müssten.

Bild 2 ▶angeordnetes Footage

vor der erstellung von Kamerafahrt und

Übergängen

17einleitung

1.4 Ziel

ergebnis der arbeit soll ein detailliert ausgearbeiteter Workflow zur er-stellung von filmischen arbeiten unter einhaltung der zuvor formulier-ten Kriterien für plansequentielle Kamerafahrten über sich dynamisch eröffnende Composites sein. Die räumlich übereinander angeordneten ebenen eines solchen Composite sollen durch geeignete morphing- effekte so miteinander verknüpft werden, dass dem anspruch nach vi-sueller integrität zu jedem Zeitpunkt genügt wird.

es soll untersucht werden, wie dieses Ziel mit den verwendeten Werkzeugen autodesk Combustion 4 und re:Flex effektiv und effi-zient erreicht werden kann. besonderes augenmerk soll dabei auf die möglichkeiten der programmierung in Combustion gelegt werden.

Zur lösung der effizienz-problematik des zu erstellenden Work-flow soll ein externes programm zur bearbeitung von CWS-Dateien entwickelt und vorgestellt werden, das die limitierungen der program-mierung von expressions bezüglich der automatisierbarkeit von sich wiederholenden einzelschritten überwindet.

Zur erreichung dieses Ziels soll in erster linie die induktive metho-de, zum rückschluss vom konkreten beispielprojekt auf den allgemein zu formulierenden Workflow, verwendet werden.

1.5 Zielerreichung

im 2. Kapitel wird eine einführung in autodesk Combustion gegeben. Dabei werden die Grundlagen für das weitere arbeiten in Form der empfehlung von einstellungen und erläuterung des benutzerinterface der Software gelegt. Ziel des Kapitels ist insbesondere die Vermittlung der besonderheiten der benutzerführung, um neuen anwendern die orientierung in Combustion zu erleichtern.

im 3. Kapitel soll ein Überblick über die möglichkeiten von Com-bustion 4 gegeben werden. in diesem rahmen werden auch einige für die entwicklung des gewünschten Workflow nicht direkt benötigte operatoren und Werkzeuge vorgestellt.

Der Schwerpunkt des 4. Kapitels liegt auf den direkten Grundla-gen des Workflow. Hier werden die re:Flex operatoren von revisi-on effects detailliert erläutert. in der literatur sind diese bislang nur am rande erwähnt. als online-Handbuch ist ihnen nur ein einziges großes Html-Dokument beigefügt.

Nach der Vorstellung der einzelnen operatoren werden im 5. Ka-pitel die möglichkeiten der animation und programmierung in Com-

18 einleitung

bustion erläutert. Damit ist der erste teil der arbeit abgeschlossen, der das basiswissen für den zu entwickelnden Workflow vermittelt.

im 6. Kapitel wird geschildert, welche Wege zur realisierung des ge-wünschten produkts beschritten wurden. Zunächst wird das Umfeld des beispielprojekts vorgestellt. anschließend wird die entwicklung des bereitgestellten arbeitsmaterials nachvollzogen. intensiv wird da-bei das benötigte Footage und seine erstellung bzw. auswahl behan-delt. abschließend wird aufgezeigt, wie eine Fahrt über den gesamten Zeitraum im rahmen der Dimensionen des ausgangsmaterials mit ei-ner frei beweglichen virtuellen Kamera erstellt werden kann und wie die zu erstellenden morphing-effekte mit dieser Schritt halten können. Dazu werden die möglichkeiten der programmierung in Combustion 4.0 ausgereizt.

Das 7. Kapitel beschäftigt sich damit, wie der bis dahin noch hohe arbeitsaufwand, der größtenteils aus sich wiederholenden tätigkeiten besteht, drastisch verringert werden kann. Da die möglichkeiten inner-halb von Combustion ausgereizt sind, wird analysiert, wie von Com-bustion gespeicherte Workspace-Dateien durch speziell entwickelte ex-terne Hilfsmittel automatisch bearbeitet werden können. ansatz und Vorgehensweise bei der entwicklung einer entsprechenden applikation mit pHp werden dokumentiert und ein für den benutzer des Workflow intuitiv bedienbares Web-interface zur automatisierten Weiterbearbei-tung von vorbereiteten Combustion Workspace-Dateien vorgestellt. Dieses innovative Hilfsmittel baut auf der interdisziplinären anwen-dung der im Studiengang medieninformatik vermittelten Fähigkeiten auf.

Das 8. Kapitel gibt einen ausblick darauf, wie zukünftige Versionen von Combustion aussehen könnten. Dabei werden Verbesserungs-potenziale offen gelegt und insbesondere im bereich der program-mierung Vorschläge für neue Features und die Weiterentwicklung der Software gemacht.

Einführung in Autodesk Combustion

einstellungen

benutzerinterface

22 einführung in autodesk Combustion

2 Einführung in Autodesk Combustionautodesk Combustion ist eine führende Software für Compositing-, paint- und animationsaufgaben auf Desktop-Systemen. mit der wach-senden rechenleistung dieser Computer können zahlreiche aufgaben der genannten bereiche auch ohne zusätzliche Hardwareunterstützung realisiert werden. Combustion kann in einem Netzwerk problemlos in bestehende Schnitt- bzw. Compositing-Umgebungen integriert wer-den, so dass leicht Videomaterial ein- bzw. ausgespielt werden kann.6

aktuell liegt Combustion in der Version 4.0 für Windows- und macintosh-Systeme vor. erst seit der aktuellen Version wird das pro-dukt nicht mehr unter dem Namen Discreet Combustion vertrieben7, obwohl die Firma Discreet logic bereits 1998 von autodesk gekauft wurde8.

mit einem preis von unter 1.000 US-Dollar stellt Combustion eine kostengünstige alternative zu autodesks Compositing- und effekt-Systemen dar, die derzeit noch unter dem markennamen „Discreet“ vertrieben werden. Von großem Vorteil ist hierbei die abwärtskom-patibilität dieser Systeme. Wenn die von Combustion gebotenen mög-lichkeiten für ein projekt nicht mehr ausreichen, kann es auf Discreet Flint, Flame oder inferno Systemen weiter bearbeitet werden.9

im vorliegenden Kapitel werden grundlegende einstellungen erläu-tert sowie das benutzer-interface von Combustion vorgestellt.

2.1 Einstellungen

Nach dem Start von Combustion können im menü File > preferences grundlegende einstellungen getroffen werden. Die meisten der Stan-dardeinstellungen sind für den vorgestellten Workflow angemessen. im Folgenden sollen lediglich einige abweichende einstellungen vor-geschlagen werden.

Um Combustion schnell komplett auf seine Standardeinstellungen zurückzusetzen, kann die Datei host.ini gelöscht werden. Sie befindet sich auf Windows-Systemen im Verzeichnis Dokumente und einstel-lungen/benutzername/anwendungsdaten/combustion4. Dies ist mit einer Neuinstallation der Software vergleichbar.10

6 Vgl. Starmann (2004), S. V7 Vgl. pC plus – autodesk Combustion 4 review : www.pcplus.co.uk, (25.4.2006)8 Vgl. autodesk and Discreet logic combine 3D expertise : management.silicon.com, (25.4.2006)9 autodesk Combistion – product information : usa.autodesk.com, (25.4.2006)10 Vgl. Davis (2004), S. 3

23einführung in autodesk Combustion

Unter den preferences kann unter Host > Colors zwischen zwei Farb-profilen für das benutzerinterface gewählt werden. Standardmäßig ist das dunklere profil Charcoal ausgewählt. aufgrund der besseren Dif-ferenzierbarkeit im Druck liegt allen bildschirmfotos dieser arbeit das alternative Farbprofil platinum zugrunde. benutzerdefinierte einstel-lungen der Farben sind ebenfalls möglich.11

in Bild 3 sind die allgemeinen einstellungen unter Host > General abgebildet.

Zu empfehlen ist die aktivierung der option auto Save, da es gera-de bei der arbeit mit den re:Flex plugins leicht zu Softwareabstürzen kommen kann. Das backup zu einer Datei mit der bezeichnung datei-name.cws wird unter dem Namen dateiname_bak.cws gespeichert.

Die aktivierung der option increment on Save ist ebenfalls zu emp-fehlen. Damit wird beim Speichern eines Workspaces über File > Save dem Dateinamen eine Zahl angefügt, die bei jedem weiteren Speichern um eins erhöht wird. So bleiben die einzelnen Versionen des projekts erhalten. Durch die nicht destruktive arbeitsweise von Combustion ist es zwar möglich, bei bedarf alle zuvor veränderten parameter erneut zu verändern, oft ist es jedoch zeitsparender, auf eine frühere Version zurückzugreifen.

11 Vgl. autodesk (2005), S. 11

◀ Bild 3allgemeine einstellungenunter File > preferences > Host > General

24 einführung in autodesk Combustion

Die übrigen einstellungen unter Host > General wurden in bild 3 auf ihren Standardwerten belassen. Wenn das verwendete Computersys-tem über mehrere prozessoren verfügt bzw. Hyper-Threading fähig ist, empfiehlt es sich, sicher zu stellen, dass die option enable multi-pro-cessing aktiviert ist, um die leistung des Systems voll auszuschöpfen.12

Combustion unterstützt bis zu 4 monitore, wobei für ein übersicht-liches arbeiten mindestens zwei bildschirme benötigt werden. in Bild 4 sind die einstellungen unter Host > monitors abgebildet, die für den vorgestellten Workflow empfohlen werden.

abweichend von der Standardkonfiguration für zwei bildschirme soll-ten Views und infos nicht auf beiden bildschirmen angeordnet wer-den. Die Workspace und timeline paletten werden durch aktivieren der option Float aus dem benutzerinterface abgekoppelt und sind nun frei platzierbar. Sie können anschließend so auf dem zweiten monitor

12 Vgl. Davis (2004), S. 3 ff.

Bild 4 ▶monitor Setup

unter File > preferences > Host >

monitors

25einführung in autodesk Combustion

angeordnet werden, dass sie jederzeit einen Überblick über das projekt bieten und gut zugänglich sind. Bild 5 zeigt das resultierende layout des benutzerinterface. Falls ein zweiter bildschirm nicht zur Verfügung steht, kann die Workspace palette mit der taste F3 schnell ein- bzw. ausgeblendet werden, Gleiches gilt für die timeline mit der taste F4.

Die mit roten Ziffern gekennzeichneten bereiche 1 Workspace panel, 2 Viewports, 3 timeline, 4 toolbar und 5 operator Controls werden in den Unterpunkten 1 bis 5 des folgenden abschnitts näher betrachtet.

2.2 Benutzerinterface

Das benutzerinterface von Combustion ist so angelegt, dass stets ver-sucht wird irrelevante Daten auszublenden. es sind nur die optionen sichtbar, die für das aktuell im Workspace ausgewählte objekt von relevanz sind. im Vergleich zum Konkurrenzprodukt adobe after effects ist das interface somit aufgeräumter und überschaubarer. Die grafitgraue Farbgebung vermittelt einen professionellen eindruck.13 in den folgenden abschnitten werden die einzelnen bestandteile des be-nutzerinterface näher betrachtet.

2.2.1 Hierarchische ansicht im Workspace panel

ein projekt in Combustion heißt Workspace und wird in einer Datei mit der endung CWS gespeichert. es kann zu jedem Zeitpunkt nur ein Workspace geöffnet sein. es ist jedoch möglich, den inhalt einer anderen Workspace-Datei in die gerade geöffnete zu importieren. Das Workspace panel beinhaltet den prozessbaum als eine hierarchische Struktur der objekte eines projekts. Die oberste Unterteilung innerhalb

13 Vgl. pC plus – autodesk Combustion 4 review : www.pcplus.co.uk, (25.4.2006)

◀ Bild 5empfohlenes layout des benutzerinterface für den gezeigten Workflow

26 einführung in autodesk Combustion

des Workspace sind sogenannte branches. ein jeder solcher branch ist eine eigenständige Verkettung oder Sequenz von Daten. Diese re-sultiert aus der anwendung eines oder mehrerer operatoren auf ein Footage-objekt.

ein beispiel für einen solchen branch ist ein Foto, das im JpeG- Dateiformat vorliegt und zunächst mit dem operator Discreet Color Corrector umgefärbt und im anschluss mittels Sharpen operator ge-schärft wird. Der resultierende branch besteht aus dem Footage und den beiden darauf angewendeten operatoren. Die aus dem Footage bezogenen pixelinformationen werden in den beiden Schritten zum ergebnis des branch verarbeitet. Dieser Kette können jederzeit weitere operatoren hinzugefügt werden, so könnte der branch z.b. als layer eines Composite operators verwendet werden.14

in Bild 6 ist ein Workspace panel mit dem zuvor erdachten branch abgebildet. Das Workspace panel dient zur organisation und Struk-turierung des projekts. Hier können operatoren erzeugt und objekte

umbenannt oder gelöscht werden. Des Weiteren wird über das Workspace panel sowohl das aktuell betrach-tete, als auch das aktuell zu bearbeitende objekt ausge-wählt. letzteres geschieht,

indem auf den Namen eines objekts geklickt wird. Dabei ist zu be-achten, dass nicht auf das icon des objekts geklickt wird. Dies führt nämlich dazu, dass das zugehörige objekt deaktiviert wird. Das aktuell selektierte objekt wird durch einen pfeil auf der rechten Seite seines Namens gekennzeichnet.

Das abgerundete rechteck, das in bild 6 vor dem Composite zu se-hen ist, kennzeichnet den inhalt des aktuell ausgewählten Viewports. im gezeigten beispiel wird das endergebnis des Composite im aktu-ellen Viewport gezeigt. Um das ergebnis eines anderen operators im aktuellen Viewport zu betrachten, muss auf dessen Namen ein Doppel-klick ausgeführt werden.15

14 Vgl. Davis (2004), S. 9 f.15 Vgl. Davis (2004), S. 40 ff.

Bild 6 ▶Workspace panel

27einführung in autodesk Combustion

2.2.2 Viewports

als Viewport wird in Combustion ein Fenster bezeichnet, in dem ein beliebiges Footage-objekt bzw. das ergebnis eines operators ange-zeigt werden kann. eine wesentliche Stärke des benutzerinterface von Combustion ist, dass mit multiplen Viewports mehrere objekte bzw. arbeitsschritte zugleich visualisiert werden können. Dazu kann zwischen den in Bild 7 gezeigten Viewport Konfigurationen gewech-selt werden. auf jedem bildschirm können so bis zu vier Viewports auf verschiedene Weise angeordnet werden. Bild 8 zeigt verschiedene operatoren des zuvor erdachten branch in drei Viewports.

ein Viewport wird durch anklicken aktiviert und ist anschließend mit einer weißen Umrandung gekennzeichnet. in bild 8 ist das rechte Viewport aktiv. Der inhalt des aktiven Viewports kann mit den tas-tenkombinationen StrG + und StrG – verkleinert bzw. vergrößert werden. Durch Halten der leertaste und bewegung der maus kann der gezeigte ausschnitt des inhalts eines Viewports festgelegt werden.

2.2.3 timeline

Das timeline ist ein interface, das zur Visualisierung, bearbeitung und erstellung von animations-Keyframes dient. Des Weiteren werden auch expressions über die timeline erstellt und bearbeitet. Die time-line zeigt das aktuell im Workspace panel selektierte objekt und seine attribute und Unterobjekte im Zeitverlauf.16 Das folgende Bild 9 zeigt eine timeline mit dem zuvor vorgestellten branch.

16 Vgl. Davis (2004), S. 223

◀ Bild 7Verschiedene Viewport Konfigurationen

◀ Bild 8Viewport Konfiguration mit drei Viewports

28 einführung in autodesk Combustion

auf der linken Seite der timeline befindet sich eine hierarchische Struktur, die der des Workspace panels ähnelt, im Gegensatz zu die-sem in der Standardeinstellung jedoch auch Zugang zu den Kanälen der attribute der einzelnen objekte bietet. Diese Kanäle können ent-weder Keyframes oder expressions enthalten.17 Der wichtigste button der timeline befindet sich in der rechten oberen ecke und dient zum Umschalten zwischen dem in bild 9 gezeigten overview-modus und dem in Bild 10 dargestellten Graph-modus.

Der overview-modus visualisiert das Vorhandensein von expressions, die länge und lage der einzelnen objekte sowie die lage eventueller animations-Keyframes im Zeitverlauf.18

Der Graph-modus hingegen visualisiert die von expressions oder animations-Keyframes definierten animationskurven der angewähl-ten Kanäle. Dieser modus dient zur bearbeitung und Feineinstellung der durch Keyframe-animation erzeugten Kurven. Die Zeit ist in bei-den modi horizontal aufgetragen. Sie wird abhängig von den in den playback Controls getroffenen einstellungen in Frames bzw. time-Code angegeben. im Graph-modus sind darüber hinaus vertikal die Werte der einzelnen Kanäle aufgetragen.19

17 Der Umgang mit Keyframes und expressions wird in Kapitel 5 behandelt.18 Vgl. Davis (2004), S. 223 ff.19 Vgl. Starmann (2005), S. 12 f.

Bild 9 ▶timeline im

overview-modus

Bild 10 ▶timeline im Graph-modus

29einführung in autodesk Combustion

2.2.4 toolbar

Das toolbar enthält alle aktuell verfügbaren bearbeitungsoptionen. Der inhalt dieses kontextsensitiven interface ist vom im aktuellen Viewport gezeigten objekt abhängig. in der Standardkonfiguration befindet sich das toolbar hinter dem Workspace-panel.20 in Bild 11 ist das toolbar in der Konfiguration für Composite-operatoren abgebildet.

2.2.5 operator Controls

ein weiteres kontextsensitives benutzer-interface-element sind die operator Controls. Je nachdem, was für ein operator aktuell im Workspace panel selektiert ist, können hier die zugehörigen opti-onen bearbeitet werden. Bild 12 zeigt als beispiel die einstellungen für Composite-operatoren im 2D-raum. Für andere operatoren, z.b. den Discreet Color Corrector, werden völlig andere einstellungen benötigt, die jedoch für Composite-operatoren irrelevant sind. Dieser ansatz der ausblendung kann beim einarbeiten in Combustion für etwas Verwirrung sorgen. Wer ihn jedoch einmal verinnerlicht hat, erkennt schnell seine Vorteile.

2.2.6 Scematic View

Das Scematic View ist eine alternative zur hierarchischen Visualisie-rung des projekts im Workspace panel. in der Scematic-Darstellung wird das projekt als Flussdiagramm dargestellt. Der Datenfluss erfolgt in richtung der Datenverarbeitung vom Footage hin zum letzten opera-tor eines branch. Footage und operatoren werden als Nodes dargestellt,

20 Vgl. Starmann (2005), S. 11

◀ Bild 11toolbar in der Konfiguration für Composite-operatoren

◀ Bild 12operator Controls für Composite-operatoren

30 einführung in autodesk Combustion

der Datenfluss wird mit pfeilen visualisiert. Diese in Bild 13 gezeigte Darstellung kann nicht nur zur Visualisierung des gesamten projekts genutzt werden, sondern auch zur intuitiven reorganisation.21

in dieser ansicht können leicht Verbindungen gelöscht bzw. neu gezo-gen und so reihenfolge und abhängigkeit einzelner Nodes beeinflusst werden. Neue operatoren können jederzeit über ein mit einem rechts-klick zugängliches menü hinzugefügt werden.

Footage-Nodes haben im Gegensatz zu operator-Nodes, die zum teil sogar über zwei inputs verfügen, keinen input. im Gegensatz zu Foot-age und operatoren werden layer nicht als Thumbnails, sondern als runde Nodes dargestellt. layer-Nodes können nie mehr als einen input haben. mit ausnahme von edits und Composites werden die bestand-teile einzelner operatoren im Scematic View nicht visualisiert, son-dern lediglich der Datenfluss in und aus den operatoren. So kommt es, dass ein operator mit einer Vielzahl von Unterobjekten als Thumbnail seines endergebnisses visualisiert wird.

bei der arbeit im Scematic View ist es wichtig, stets auf die aktuelle position in der Zeitleiste zu achten, da alle erzeugten layer und opera-toren an der aktuellen position im zeitlichen ablauf erzeugt werden.22

21 Vgl. Davis (2004), S. 11622 Vgl. Davis (2004), S. 122 ff.

Bild 13 ▶Scematic View

31einführung in autodesk Combustion

2.2.7 info palette und Cache meter

Die info palette befindet sich im vorgeschlagenen benutzerinterface-layout am unteren bildschirmrand des primären monitors. Sie ent-hält von links nach rechts betrachtet informationen über die aktuelle position des mauszeigers, die Farbe des gerade unter dem mauszeiger befindlichen pixel und den Namen des aktuell geöffneten Workspace. Dieser Name wird bei der arbeit mit manchen Werkzeugen, wie z.b. dem rotationswerkzeug durch werkzeugspezifische rückmeldungen, ersetzt - im Falle des rotationswerkzeugs durch die Gradzahl. Das in Bild 14 ge-zeigte Cache meter, ein wichtiger teil der info palette, muss nach der installation von Combustion erst aktiviert werden. Dies geschieht über das durch einen rechtsklick auf eine beliebige position in der info pa-lette erreichbare Kontextmenü.23

Das Cache meter bietet zu jedem Zeitpunkt einen Überblick darü-ber, wie viel arbeitsspeicher Combustion zur Verfügung steht und wie viel davon aktuell verwendet wird. Dies ist von bedeutung, da bei der arbeit mit Combustion informationen ausschließlich im arbeitsspei-cher gepuffert werden. Sobald dieser voll ist, werden teile der zuvor berechneten informationen verworfen.

23 Vgl. Davis (2004), S. 16 f.

◀ Bild 14Cache meter

Operatoren und Werkzeuge im Überblick

Footage

2D und 3D Composite-operatoren

paint- und text-operatoren

Selektionen und masken

Color Correction

editing

Der tracker

Keying-operatoren

Das integrierte partikelsystem

34 operatoren und Werkzeuge im Überblick

3 Operatoren und Werkzeuge im Überblick

im folgenden Kapitel wird ein Überblick über die wichtigsten ope-ratoren in Combustion gegeben. Der erste operator in einem neuen Combustion Workspace muss über das menü File > New erzeugt wer-den, dabei kann aus den typen Composite, paint, text, particles, edit und dem einfachsten Footage element Solid gewählt werden. Der Um-gang mit Footage wird als weitere Grundlage im ersten abschnitt des Kapitels detailliert erläutert.

in einem bestehenden projekt können weitere operatoren über das Workspace panel oder die Scematic View hinzugefügt werden. im Workspace panel wird an der ausgewählten Stelle der Hierarchie ein operator über das per rechtsklick zugängliche Kontextmenü hin-zugefügt. in der Scematic View ist das Vorgehen ähnlich. Die erste möglichkeit einen operator einzufügen ist ein rechtsklick auf einen link, wobei der neue operator zwischen den beiden durch den link verbundenen elementen eingefügt wird. eine andere option besteht darin, einen operator durch rechtsklick an eine beliebige freie Stelle des Scematic Views als neuen branch hinzuzufügen und später in das bestehende Flussdiagramm einzubinden.

Die detaillierte erläuterung sämtlicher einstellungen sowie gän-giger arbeitsweisen mit den in diesem Kapitel vorgestellten opera-toren und Werkzeugen würde den rahmen des Kapitels sprengen. Für weitere informationen und schrittweise anleitungen soll daher an die-ser Stelle auf das onlinehandbuch und das buch „The Focal easy Guide to Combustion 4“ von Gary m. Davis als Nachschlagewerke verwiesen werden.

3.1 Footage

Footage-objekte sind, hierarchisch betrachtet, die unterste ebene eines Combustion-projekts. als Footage wird sämtliches material bezeich-net, das in einen Workspace importiert wurde. Darunter fallen einzel-ne pixel- oder Vektorgrafiken sowie Filmmaterial und animationen als bildsequenz oder Videodatei. Diese Footage-objekte können hinsicht-lich ihrer art, auflösung, länge, Frame- und bit-rate variieren und dennoch im gleichen Workspace kombiniert werden.24

aufgrund des kontextsensitiven ansatzes der benutzerführung in Combustion kann Footage nicht jederzeit importiert werden, sondern

24 Vgl. Davis (2004), S. 8

35operatoren und Werkzeuge im Überblick

nur, wenn im Workspace panel ein Composite- oder edit-operator se-lektiert ist. erst dann ist im menü File der menüpunkt import Footage verfügbar. Der zugehörige Shortcut Strg + i funktioniert ebenfalls nur dann.25

Darüber hinaus kann Footage auch direkt über das Workspace pa-nel importiert werden. Wird auf einen entsprechenden operator ein rechtsklick ausgeführt, ist die option import Footage teil des ange-zeigten Kontextmenüs.

Jede der genannten Vorgehensweisen führt dazu, dass dem benut-zer der in Bild 15 gezeigte Thumbnail browser angezeigt wird, mit dessen Hilfe Footage-elemente auf den lokalen Datenträgern oder im Netzwerk ausgewählt werden können.

Nachdem ein oder mehrere Footage-elemente importiert wurden, be-finden sie sich im Workspace panel zum einen in der Hierarchie des projekts und zum anderen in der an unterster Stelle angeordneten Footage library. Um einstellungen für ein Footage-objekt vorzuneh-men, muss es an einer dieser positionen ausgewählt werden, da erst dann die entsprechenden Footage Controls im bereich der operator Controls zugänglich sind.26

25 Vgl. Davis (2004), S. 3026 Vgl. Davis (2004), S. 33 f.

◀ Bild 15Thumbnail browser zum importieren von Footage

36 operatoren und Werkzeuge im Überblick

eine ausnahme vom geschilderten Vorgehen stellt die einfachste Form von Footage in Combustion dar; das Solid. ein Solid ist ein Frame fest-gelegter Farbe. es wird nicht importiert, sondern innerhalb von Com-bustion erzeugt, z.b. über das menü File > New.

Die in Bild 16 gezeigten Footage Controls sind in zwei teile geglie-dert. Zum einen in die Source und zum anderen in die output Settings. Die Source Settings bestimmen, wie Quellmaterial interpretiert wird. Dazu können u.a. Frame-rate und länge eingestellt, Halbbildeinstel-lungen getroffen und das pixelseitenverhältnis festgelegt werden.27

alle einstellungen, die sich nicht direkt auf das Quellmaterial, sondern auf seine Verwendung in Combustion beziehen, können über die out-put Settings eingestellt werden. Dazu zählen z.b. die zu verwendende auflösung in pixel sowie Start- und end-Frame des zu verwendenden abschnitts.28

eine der wichtigsten einstellungen in den Footage Controls ist die option make proxy. Diese option erweitert die vier, global für die Viewports angebotenen Qualitätsmodi durch den austausch hochauf-lösenden Footages um eine Version mit niedrigerer auflösung. Die-ser sogenannte proxy kann dann während der arbeit mit Combustion anstatt des originalmaterials verwendet werden, um Speicherkapazität und insbesondere berechnungszeit einzusparen.29

3.2 2D und 3D Composite-Operatoren

Composite-operatoren sind eines der vielseitigsten und wichtigsten elemente in Combustion. Sie sind die Grundlage der rekombination verschiedener elemente, wie Footage oder outputs anderer opera-toren, zu einem visuell ganzheitlichen ergebnis.

27 Vgl. Davis (2004), S. 34 ff.28 Vgl. Davis (2004), S. 36 f.29 Vgl. Davis (2004), S. 38

Bild 16 ▶Footage Controls

37operatoren und Werkzeuge im Überblick

Sie können dazu auf die von Grafikbearbeitungsprogrammen wie adobe photoshop bekannte Weise im 2D-raum erstellt werden. Dabei wird, analog zur arbeitsweise in photoshop, als metapher zur bestim-mung der prioritäten einzelner ebenen ein Stapel verwendet. Die in der Hierarchie des Workspace panels oberste ebene wird auch als oberstes element dieses Stapels angenommen. im bereich der 3D Composite-operatoren wird diese Zuordnung jedoch gegebenenfalls durch die positionen der ebenen in Z-richtung aufgehoben.

Combustion ist eine der wenigen applikationen, mit denen auf die-se Weise auch im 3D-raum mit 2D-ebenen gearbeitet werden kann. Die frei im raum angeordneten ebenen mit ihren elementen werden dazu durch eine ebenfalls im 3D-raum bewegliche Kamera betrach-tet. Darüber hinaus können lichter gesetzt werden, die außer zur be-leuchtung der Szene auch zum erzeugen von Schatten genutzt werden können.30

in photoshop auf mehreren ebenen vorbereitete Dateien können un-ter deren erhaltung nach Combustion importiert werden. eventuelle Überblendungseigenschaften der ebenen bleiben dabei erhalten. Zum import stehen mehrer optionen zur auswahl. merged image reduziert eine pSD Datei auf eine ebene. Der modus Grouped importiert die ebenen der Datei in den aktuellen Composite operator und stellt ein Nullobjekt zu dessen Steuerung zur Verfügung.

Composite-operatoren können beliebig ineinander geschachtelt werden. Dieses als Nesting bezeichnete Verfahren bietet den Vorteil, dass eine beliebige anzahl von Unterebenen in einem Composite ope-rator als eine zusammengehörige ebene behandelt werden kann.

3.3 Paint- und Text-Operatoren

bevor 1999 Discreet Combustion 1.0 veröffentlicht wurde, existierten zwei programme mit den Namen paint* und effect*, die jedoch in ihrer anwendung fast immer als einheit eingesetzt wurden. paint* war ein 2D Vektorzeichenpaket und effect* eine 3D Compositing Umgebung. Dies erklärt, warum sich fast die Hälfte der Features von Combustion in dem schlicht paint genannten operator befindet.31

auf die Vielzahl der möglichkeiten der anwendung von paint-operatoren soll an dieser Stelle nicht eingegangen, sondern nur die möglichkeiten von paint-operatoren grundsätzlich beschrieben wer-

30 peterson, ... (2004), S. 231 Vgl. Davis (2004), S. 56

38 operatoren und Werkzeuge im Überblick

den. paint-operatoren in Combustion werden in der literatur häufig gleichzeitig mit dem terminus „Non Destructive Vector painting“ ge-nannt. Das bedeutet, dass jede aktion, die in einem paint operator durchgeführt wird, sei es ein einfacher pinselstrich oder sogar die Ver-wendung eines radierers, ein neues element in diesem operator er-zeugt, das im Nachhinein verändert oder wieder entfernt werden kann. Nicht destruktiv heißt, dass jeder arbeitsschritt einzeln und unabhän-gig von einer reihenfolge reversibel ist und bleibt.32

paint-operatoren erzeugen keineswegs nur scharfkantige Vektor-formen, sondern verfügen über möglichkeiten, die gezeichneten ele-mente durch vielseitige optionen, wie Gradienten zur Steuerung der transparenzeigenschaften der objekte, weich und organisch mit dem übrigen material einer Szene zu kombinieren.

Vorlagen aus Vektorzeichenprogrammen wie adobe illustrator oder Freehand können in paint-operatoren importiert, weiterbearbeitet und animiert werden. Um die Vielzahl der objekte in einem paint opera-tor effizient zu organisieren, besteht die möglichkeit, sie zu Gruppen zusammenzufassen, die anschließend als solche transformiert und ani-miert werden können.

als besonderes Feature bietet Combustion sogar die ausgabe von paint-operatoren und den mit ihnen erstellten animationen als Flash Datei an. allerdings können manche einstellungen nicht ins Flash For-mat übertragen werden. bei der arbeit für dieses Zielformat können über einen button sämtliche inkompatiblen Werkzeuge ausgeblendet werden.

3.4 Selektionen und Masken

auch Selektionen und masken werden in Combustion als operatoren im prozessbaum eingefügt. Selektionen finden anwendung, wenn ein nachfolgender operator nur einen ausgewählten teil des outputs des vorangestellten operators beeinflussen soll. masken verdecken einen teil dieses outputs, um nur einen teilbereich sichtbar zu machen und weiterzubearbeiten, ohne das zugrundeliegende material zu beeinflus-sen. es existieren verschiedene spezialisierte operatoren zur erstellung und bearbeitung von Selektionen und masken, universell sind Draw Selection und Draw mask.

32 Vgl. Davis (2004), S. 61

39operatoren und Werkzeuge im Überblick

Die in diesen operatoren vorhandenen Werkzeuge gleichen denen des paint operators, auch in ihnen gilt das prinzip der nicht destruk-tiven arbeitsweise. Die gezeichneten objekte können in einem von vier modi angelegt werden. Der modus kann wie alles im nicht destruk-tiven Workflow auch im Nachhinein geändert werden. replace bedeu-tet, dass das objekt darunterliegende objekte ersetzt, nur das zuletzt Gezeichnete bleibt aktiv. Der modus add bewirkt, dass der bestehen-den auswahl oder maske der entsprechende bereich hinzugefügt wird, das Gegenteil davon ist Substract. Der vierte modus heißt intersect und führt dazu, dass nur die Schnittmenge des gezeichneten elements mit den vorherigen elementen bestehen bleibt.33

Den masken und Selektionen können zwar wie in photoshop weiche auswahlkanten über die option Feather zugewiesen werden, darüber hinaus bietet Combustion jedoch noch ein wesentlich präziseres Werk-zeug, die edge Gradients. Der flexibelste typ unter diesen heißt Splines und ermöglicht die Definition nicht uniformer auswahlkanten. Dazu wird eine eigene Vektorform zur Festlegung des vom Gradienten be-deckten bereichs gezeichnet. Die auswahl kann so an einer Stelle eine scharfe Kante haben, während sie an anderer Stelle weich ausläuft.

3.5 Color Correction

Das Color Correction System in Combustion ist sehr ausgefeilt und gleichzeitig leicht zu bedienen. aufgrund seiner hohen bedeutung für alle projekte mit unter verschiedenen lichtbedingungen entstandenem bildmaterial soll im Folgenden seine grundsätzliche Funktionswei-se erläutert werden. insbesondere soll auf den Farbabgleich einzelner bilder eingegangen werden. Die elemente der fünf Unterpunkte der Color Correction Controls werden auf der folgenden Seite in Bild 17 gezeigt.

mit den einstellungen unter Color können mittels Farbrad die ein-stellungen für die Shadows, midtones und Highlights in richtung einer Farbe verschoben werden. Zusätzlich kann über die master-einstellung auf das gesamte bild einfluss genommen werden. Welche bildbereiche als Shadows, midtones und Highlights gelten, kann unter der fünften registerkarte ranges präzise definiert werden. Dazu werden drei Kur-ven verwendet. Jeder bereich wird durch den unter der entsprechenden Kurve liegenden teil des Histogramms festgelegt.34

33 Vgl. Davis (2004), S. 133 f.34 Vgl. Davis (2004), S. 158 ff.

40 operatoren und Werkzeuge im Überblick

Die unter basics befindlichen einstellungen sehen zwar unscheinbar aus, sind aber von höchster bedeutung für die Farbkorrektur. Hier können mittels der entsprechenden Gamma-, Gain- und offset-Wer-te die einzelnen rGb Kanäle oder auch das bild als Gesamtes beein-flusst werden. Die Gamma-Werte beeinflussen dabei hauptsächlich die midtones, Gain-Werte die Highlights und offset-Werte alle bereiche eines bildes zu gleichen teilen. Darüber hinaus stehen einstellungen zur Veränderung von Sättigung, Kontrast und Farbtemperatur zur Ver-

Bild 17 ▶einstellungen des Discreet

Color Correctors

41operatoren und Werkzeuge im Überblick

fügung. auch die einstellungen für das nachfolgend behandelte Color matching finden sich hier.35

in den bereichen Histogram und Curves kann das bildmaterial über die aus photoshop bekannten Vorgehensweisen korrigiert werden. Da-bei gilt wie überall im Color Corrector, dass diese einstellungen auch für die unter ranges definierten Shadow-, midtone- und Highlight-bereiche separat vorgenommen werden können.

einer der wichtigsten anwendungsbereiche des Color Correctors ist das Color matching. Dazu dienen die stets rechterseits der anderen elemente angeordneten und in Bild 18 für die bereiche Shadows, mid-tones und Highlights gezeigten einstellungen.

Das Color matching ist einfach. Nach Wahl des betreffenden bereichs wird zunächst mit der pipette Source der dunkelste, ein neutraler bzw. der hellste punkt des bildes gewählt, auf das der Color Corrector ange-wendet wird. anschließend wird der korrespondierende referenzwert mit der pipette ref aus dem bild gewählt, auf dem der Farbabgleich be-ruhen soll. Nach der Wahl der entsprechenden Farbwerte können die Farben mit der geeignetsten der unter basics befindlichen optionen match all, match SmH, match Gain oder match offset in richtung des referenzbilds verändert werden. Zur Wahl von Farbwerten muss nicht unbeding ein einzelnes pixel zugrunde gelegt werden. bei gedrück-ter Steuerungstaste kann auch ein bereich markiert werden, der dem Color matching zugrunde liegen soll. Dieses Vorgehen führt insbeson-dere für die neutralen midtones oft zu besseren ergebnissen.36

Zur optimierung nur minimaler Farbveränderungen ist die mög-lichkeit des Zwischenspeicherns getroffener einstellungen mittels der fünf unter Stores befindlichen Speicherplätze und der zugehörigen Vergleichsmöglichkeit Compare sehr hilfreich. Darüber hinaus kön-nen die vorgenommenen Änderungen mittels eines im prozessbaum eingefügten blend operators unter rückgriff auf den dem Color Cor-rector vorangestellten Node abgetönt werden.37

35 Vgl. Davis (2004), S. 16136 Vgl. Davis (2004), S. 264 ff.37 Vgl. Davis (2004), S. 266 ff.

◀ Bild 18einstellungen zum Color matching

42 operatoren und Werkzeuge im Überblick

3.6 Editing

Die arbeit mit audiomaterial in Combustion ist auf das laden einer einzelnen Datei als sog. Scratch track begrenzt. bereits darin unter-scheidet sich Combustion von speziell für das nicht lineare editing ge-dachten programmen wie aViD oder Final Cut pro. Dabei ist es auch möglich, einen zu verwendenden ausschnitt festzulegen. Der Scratch track kann einem operator oder Footage element zugeordnet werden, um zu gewährleisten, dass er bei Änderungen an dessen Dauer oder position in der timeline synchron zu diesem element bleibt.38

Die möglichkeiten im bereich des Video editing sind ausgefeil-ter. Natürlich sind auch diese nicht dazu gedacht, einen Spielfilm zu schneiden, aber der edit operator stellt durchaus die grundlegenden Funktionalitäten einer editing Umgebung zur Verfügung. Unter den edit Controls findet sich eine spezielle timeline, in der das eigentliche editing stattfindet.

Zum Schneiden von Videomaterial stehen dort zwei modi zur Verfü-gung. Der aus Schnittumgebungen wie aViD als insert bekannte mo-dus heißt in Combustion ripple. Der andere modus ist overwrite. im ripple modus verschiebt sich beim einfügen neuen materials das nach-folgende material. im Gegensatz dazu wird im overwrite modus der edit nicht länger, sondern das bestehende material wird überschrie-ben. auch das trimmen einzelner Segmente führt bei Verwendung verschiedener modi zu unterschiedlichen ergebnissen.39

in beiden modi können sowohl ein- als auch Zweipunkt-edits durchgeführt werden. bei ersteren wird lediglich der punkt spezifi-ziert, an dem das neue material eingefügt werden soll, bei letzteren hingegen auch der endzeitpunkt für das material. Dieses wird dann ggf. auf die entsprechende länge angepasst.40

3.7 Der Tracker

Der tracker ist kein operator, sondern ein Hilfsmittel zur Generierung von Keyframes. er befindet sich zwischen der registerkarte audio und der für die operator Controls. Dieses Werkzeug kann benutzt werden, um basierend auf der bewegung eines festgelegten objekts, Keyframes zu generieren, die diese bewegung abbilden.

38 Vgl. Davis (2004), S. 238 ff.39 Vgl. Davis (2004), S. 243 ff.40 Vgl. Davis (2004), S. 250 f.

43operatoren und Werkzeuge im Überblick

Der tracker ist ein sehr mächtiges Werkzeug, arbeitet jedoch aus-schließlich im 2D-raum. er bildet also nur horizontale bzw. vertikale positionsänderungen des bildmaterials in den generierten Keyframes ab. es ist nicht möglich, Daten der dritten Dimension aus Kamera-fahrten zu generieren.

Die so erstellten Keyframes können für diverse Zwecke genutzt werden. ein wichtiges anwendungsgebiet sind bewegte masken zur entfernung von Drähten und Seilen in Special effects oder zum Füllen von beim Keying ungewollt entstandenen löchern in alphakanälen.

ein weiteres anwendungsgebiet ist die Stabilisierung von bildma-terial. Durch die mit dem tracker ermittelten Daten kann das ruckeln der Kamera ausgeglichen werden, allerdings geht dabei an den bild-rändern entsprechend der stärksten ausschläge material verloren. es können so auch leicht elemente wie der emitter eines partikelsystems, das einem Schornstein rauch hinzufügt oder ein an die Sonne gekop-pelter lensflare mit dem Videomaterial synchronisiert werden. Das zu trackende element muss zur Generierung der Keyframes jedoch dis-tinkt genug sein, damit Combustion es bei Änderung seiner position wiedererkennt.41

3.8 Keying-Operatoren

Combustion enthält leistungsfähige eigene operatoren zum erzeu-gen von Keys. Natürlich bieten spezialisierte tools, wie z.b. Ultimatte advantedge, die bereits seit langem entwickelt und verfeinert wer-den und allein mehr kosten als Combustion selbst, noch mehr möglichkeiten.

Verallgemeinert sind Keyer operatoren, die helfen, einen alpha-kanal für in der realität gedrehtes Filmmaterial zu generieren. pro-gramme zur Generierung digitalen bildmaterials sind hingegen fast ausnahmslos in der lage, alphakanäle zu erzeugen, die zur nahtlosen integration der modellierten inhalte in einem Composite dienen.42

Die in Combustion nativen Keying-operatoren können für Diffe-rence Keys, luma Keys und Chroma Keys genutzt werden.

Für einen Difference Key werden zwei inputs benötigt. Zum einen die Szene mit dem zu keyenden material und zum anderen ein sepa-rates bild des Hintergrunds. Vereinfacht kann gesagt werden, dass ana-lysiert werden kann, an welchen Stellen das Hintergrundbild von der Szene differiert. an diesen befindet sich, bei idealisierter betrachtung,

41 Vgl. Davis (2004), S. 194 ff.42 Vgl. Davis (2004), S. 172

44 operatoren und Werkzeuge im Überblick

das freizustellende element. Um diese technik in der praxis anwenden zu können, ist extrem stabiles, vom Stativ gedrehtes material nötig.43

Für einen luma Key wird ein dunkler Hintergrund zur isolierung des davor platzierten materials genutzt. Dieser kann beispielsweise ein schwarzes tuch oder ein nächtlicher Himmel sein.

Chroma Keying ist das am häufigsten genutzte Verfahren, das auch als blue Screen bzw. Green Screen bezeichnet wird.44

Die erfolgreiche Nutzung der Keyer ist immer ein prozess mit mehreren arbeitsschritten. Zunächst sollten ungewollte bildelemente mit Garbage masks versehen werden, damit sich diese nicht auf das Keying auswirken. Danach folgt das eigentliche Keying. Da keine Keying lösung perfekte resultate liefert, ist es anschließend nötig, die alphakanäle durch geeignete paint-operatoren und masken zu opti-mieren. Wenn beispielsweise ein blauer teil der Kleidung eines ak-teurs durch das Keying transparent geworden ist, kann dieser bereich des alphakanals oft leicht wieder weiß gemalt werden. Gegebenenfalls können dazu Keyframes mit dem zuvor vorgestellten tracker generiert werden.45

3.9 Das integrierte Partikelsystem

Seit Version 2 enthält Combustion ein partikelsystem als operator. im Gegensatz zu den übrigen operatoren benutzt dieser open Gl pro-grammierung und kann so von modernen Grafikkarten profitieren. mithilfe dieses operators können partikelsysteme zur Darstellung von Feuer, rauch, Staub oder Wasser erzeugt werden. Dazu stehen prinzi-piell drei typen von elementen zur Verfügung: emitter, partikel und Deflectors.

emitter sind die Quellen der partikel. Dabei kann es sich um punkte, linien, Kreise oder Flächen handeln.

Die partikel selbst sind zufällig mit attributen aus vorgegebenen bereichen ausgestattete 2D Sprites. beispiele für solche attribute sind die lebensdauer des Sprites, seine Größe oder seine Geschwindigkeit.

Deflectors sind unsichtbare objekte, die partikel ablenken. So kön-nen partikel scheinbar von Wänden oder anderen Hindernissen im zu-grunde liegenden bildmaterial abgelenkt werden.46

43 Vgl. Davis (2004), S. 17444 Vgl. ebenda45 Vgl. Davis (2004), S. 175 ff.46 Vgl. Davis (2004), S. 266 ff.

RE:Flex Operatoren von RE:Vision Effects

re:Flex Warp

re:Flex motion morph

re:Flex morph

48 re:Flex operatoren von re:Vision effects

4 RE:Flex Operatoren von RE:Vision Effects

Die operatoren des Sets re:Flex 3.0 von re:Vision effects, inc. die-nen zum Verzerren bzw. morphen von Stand- sowie bewegtbildern. Das Set umfasst die drei operatoren re:Flex Warp, re:Flex motion morph und re:Flex morph, die hier vorgestellt werden. re:Flex wird als plugin Set für verschiedene Compositing Systeme angeboten. al-lein im lieferumfang von autodesk Combustion 4 ist dieses produkt bereits enthalten. Damit ist Combustion für die arbeit mit diesem tool die wirtschaftlichste Wahl, da das Set für andere Compositing Umge-bungen mit preisen von 600 bis 800 US-Dollar nur unwesentlich weni-ger kostet als das bundle mit Combustion.47

allgemein lässt sich zur Funktionalität von re:Flex 3.0 zusammen-fassen, dass die den effekten zugrundeliegenden Verzerrungen durch Verwendung der vom Host-programm zur Verfügung gestellten po-lygone bzw. Splines gesteuert werden, die nicht geschlossen sein müs-sen.48 Die Geometrieobjekte in Combustion heißen zwar „polygon“, der Übergang zwischen polygonen und Splines ist hier jedoch fließend. ein jeder punkt eines polygons in Combustion kann so geartet sein, dass er über bezier-punkte verfügt und die resultierende Kurvenform deshalb korrekt Spline heißen müsste.49 Diese syntaktische Differenzierung fin-det sich in Combustion zwar nicht wieder, dennoch soll im Folgenden von Splines gesprochen werden.

Für die Übergänge im vorgestellten Workflow wird ausschließlich re:Flex motion morph verwendet. Da dieser operator auf re:Flex Warp aufbaut, soll zunächst dieser etwas weniger komplexe operator betrach-tet werden, um die darauf aufbauende Funktionsweise von re:Flex motion morph zu erläutern. abschließend soll der dritte operator, re:Flex morph, behandelt werden. Dieser erweitert die Funktionalität der vorher betrachteten operatoren nicht, sondern bietet ein vereinfachtes Vorgehen für den Sonderfall des morphings von Standbildern.

47 Vgl. re:Vision effects, inc. re:Flex Compatibility and pricing : www.revisionfx.com, (13.3.2006)48 Vgl. re:Vision effects, inc. re:Flex Features : www.revisionfx.com, (13.3.2006)49 Vgl. bender, ... (2003), S. 138

49re:Flex operatoren von re:Vision effects

4.1 RE:Flex Warp

bei re:Flex Warp handelt es sich um einen operator zum Verzerren von Footage im Zeitverlauf. Dazu werden zwei vom benutzer anzule-gende Geometrien verwendet; eine Quell- und eine Zielgeometrie. Die Quellgeometrie bildet das zu verzerrende objekt an seiner temporalen und räumlichen anfangsposition nach. Die Zielgeometrie ist die Vor-lage für die erwünschte Verzerrung im endzeitpunkt.50 in Bild 19 ist auf der linken Seite ein möglicher ausgangszustand mit einer roten Geometrie, die diesen nachbildet und auf der rechten Seite eine grüne Geometrie mit entsprechend resultierender Verzerrung zu sehen.

Die intensität des hier gezeigten Warp beträgt 100 %. Das mittlere Geo-metrieelement ist in Quell- und Zielgeometrie identisch. Dies führt zu einer Fixierung der darunter befindlichen bildinformation. Für das als beispiel erstellte musikvideo wurde dieses prinzip häufig angewendet, um die Form von elementen im Hintergrund zu fixieren.

in der Hierarchie des Workspace werden die in diesem operator verwendeten Splines abwechselnd beiden Geometrien zugeordnet. Das in der Hierarchie oberste Spline ist das erste der Quellgeometrie, das nächste das mit der Zielgeometrie korrespondierende usw.

Das folgende Bild 20 zeigt die einstellungsmöglichkeiten unter Controls für re:Flex Warp-operatoren. Diese werden im anschluss erläutert.

50 Vgl. re:Flex 3 Users‘ manual, Usage of re:Flex Warp

◀ Bild 19resultierender Warp aus Quellgeometrie (rot) und Zielgeometrie (grün)

Vgl. Digitaler anhang, CD:\Demos\reFlex Warp allgemeines Demo.cws

◀◀

50 re:Flex operatoren von re:Vision effects

im Feld Display kann ausgewählt werden, was angezeigt werden soll. Warped image führt zur anzeige des verzerrten bildes. Unwarped image zeigt den ausgangszustand und Control image zeigt die Quell- und Zielgeometrien sowie die daraus interpolierten, aktuell verwen-deten Geometrien unter berücksichtigung der einstellungen für die globale Warp-intensität sowie der Warp-intensitäten der einzelnen Splines.51

Wenn die einstellung Auto Hide/Show Splines aktiviert ist, werden bei betrachtung des ausgangszustands bzw. des verzerrten bildes nur die zugehörigen Geometrieelemente angezeigt.52

Global Warp% ist die einstellung für die Warp-intensität. Die mit re:Flex Warp erstellten effekte basieren meist auf der animation dieses parameters im Zeitverlauf. Standardmäßig wirkt sich diese einstel-lung auf alle Spline-paare aus, sie kann jedoch zur Feineinstellung des Warps, wie am ende dieses abschitts beschrieben, für einzelne Spline-paare überschrieben werden.53

Die option Quality ermöglicht die einstellung der renderqualität und in abhängigkeit von dieser der renderzeit. es stehen vier Qualitätsstu-fen zur Verfügung: low, medium, High und Ultra.54

Unter Boundary kann ein Spline gewählt werden, das den bereich de-finiert, außerhalb dessen keine pixelinformationen vom Warping be-troffen sein sollen. es können jedoch pixel aus seinem inneren nach außen gezogen werden. Das zur begrenzung verwendete Spline wird

51 Vgl. re:Flex 3 Users‘ manual, Usage of re:Flex Warp52 Vgl. ebenda53 Vgl. ebenda54 Vgl. ebenda

Bild 20 ▶re:Flex Warp Controls

51re:Flex operatoren von re:Vision effects

immer als geschlossene Form behandelt. es sollte auch als solche ange-legt werden, da sonst zum Schließen der Form sein erster und letzter punkt unsichtbar miteinander verbunden werden.55

bei der anwendung dieser option hat sich gezeigt, dass sie nur zu visuell guten ergebnissen führt, wenn sich die zu verzerrenden bzw. morphenden objekte vor einer Fläche mit ähnlichen material- und be-leuchtungseigenschaften befinden.

ein beispiel für eine geeignete Fläche ist eine gleichmäßig beleuch-tete, einfarbige Wand. Dem betrachter fällt kaum auf, wenn ein teil der Wand verzerrt wird, ein anderer hingegen unverändert bleibt. Un-geeignet für dieses Vorgehen sind hingegen objekte vor einem Hinter-grund mit gut differenzierbaren Strukturen oder mustern. ein beispiel für einen solchen Fall sind die im musikvideo vorkommenden Stadt-landschaften. Hier fiele es dem betrachter sofort auf, wenn nur ein teil dieser landschaften verzerrt würde.

Wenn die option Hold Edges aktiviert ist, wird das verwendete Foot-age an den Kompositionsrändern fixiert, so dass durch die Verzerrung keine unbedeckten Stellen entstehen können.56

Unter Anti Aliasing ist ein Verfahren zur reduzierung des sog. trep-penstufen-effekts zur verstehen, der bei der Darstellung schräger li-nien und Kanten in pixelgrafiken auftritt.57 im entsprechenden Feld kann das anti aliasing der re:Flex operatoren auf eine von vier Quali-tätsstufen geschaltet werden. Diese repräsentiert die verwendete over-Sampling-rate und kann die Werte 1x1, 2x2, 3x3 und 4x4 haben.

Zur Umsetzung des anti aliasings sind zwei verschiedene algo-rithmen implementiert, die unter AA Method vom benutzer ausge-wählt werden können. beide erzielen identische visuelle ergebnisse. Die einstellung Faster führt zur Verwendung eines algorithmus, der je nach verwendeter over-Sampling-rate den gleichen, den vierfachen, den neunfachen bzw. den 16-fachen Speicherplatz des zugrundelie-genden Composite-Frames benötigt. Der Vorteil dieser methode liegt in der schnelleren berechnung des ergebnisses. ihr gegenüber steht die von der option less memory repräsentierte berechnungsvariante, die das ausgangsmaterial in mehreren Durchgängen bearbeitet und dabei stets den gleichen Speicherplatz benötigt wie das ausgangsmaterial. aufgrund der multiplen Durchgänge bei der berechnung dauert dieses Vorgehen je nach over-Sampling-rate länger. Wenn der benutzer

55 Vgl. ebenda56 Vgl. ebenda57 Vgl. Nischwitz, ... (2004), S. 136 ff.

52 re:Flex operatoren von re:Vision effects

unter anti aliasing eine höhere Qualität als 1x1 wählt, wird zunächst automatisch auf less memory umgeschaltet, um die versehentliche al-lokierung von großen Speichermengen zu vermeiden. bei bedarf kann diese einstellung manuell wieder geändert werden.58

Über das anti aliasing hinaus kann die Kantenglättung stark ver-kleinerter bereiche durch Veränderung der MipMap einstellung ver-bessert werden. Hier stehen die drei Qualitätsstufen Standard, medium und Smoothest zur auswahl.59 mipmaps werden auch als Gauß-pyra-miden-texturen bezeichnet. Sie werden verwendet, um den bei star-ker Verkleinerung exponentiell wachsenden rechenaufwand beim anti aliasing zu reduzieren. ein mipmap beinhaltet eine Folge von texturen. Die erste textur hat die originalgröße, die folgenden sind jeweils auf 50 % der Größe der vorangegangenen textur verkleinert.60 „,mip’ ist eine abkürzug für den lateinischen begriff ,multum in parvo’, d.h. viele in einem“.61

re:Flex Warp verzerrt das ausgangsmaterial nach einem Verfahren, bei dem es durch ein raster in einzelne blöcke unterteilt wird. Nach-folgend werden die so definierten blöcke abhängig von der gewählten Verarbeitungsrichtung als Zeilen oder Spalten interpretiert.

obwohl immer blockweise verzerrt wird, können dennoch, abhän-gig von der Verarbeitungsrichtung, in bestimmten Situationen ver-schiedene visuelle ergebnisse daraus resultieren, nämlich immer dann, wenn die durch das Verzerren eines blocks generierten bildinforma-tionen die eines zuvor verzerrten blocks überdecken.

Dies soll mit Hilfe des in Bild 21 gezeigten beispiels veranschaulicht werden. links im bild ist der ausgangszustand mit zwei Geometrie-paaren dargestellt. Die diagonal zueinander angeordneten Quell- und Zielgeometrieelemente bilden jeweils ein paar. auf der rechten Seite des bildes ist das ergebnis des Warp unter aktivierung der option Accumulate Folds zu sehen. Durch diese aktivierung werden zuvor erzeugte bildinformationen nicht überschrieben, sondern als Doppel- oder mehrfachbelichtung visualisiert. Die option Hold edges ist im beispiel aktiviert, die bildränder sind also fixiert.

58 Vgl. re:Flex 3 Users‘ manual, Usage of re:Flex Warp59 Vgl. ebenda60 Vgl. Nischwitz, ... (2004), S. 227 ff.61 Nischwitz, ... (2004), S. 228

▶ ▶

Vgl. Digitaler anhang, CD:\animationen\reFlex

Verarbeitungsrichtung.htm

53re:Flex operatoren von re:Vision effects

Wenn accumulate Folds deaktiviert ist, kann über die drei, ausschließ-lich dann bearbeitbaren optionen Strips, Horiz Render und Vert Render einfluss auf die Verarbeitungsrichtung genommen werden.

Strips kann die Werte Horiz Strips und Vert Strips annehmen. Diese einstellung entscheidet, ob zeilen- oder spaltenweise verarbeitet wer-den soll. Die anderen beiden optionen entscheiden über die render-richtung. Horiz render kann die Werte left-to-right und right-to-left annehmen, Vert render entsprechend top-to-bottom oder bottom-to-top. es kann also entweder von links nach rechts oder umgekehrt bzw. von oben nach unten oder umgekehrt gerendert werden. rechnerisch resultieren aus diesen optionen acht Varianten.62

bei horizontaler Verarbeitung ist jedoch die horizontale Verarbei-tungsrichtung und bei vertikaler Verarbeitung die vertikale Verarbei-tungsrichtung unerheblich, so dass vier Varianten mit visuell verschie-denem ergebnis bleiben. Diese sind auf der folgenden Seite in Bild 22 dargestellt. Die oben im bild angeordneten Varianten sind horizontal verarbeitet, die unteren vertikal. Dabei sind jeweils die links abgebil-deten ergebnisse entsprechend der leserichtung verarbeitet, die rechts abgebildeten ihr entgegen.

Die aus accumulate Folds resultierenden bildergebnisse dürften aufgrund der unschönen Doppelbelichtungseffekte einzelner bereiche fast nie gewünscht sein. Die option ist daher als Werkzeug zur schnel-len Diagnose der bereiche, welche durch unterschiedliche einstellun-gen bei den übrigen Werten verschiedene Visualisierungen annehmen können, zu verstehen.

62 Vgl. re:Flex 3 Users‘ manual, Usage of re:Flex Warp

◀ Bild 21Warp mit option accumulate Folds mit ausgangsmaterial und Geometrien

Vgl. Digitaler anhang, CD:\Demos\ reFlex Warp accumulate Folds Demo.cws

◀◀

54 re:Flex operatoren von re:Vision effects

Über die zuvor genannten global für jeden re:Flex Warp operator de-finierbaren einstellungen hinaus können weitere parameter individuell für die einzelnen Spline-paare festgelegt werden. Diese parameter sind, wie in Bild 23 gezeigt, über die timeline zugänglich, indem das der Quellgeometrie zugehörige polygon eines paars ausgewählt wird.63

Dies ist von besonderer bedeutung, da alle im Folgenden beschriebenen Werte ausschließlich von den Splines der Quellgeometrie ausgewertet und jeweils für das entsprechende paar aus Quell- und Ziel-Spline angewandt werden. Die einstellun-gen der polygone der Zielgeometrie bleiben unbeachtet.64

63 Vgl. ebenda64 Vgl. ebenda

Bild 22 ▶auswirkungen verschiedener

Verarbeitungsrichtungen Horizontal top-to-bottom

(oben links), Horizontal bottom-to-top (oben

rechts), Vertical left-to-right (unten links) und

Vertical right-to-left (unten rechts)

Bild 23 ▶individuelle einstellungen

für einzelne Spline-paare unter re:Flex Warp

55re:Flex operatoren von re:Vision effects

Der parameter Use legt fest, ob das betreffende Spline-paar für die durchzuführende Verzerrung genutzt werden soll oder nicht. mittels Keyframes können so für unterschiedliche abschnitte der animation auch verschiedene Geometrieelemente verwendet werden.65

Die standardmäßig aktivierte einstellung Match Vertices legt fest, ob bei der interpolation des zur Verzerrung genutzten Geometrieelements aus Quell- und Ziel-Spline die einzelnen punkte der betreffenden For-men zur Deckung gebracht werden sollen. Die Standardeinstellung er-fordert eine gleiche anzahl an Spline-punkten für beide Formen. Der Vorteil bei diesem Vorgehen liegt in der präziseren Kontrolle über die interpolation einzelner Kurvenabschnitte. Nachteil ist der gesteigerte arbeitsaufwand bei der exakten Definition und animation der bei-den Splines, der für einfache Formen mitunter im ergebnis nicht ins Gewicht fällt. Wird match Vertices deaktiviert, errechnen die re:Flex plugins die zu verwendende Geometrie unter betrachtung der gesam-ten Splines.66

Die übrigen beiden parameter Use Global Warp % und Warp % sind eng miteinander verflochten. Standardmäßig wird die über den zuvor vorgestellten Wert Global Warp % definierte intensität für die Verzer-rung im aktuellen Frame verwendet. Die Deaktivierung der Verwen-dung des globalen Wertes bringt den parameter Warp % zum tragen. Nun gilt die darin festgelegte intensität für das Spline-paar anstatt der globalen.67

alle nicht numerischen parameter können nur durch das im Folgenden beschriebene Vorgehen bearbeitet werden. Dazu muss auf den betref-fenden Wert geklickt und bei gedrückt ge-haltener maustaste der Cursor horizontal bewegt werden, um zwischen den zur Ver-fügung stehenden optionen zu navigieren. ein zugehöriger Dialog zur einstellung der Werte, der wie in anderen programmen üblich per Doppelklick erreicht werden kann, existiert nicht. Für numerische Wer-te ist diese Funktionalität über den in Bild 24 gezeigten taschenrechner des Fensters Numerical input implementiert.

65 Vgl. ebenda66 Vgl. ebenda67 Vgl. ebenda

◀ Bild 24Fenster Numerical input

56 re:Flex operatoren von re:Vision effects

4.2 RE:Flex Motion Morph

Die grundsätzliche Vorgehensweise beim morphing ist der von re:Flex Warp identisch. Um den morphing-effekt zu erzielen, wird das im vorangestellten abschnitt beschriebene Verfahren des Verzerrens auf zwei bilder angewendet und mit einer Überblendung kombiniert.

alle zur Deckung zu bringenden elemente in ausgangs- und Ziel-bild werden so genau wie möglich in Größe und position aufeinander abgestimmt und anschließend mit entsprechenden Geometrien verse-hen. Das ausgangsbild wird im Zeitverlauf des morphs auf die für das Zielbild spezifizierte Form verzerrt. Das Vorgehen für das Zielbild ist im Zeitverlauf umgekehrt. es ist im ersten Frame des morphs entspre-chend der Geometrie des ausgangsbilds verzerrt und nähert sich mit fortschreitendem morph immer weiter seinem originalzustand an. Durch geschicktes Überblenden entsteht der visuelle eindruck des flie-ßenden Übergangs von ausgangsbild zu Zielbild.68

Die in Bild 25 gezeigten Controls von re:Flex motion morph sind zum großen teil vom zuvor betrachteten Warp operator bekannt. Da-her wird an dieser Stelle nur auf die Unterschiede eingegangen.

Der Warp „To“ Layer kann kein layer eines Composite operators sein, da layer in Combustion nicht die gleichen möglichkeiten bieten wie operatoren. Vielmehr muss als Warp „to“ layer ein anderer operator spezifiziert werden, z.b. ein zweiter Composite operator, der jedoch durchaus in den Composite operator eingebettet sein kann, auf den der re:Flex motion morph operator angewendet wurde.69

68 Vgl. brinkmann (1999), S. 261 ff.69 Vgl. re:Flex 3 Users‘ manual, Usage of re:Flex morph

Bild 25 ▶re:Flex motion morph

Controls

57re:Flex operatoren von re:Vision effects

Global Shape % und Global Color % kontrollieren unabhängig von-einander die intensität der Verzerrung und die intensität der Überblen-dung, bezogen auf das Zielbild bzw. die Zielgeometrie. auch in diesem Fall lassen sich beide parameter für jedes Spline-paar mit lokalen Wer-ten überschreiben, indem zunächst der dem Spline der Quellgeome-trie eines Spline-paars zugehörige Wert Use Global Color Amt bzw. Use Global Shape Amt auf off gesetzt wird. anschließend wird durch Keyframe-animation den parametern Color Amt und Shape Amt der gewünschte Wert für das Spline-paar zugewiesen. auch hier gilt, wie bereits für re:Flex Warp erläutert, dass alle einstellungen für Splines der Zielgeometrie ignoriert werden.70

Wenn Auto Align aktiviert ist, wird, nachdem die per Geometrie defi-nierten bildteile zur Deckung gebracht wurden, versucht, automatisch weitere Kriterien zu finden und die gewarpten ausgangsbilder nach diesen zur Deckung zu bringen. Dieses Vorgehen eignet sich für sehr ähnliche objekte, wie z.b. Gesichter vor unifarbenem Hintergrund. Nachdem der grobe Umriss sowie einige Schlüsselmerkmale wie Haar-ansatz, augenbrauen und mund definiert sind, kann das morphing-Verhalten anderer merkmale wie beispielsweise der augen, der Nase oder der ohren durch aktivieren dieser option optimiert werden, ohne weitere Geometrieelemente hinzuzufügen. bei sehr ähnlichen objekten kann mit dieser option auch versucht werden, einen morph ganz ohne gezeichnete Geometrieelemente anzulegen. Wenn auto align nicht benötigt wird, sollte es deaktiviert bleiben, da die render-zeit durch diese option um mindestens den Faktor zwei verlängert wird.71

eine weitere option zur optimierung des morphing Verhaltens ist Smart Blend. Sie bietet eine alternative zu Hold edges, da bei die-ser einstellung das randnahe bildmaterial oft stärker verzerrt wird als das zentraler gelegene. im Gegensatz zum Vorgehen des Fixierens der bildränder arbeitet Smart blend nach dem folgenden prinzip: Wenn Quell- und Zielbild pixelinformationen für eine position enthalten, wird normal überblendet. Sobald eines der beiden bilder keine pixel-informationen für eine position im aktuellen Frame des morphs bietet, wird die information des anderen bildes an dieser Stelle genutzt. 72

Die Verwendung dieser option bietet sich nur dann an, wenn die betroffenen randbereiche in beiden bildern sehr ähnlich sind. ein

70 Vgl. re:Flex 3 Users‘ manual, Usage of re:Flex motion morph71 Vgl. re:Flex 3 Users‘ manual, Usage of re:Flex morph72 Vgl. ebenda

58 re:Flex operatoren von re:Vision effects

beispiel für einen solchen Fall wären im gleichen Setting unter Wahl verschiedener ausschnitte gedrehte bzw. fotografierte objekte.73

4.3 RE:Flex Morph

re:Flex morph verwendet im Gegensatz zu den zuvor diskutierten operatoren nur eine Geometrie, die im Zeitverlauf mittels Keyframe-animation von einem dem ersten bild entsprechenden ausgangszu-stand in einen dem Zielbild entsprechenden endzustand versetzt wird. Damit geht die Unabhängigkeit der position und ihrer animation zwi-schen Quell- und Zielbild verloren und die anwendbarkeit von re:Flex morph bleibt auf Standbilder beschränkt.

re:Flex motion morph ist der universelle der beiden morph-ope-ratoren. re:Flex morph ist in jeder anwendung durch re:Flex motion morph ersetzbar, der Umkehrschluss gilt nicht. Der Vorteil von re:Flex morph ist die einfachere anwendungsweise in geeigneten Fällen und die daraus resultierende Zeitersparnis.

Die verwendete Geometrie wird entsprechend des ausgangsbildes im ersten Frame des morphs gezeichnet und anschließend nach ak-tivierung des animationsmodus im letzten Frame des morph auf das Zielbild angepasst.74

Die in Bild 26 gezeigten Controls für re:Flex morph unterschei-den sich von denen für re:Flex motion morph durch die parameter picture Key? und local Clr % From. Diese optionen sollen kurz erläu-tert werden.

73 Vgl. ebenda74 Vgl. ebenda

Bild 26 ▶re:Flex morph Controls

59re:Flex operatoren von re:Vision effects

Die option Picture Key? legt fest, ob im aktuellen Frame gemorpht werden soll oder nicht. Solange die option aktiviert ist, wird nicht ge-morpht. ist sie deaktiviert, wird zwischen dem letzten Frame, in dem sie aktiviert war und dem nächsten Frame, in dem sie aktiv ist, gemorpht. Um einen morph mit re:Flex morph zu kreieren, müssen also entspre-chende Keyframes für picture Key? gesetzt werden.75

auch in diesem Fall lassen sich beide parameter für jedes Spline-paar mit lokalen Werten überschreiben, indem der dem Spline der Quellgeo-metrie eines Spline-paars zugehörige Wert Use Auto Color % deakti-viert wird. Die intensität der Überblendung für das vom betreffenden Spline kontrollierte bildmaterial ist dann abhängig von der lokalen einstellung des Kanals Color Amt1 bzw. Color Amt2. Welcher der beiden verwendet wird, kann mit der globalen option Local Clr % From festgelegt werden.

Die Unterteilung in zwei Kanäle ist ausschließlich für aufeinanderfol-gende morphs von bedeutung. Wenn von bild a über bild b nach bild C gemorpht werden soll, kann es dazu kommen, dass der Color amt1 Wert eines Splines die intensität von bild b zum ende des morphs auf 100 % festlegt. Da die intensität von bild C unter einfluss des gleichen Geometrieelements jedoch im nachfolgenden morph nicht von an-fang an 100 % beträgt, sondern bei 0 % initialisiert werden soll, muss hier local Clr % From entsprechend mit Keyframes ausgestattet wer-den, die spezifizieren, welcher der beiden Kanäle wann genutzt werden soll.76

75 Vgl. ebenda76 Vgl. ebenda

Animation und Programmierung in Combustion

Keyframe-animation

erweiterte animationsmöglichkeiten mit Nullobjekten

expressions

62 animation und programmierung in Combustion

5 Animation und Programmierung in Combustion

animation und programmierung haben auf den ersten blick wenig gemein. in Combustion sind sie jedoch dadurch eng miteinander ver-bunden, dass sie alternativ zueinander implementiert sind. Die Werte eines Kanals können entweder per Keyframe-animation oder per ex-pression beeinflusst werden. eine Nutzung beider Konzepte im glei-chen Kanal ist nicht möglich. Das folgende Kapitel beschäftigt sich zu-nächst mit den möglichkeiten der animation einzelner parameter und beleuchtet im anschluss die möglichkeiten und Grenzen der program-mierung von expressions mit Java Script in Combustion.

5.1 Keyframe-Animation

Keyframe-animationen lassen sich am einfachsten mit Hilfe des in Bild 27 gezeigten animate button erstellen. er ist als fester bestandteil

des benutzerinterface von Combustion zu jedem Zeitpunkt zugänglich und wird bei aktivierung rot hervorgehoben.

Der animate button dient dazu, nahezu jede einstellung in Combus-tion zu animieren. Um unerwünschte effekte zu vermeiden, sollten im ausgangsframe der animation für die zu animierenden Kanäle in der timeline über den button add Key Keyframes mit den aktuellen Wer-ten als ausgangsposition definiert werden. Wird dieser Schritt ausge-lassen, kommt es häufig dazu, dass die angelegte animation in Frame 1 beginnt und das entsprechende Keyframe anschließend in der time-line an die korrekte position geschoben werden muss.

Nach dem Setzen der initialen Keyframes kann der animate but-ton aktiviert werden. im anschluss wird das Frame angefahren, in welchem der nächste fest definierte Wert eines zu animierenden Ka-nals als Keyframe angelegt werden soll. ausreichend ist dann, über die Kontrollelemente des benutzerinterface die entsprechenden Werte zu modifizieren. Für jede modifikation im animate-modus werden ent-sprechende Keyframes angelegt. Die Werte für Frames, die zwischen den Keyframes liegen, werden entsprechend der animationskurven aus den angrenzenden Keyframes interpoliert.77

77 Vgl. Davis (2004), S. 219 ff.

Bild 27 ▶aktivierter animate button

63animation und programmierung in Combustion

Um z.b. einen layer in X-richtung linear über den Zeitraum der ersten Sekunde zu verschieben, muss lediglich im ersten Frame der animate button aktiviert und anschließend im Frame mit dem timecode eine Sekunde die gewünschte Zielverschiebung des layers angelegt werden. Nach dem Deaktivieren des animate buttons ist die animation abspiel-bar. Um die animation zu verfeinern, können im Graph modus der time-line die zugehörigen ani-mationskurven bearbeitet werden, um beispielsweise den in Bild 28 gezeigten ease in - ease out - effekt anzulegen.78

beim arbeiten mit dem animationsmodus sollte akribisch darauf geachtet werden, den modus nach beendeter animationstätigkeit zu deaktivieren. Sonst schlagen sich alle weiteren am projekt vorgenom-menen Änderungen ebenfalls als animationen nieder.

einige animationen lassen sich nicht per tweening definieren son-dern erfordern eine manuelle, frameweise anpassung der Werte, wie z.b. das tracken von objekten in einem bewegtbild. Dazu wird in je-dem Frame ein Keyframe gesetzt, das anschließend angepasst werden kann. Dafür ist der onion Skin modus ein unverzichtbares Werkzeug. er ist über das menü Window aktivierbar und dient dazu, an das ak-tuelle Frame angrenzende Frames, entsprechend der in Bild 29 gezeigten ein-stellungen, zu visualisie-ren. Dabei werden voran-gehende und nachfolgende Frames zur arbeitserleich-terung semitransparent eingeblendet.79

78 Vgl. Kapitel 2.2.379 Vgl. Davis (2004), S. 218 f.

◀ Bild 28modifizierte animationskurve für einen ease in - ease out - effekt

◀ Bild 29einstellungen des onion Skin modus

64 animation und programmierung in Combustion

5.2 Erweiterte Animationsmöglichkeiten mit Nullobjekten

im bereich des Compositing steht ein weiteres, sehr taugliches Kon-zept zur Unterstützung der animation von objekten zur Verfügung; das parenting. in den Composite Controls befinden sich in der Sektion layer allgemeine einstellungen für den aktuell im Workspace panel ausgewählten layer. Darunter befindet sich der in Bild 30 gezeigte auswahlbereich parent.

Vom hier selektierten el-tern-element werden nicht

absolut- sondern Veränderungswerte der transformationskanäle ge-erbt. ein Kind-objekt befindet sich also nicht fortan an der gleichen position wie sein parent, sondern ahmt lediglich dessen bewegungen nach. parent können alle elemente sein, die auf der gleichen ebene lie-gen wie die Child layer.

Zur erweiterung dieses Konzepts existiert ein spezieller layer, das sogenannte Nullobjekt. Nullobjekte beinhalten keine bilddaten, son-dern fungieren als unsichtbare referenzelemente mit einem vollstän-digen Satz von transformationskanälen. So können beispielsweise alle layer eines Composite über ein Nullobjekt animiert werden, das ihnen als parent zugewiesen wurde. Der große Vorteil bei diesem Vorgehen liegt darin, dass die animationskanäle der eigentlichen layer ungenutzt bleiben und so für eine sekundäre animation zur Verfügung stehen.80

5.3 Expressions

Über die möglichkeiten der Keyframe-animation hinaus kann mit-tels programmierung auf einzelne Kanäle einfluss genommen wer-den. in den folgenden abschnitten werden die möglichkeiten und limitierungen der programmierung von expressions in Combustion erläutert.

5.3.1 expressions hinzufügen

Die in Combustion verwendete programmiersprache ist Java Script. Die Skripte werden als expressions bezeichnet. Sie können wie in Bild 31 gezeigt, über ein per rechtsklick zu erreichendes Kontextmenü in der timeline in einzelne Kanäle eingefügt werden.

80 Vgl. Davis (2004), S. 93 f.

Bild 30 ▶parent einstellungen für

Composite layer

65animation und programmierung in Combustion

Kanäle, die expressions enthalten, sind durch ein e gekennzeichnet und enthalten im overview-modus die erste Zeile des Quellcodes in der leiste für die Keyframes. expressions können durch einen rechts-klick in diese Zeile mittels der option edit expression aus dem ent-sprechenden Kontextmenü bearbeitet werden. Für expressions, die nur eine Zeile umfassen, erfolgt die bearbeitung direkt im rechten teil der timeline. in diesem Fall ist beim bearbeiten am ende der Zeile der button multi zu finden, mit dessen Hilfe in den editor für mehrzeilige expressions gewechselt werden kann. Nach dem editieren sollte der mehrzeilen-editor unbedingt mit der tastenkombination Umschalt + enter geschlossen werden. Das Verlassen durch Klicken auf andere elemente des benutzerinterface ist zwar ebenfalls möglich, hat jedoch häufig zur Folge, dass vorgenommene Änderungen nicht übernommen werden.

Für längere expressions bietet sich die arbeit in einem externen text-editor und das abspeichern der Skripte mit der Dateiendung CJS an. Solche Dateien können über das in bild 31 gezeigte Kontextmenü in beliebige Kanäle importiert werden.

Kanäle können entweder ein expression oder animations-Key-frames aufnehmen, eine Kombination ist nicht möglich. bei der aus-wertung von expressions werden diese in jedem Frame sequenziell durchlaufen. Das ergebnis des letzten elements wird direkt in den Kanal geschrieben, in dem sich das expression befindet. Das expres-sion a=1; b=2; C=a+b; wird zu drei ausgewertet, da die Definition von C das letzte element ist und drei ergibt. Würde auf die Definition von C noch ein weiteres element D=0; folgen, wird null als ergebnis angenommen.

◀ Bild 31expressions in der timeline hinzufügen

66 animation und programmierung in Combustion

5.3.2 Nutzung der Vorteile von expressions ohne programmierkenntnisse

Um von den Vorteilen von expressions zumindest teilweise profitie-ren zu können, muss der anwender nicht unbedingt programmieren können. eine der häufigsten anwendungen für expressions ist es, die

Werte einzelner Kanäle miteinander zu verknüpfen. Dies kann leicht mittels der in Bild 32 gezeigten buttons auf der rechten Seite der timeline realisiert werden.

Zunächst wird der Kanal ausgewählt, der mit einem anderen verknüpft werden soll. Danach wird entweder der button link(/) oder link(..) ge-drückt und der Kanal ausgewählt, der die Daten bereitstellt. Der button link(/) verwendet bei der Verknüpfung absolute, der button link(..) hingegen relative links. Des Weiteren können über den in Bild 33 ge-zeigten und über den dritten button aufrufbaren expression browser vordefinierte Funktionen eingefügt werden. Der expression browser ist auf die vordefinierten Funktionen beschränkt, somit können keine benutzerdefinierten hinzugefügt werden.

5.3.3 besonderheiten der programmierung in Combustion und die Cb Klasse

Die mit Java Script allgemein verfügbaren Funktionen werden durch eine spezielle Klasse mit der bezeichnung CB erweitert. leider gibt es zu dieser keine vollständige, öffentlich verfügbare Dokumentation. Die in der online-Dokumentation zu Combustion 4 an verschiedenen

Bild 32 ▶buttons zum Verknüpfen

von Kanälen und auswählen vordefinierter expressions

Bild 33 ▶expression browser Dialog zur auswahl vordefinierter

expressions

67animation und programmierung in Combustion

Stellen erwähnten bzw. in vorgefertigten expressions verwendeten me-thoden der Cb Klasse werden deshalb hier vorgestellt.

CB.GetCurrentFrame() gibt das aktuelle Frame zum Zeitpunkt des aufrufs zurück.

CB.GetChannelValue(“Path”,”Frame”) gibt den Wert eines Kanals an der position Path im Workspace zu einem Zeitpunkt Frame zurück.

CB.GetXPathFrom(“Path”) und CB.GetYPathFrom (“Path”) dienen dazu, einen bewegungspfad aus einem polygon zu erstellen.

CB.Random() ersetzt Math.Random(), da diese Funktion bei je-dem aufruf andere Zufallsergebnisse erzeugt, für die arbeit mit Com-bustion jedoch Zufallswerte benötigt werden, die für jeden rendervor-gang konstant bleiben.

obwohl die möglichkeiten der animation durch die der programmie-rung mit Java Script stark erweitert werden, wird in Combustion von autodesk keine echte Scripting-Umgebung geboten. Dies wird bereits anhand der bezeichnung expressions deutlich. Java Script Skripte wer-den lediglich als einzelne ausdrücke zur Verlinkung von Kanälen und für kleinere berechnungen genutzt. mächtige Konzepte der program-mierung wie das abstützen von Werten auf einem initialen Wert mit-tels rekursion werden noch nicht unterstützt. Die schwerwiegendste einschränkung ist jedoch, dass es ist mit den bekannten methoden der Cb Klasse nicht möglich ist, Werte gezielt in Kanäle zu schreiben. Die intuitiv erwartete methode mit der Syntax CB.SetChannelValue(“Path”,”Frame”) ist nicht implementiert.

objekte wie operatoren, layer oder polygone können ebenfalls nicht mittels Java Script erzeugt oder gelöscht werden, wie dies z.b. in Java Script für Html Seiten mit Funktionen zum bearbeiten des Document object models möglich ist.

eine leichter zu umgehende einschränkung der Java Script program-mierung in Combustion besteht darin, dass in Combustion 4.0 pro Ka-nal lediglich Java Script Code von 2.048 byte länge abgelegt werden kann. in der Vorgängerversion standen sogar nur 1.024 byte zur Ver-fügung. Für komplexere programme muss aus diesem Grund darauf geachtet werden, dass alle bezeichnungen möglichst kurz sind und auf redundanzen verzichtet wird. bleibt beispielsweise ein teil des pfades

68 animation und programmierung in Combustion

bei mehreren aufrufen gleich, sollte dieser teil in einer Variablen abge-legt werden. Falls derartige optimierungen nicht ausreichen, das limit einzuhalten, besteht außerdem die möglichkeit, den sequenziell abzu-arbeitenden Code auf mehrere Funktionen in unterschiedlichen Ka-nälen aufzuteilen und diese in der entsprechenden abfolge aufzurufen bzw. wiederum in einer Funktion zusammenzufassen.

5.3.4 Global verfügbare Funktionen

als einziges Sprachelement werden Funktionen in Combustion gene-rell global behandelt, d.h., eine Funktion, die in einem beliebigen Kanal eines beliebigen objekts definiert ist, kann von überall aus aufgerufen werden.

Da eine Definition globaler Variablen in Combustion nicht mög-lich ist, bietet es sich an, Variablen bei bedarf in Container-Funktionen abzulegen. Über eine solche Container-Funktion kann ein darin abge-legter Wert in einem beliebigen Kanal zu einem beliebigen Zeitpunkt wieder aufgerufen werden.

auch bei der Definition von Funktionen für berechnungen gibt es in Combustion eine besonderheit zu beachten. Die Definition von para-metrisierten Funktionen erfolgt nicht nach dem in Java Script üblichen muster function Name(Parameter) {}. Wird eine Funktion so definiert, kann nicht wie erwartet auf Parameter zurückgegriffen werden. auf übergebene parameter kann in Combustion ausschließ-lich über ein array mit der bezeichnung arguments[] zugegriffen werden. Der erste parameter befindet sich also in arguments[0], der zweite in arguments[1] und so weiter. leider wird auf diese besonderheit in der Dokumentation zu Combustion 4 an keiner Stelle hingewiesen.

5.3.5 Capsules als Container für Funktionen

Capsules sind eine der wesentlichen Neuerungen in Combustion 4. Dabei handelt es sich um benutzerdefinierte operatoren, die einen prozessbaum aus beliebig vielen anderen operatoren oder Capsules enthalten können. Capsules können in eigene Dateien gespeichert und für zukünftige projekte wiederverwendet werden. Des Weiteren kön-nen sie an andere benutzer weitergegeben werden.

69animation und programmierung in Combustion

Neben ihrer eigentlichen Funktion des modularisierten exportierens und damit der Herstellung einer einfachen Wiederverwendbarkeit von arbeitsschritten in Form von gekapselten operatorketten, bieten sie eine äußerst interessante eigenschaft für die programmierung. Sie kön-nen als expression Container eingesetzt werden, um alle Funktionen eines Workspace übersichtlich an einer zentralen position abzulegen.

Zu diesem Zweck wird eine leere Capsule benötigt, die nicht di-rekt erstellt werden kann, sondern zunächst einer primitiven Capsule bedarf. eine solche Capsule wird erstellt, indem als erster Schritt im Scematic View ein Footage element mit einem beliebige neu erstell-ten operator, z.b. einem Sharpen operator, verlinkt wird. als nächstes werden beide elemente selektiert und aus dem, nach einem rechts-klick angebotenen Kontextmenü, die option encapsulate angewählt. eine neue Capsule umschließt den operator und wird an seiner Statt angezeigt. Der link zum Footage kann dann entfernt werden.

Die neu erstellte Capsule kann anschließend im Workspace panel ausgewählt werden, um den in ihr enthaltenen operator zu löschen. in den Capsule Controls sollte unter inputs dem bestehenden input ein deskriptiver Name gegeben werden.

Der für die programmierung mit Funktionen wichtige bereich ist, wie in Bild 34 gezeigt, in den Capsule Controls unter Controllers zu finden.

Hier kann eine beliebige anzahl von Kanälen angelegt und benannt werden. Capsules sind die einzigen elemente, denen beliebige Kanäle hinzugefügt werden können. aus diesem Grund eignen sie sich ideal für die Verwaltung und aufbewahrung von Funktionen, die sonst in anderweitig nicht benötigten Kanälen irgendwo im projekt abgelegt werden müssten.

Die so erstellte Capsule sollte im Workspace panel sinnvoll um-benannt werden. Die Container Capsule sollte im Scematic View in den Datenfluss integriert werden. bedingt durch die globale behand-lung von Funktionen ist dies zwar theoretisch nicht nötig, in der praxis findet Combustion so eingebundene Funktionen jedoch zuverlässiger.

◀ Bild 34erstellen neuer Kanäle mittels der Capsule Controls

Entwicklung des Workflow

„blank plays DUDeN“

Vorbereitung des Composite

Die zeitliche Dimension des Composite

Die räumliche Dimension des Composite

Zusammenfassung

72 entwicklung des Workflow

6 Entwicklung des Workflowim folgenden Kapitel soll anhand eines beispielprojekts der zu erarbei-tende Workflow für plansequentielle Kamerafahrten über sich dyna-misch eröffnende Composites induktiv hergeleitet werden. Zunächst werden das erstellte projekt und sein Umfeld vorgestellt. anschließend wird auf die techniken und Strukturen eingegangen, mit deren Hil-fe das projekt realisiert wurde, um daraus allgemeingültige arbeits-schritte abzuleiten.

6.1 „Blank plays DUDEN“

Das zur entwicklung des Workflow erstellte projekt ist ein musikvideo. es wurde aus musik und Fotos erstellt, die im rahmen der Dreharbei-ten für die in Bild 35 gezeigte DVD „blank plays DUDeN“ entstanden sind.

Zur Formation blank gehören rüdiger Carl, eine „der wichtigsten per-sönlichkeiten der aus dem europäischen Free Jazz hervorgegangenen musik“81 und die beiden, um eine Generation jüngeren Künstler oliver augst und Christoph Korn, die „im Spannungsfeld von improvisation, installation, elektronik und Theorie“82 arbeiten.

Für ihr jüngstes projekt hat blank eigene aufnahmen durchforstet und quasi mikroskopisch zerlegt. Die resultierenden Fragmente wur-den als sog. „locked grooves“ in Vinyl gepresst.83 „auf einer ,locked grooves’ Schallplatte bilden die musikrillen in sich geschlossene Kreise,

81 blaNK plaYS DUDeN DVD : www.augst-carl-korn.de, (4.8.2006)82 ebenda83 Vgl. blaNK plaYS DUDeN DVD : www.augst-carl-korn.de, (4.8.2006)

Bild 35 ▶DVD „blank plays DUDeN“ - Coverart von Günther Förg

und tobias rehberger

73entwicklung des Workflow

bei denen der tonarm in einem turnaround ,hängen’ bleibt, also einen loop von jeweils exakt 1,8 Sekunden erzeugt.“ 84

Die resultierende Schallplatte DUDeN ist Grundlage der live- performances unter dem titel „blank plays DUDeN 3 Herren, 3 plat-tenspieler, 3 Vinyls“85. bei dieser machen blank „den loop zum prinzip. Statt einer spiralförmigen rille gibt‘s auf ihren platten 240 geschlos-sene Kreise. Das terzett hat dazu eine ausgetüftelte Spielanleitung ent-wickelt. ,Duden’ ist nicht nur platte, nein, mit ihr wird der heimische Schallplattenspieler zum instrument.“86

Der ablauf der performances beruht auf dem muster „verabre-dungsgemäß [...] tonarme aufzulegen und die plattenspieler zu mani-pulieren: schneller, langsamer, lauter, leiser, bremsen, beschleunigen, rhythmisch oder auch betont unrhythmisch, plattenspieler anheben und schütteln, mit der Faust auf den tisch hauen und was sie sich sonst noch alles an Spieltechniken erschlossen haben - ein kurzweiliges und enorm musikalisches Spiel mit Zufall, Fantasie, Verabredung und Gruppendynamik.“87

6.2 Vorbereitung des Composite

in diesem abschnitt wird die Vorbereitung des projekts auf die ani-mationsphase beschrieben. Zunächst wird der aufbau und die Funk-tion des bereitgestellten Workspaces Getting Starteted.cws erläutert. anschließend wird detailliert auf die anforderungen bei der auswahl bzw. planung und erstellung des zu verwendenden Footage eingegan-gen. abschließend wird gezeigt, wie das Footage im Workspace anzu-ordnen, zu strukturieren und einzubetten ist, um die weiteren arbeits-schritte der animation und des morphings vorzubereiten.

6.2.1 anlegen der Grundstruktur des Workspace

in diesem abschnitt wird erläutert, wie ein für die weiteren arbeits-schritte geeigneter Workspace anzulegen ist. Die nachfolgend be-schriebenen Grundlagen sind für alle projekte, die dem vorgestellten Workflow folgen, identisch und müssen nicht jedes mal neu vollzogen

84 blaNK plaYS DUDeN DVD : www.augst-carl-korn.de, (4.8.2006)85 Kunsthalle Düsseldorf: 10.09. – 06.11.2005 Compilation ii : www.germangalleries.com, (4.8.2006)86 machtdose » blank – Duden : www.ronsens.de, (4.8.2006)87 Frankfurter rundschau 7/04 - Standleitung ins Unendliche : www.augst-carl-korn.de, (4.8.2006)

74 entwicklung des Workflow

werden. Der am ende dieses abschnitts erreichte Stand wird im digi-talen anhang der arbeit als basis für neue projekte bereitgestellt.

Nach dem Start von Combustion muss als erster Schritt zur erstellung des Workspace ein neuer Composite operator erzeugt werden. intui-tiv erscheint es in Hinblick auf die Zielsetzung eines Composite mit räumlicher Dimension logisch, für diesen operator den 3D-raum zu wählen. Die räumliche Komponente des Composite soll jedoch, wie in den nachfolgenden abschnitten gezeigt, durch die transformation der Szenen mittels morphing entstehen. Dies kann nicht innerhalb des Composite operators realisiert werden, sondern erfordert einen ande-ren, auf dieses Gebiet spezialisierten operator.

Daraus folgt, als implikation der prozessbaumorientierten Vor-gehensweise bei der Verarbeitung der bildinformation innerhalb des projekts, dass lediglich der output des Composite operators einem morph zugrunde liegt. Dieser besteht, unabhängig davon, ob es sich um einen 2D oder um einen 3D Composite operator handelt, aus den fertig gerenderten bildinformationen des operators für das aktuelle Frame.

Da der output folglich immer zweidimensional ist, wird von anfang an der 2D-raum für die verwendeten Composite-operatoren gewählt, da sich Verschiebungen im 3D-raum nicht auf die morphing operatoren übertragen lassen. Der erste operator muss, wie in Bild 36 gezeigt, un-ter berücksichtigung der für das zu bearbeitende projekt gewünschten Video-einstellungen erstellt werden.

Für das beispielprojekt wur-de ein 2D Composite ope-rator mit den für den pal Standard charakteristischen 25 Frames pro Sekunde und einem Seitenverhältnis von 16:9 mit quadratischen pix-eln erstellt.

Für die später verwen-deten morphing-effekte hat sich gezeigt, dass insbeson-dere die bildränder anfällig für ungewünschte effekte sind, deren beseitigung ein hohes maß an Feinar-beit erfordert. Um diese zu

Bild 36 ▶erstellen eines neuen Composite operators

Vgl. Digitaler anhang, CD:\Workflow\Getting

Started.cws

75entwicklung des Workflow

umgehen, sollte in den zuvor angelegten Composite operator ein wei-terer, um 20 % größerer Composite operator eingebettet werden, der nachfolgend das eigentliche Footage aufnimmt. Der in der Hierarchie höher gelegene, zuvor erstellte operator dient als statische bildmaske, die das darunter liegende bildmaterial entsprechend des Zielformats beschneidet.

Die Funktionsweise der weiteren, im bereitgestellten Workspace enthal-tenen elemente, wird in den nachfolgenden abschnitten des Kapitels erläutert. Zur besseren orientierung sollen sie vorgreifend bereits an dieser Stelle kurz vorgestellt werden. Die speziell für diesen Workflow entwickelte Capsule Plansequenz Funktionen ist bereits, wie in Bild 37 zu sehen, in den Workspace eingebunden. Sie stellt als letzte instanz im gezeigten prozessbaum die verwendeten Java Script Funktionen bereit, ohne selbst das bildmaterial zu verändern.

analog dazu wird die Capsule in der in Bild 38 gezeigten hierar-chischen Darstellung des Workspace als oberstes element angezeigt. im Composite operator Your Frame +20% sind bereits zwei, anschlie-ßend für die erstellung der Kamerafahrt benötigte Nullobjekte mit den bezeichnungen Master Ani­mation und Slave Anima­tion abgelegt.

Die im gleichnamigen Kanal der Capsule Plan­sequenz Funktionen ent-haltene Funktion GetInfo muss so editiert werden, dass sie den einstellungen des jeweiligen projekts ent-spricht. anzugeben sind hier der pfad zum Nullob-jekt Master Animation, der bei befolgung des vorge-schlagenen Vorgehens stets konstant bleibt, die Höhe und breite des Composite operators Your Frame +20% sowie dessen Framerate und das verwendete pixelseitenverhältnis.

◀ Bild 37Scematic View des Workspace Getting Started.cws

◀ Bild 38Hierarchische Struktur des Workspace Getting Started.cws

76 entwicklung des Workflow

6.2.2 erstellung und auswahl des Footage

Das vorgestellte musikvideo wurde aus einem pool bereits vorhandener Fotos erstellt. bei der erstellung des Footage konnte daher noch nicht auf besondere anforderungen der hier gezeigten arbeit eingegangen werden. Für einen großen teil der projekte im möglichen anwendungs-gebiet des Workflow, wie z.b. für die erstellung von dynamischen Dia-shows und anderen bildfolgen im rahmen von DVD-produktionen, können ähnliche Voraussetzungen angenommen werden.

im Folgenden soll das ausgewählte bildmaterial für das musikvideo „blank plays DUDeN“ betrachtet und auf der auswahl zugrundege-legte Kriterien eingegangen werden. Darüber hinaus sollen Hinweise zu besonderheiten bei der erstellung des Footage für arbeiten gegeben werden, bei denen die Verwendung der geschilderten Vorgehensweise bereits während der planungsphase beschlossen wird.

Der betrachter fokussiert bei den verwendeten transformationen zwi-schen zwei bildern intuitiv auf den bildbereich, der bei Überblendung des restlichen bildes integer bleibt. Diese zur Wahrung der fortwäh-renden Ganzheitlichkeit des Composite genutzte attraktion muss stark genug sein, um die ihr entgegengebrachte aufmerksamkeit über den Zeitraum des morphs zu halten.

Dazu sind personen, besonders deren Gesichter, sehr gut geeig-net. Gegenstände mit einem ausreichend hohen Detaillierungsgrad, die sich hinreichend von ihrer Umgebung abheben, können ebenfalls verwendet werden. im musikvideo werden jedoch ausschließlich die bandmitglieder als attraktion genutzt.

bei der Diskussion des zu verwendenden Footage soll zwischen zwei arten von aufnahmen differenziert werden. einerseits werden einzel-aufnahmen betrachtet, wie sie dem vorgestellten projekt zugrunde lie-gen. andererseits soll auf Serienaufnahmen eingegangen werden, die im rahmen eines Konzepts speziell zur erstellung eines Films dieser art geplant werden.

richtung und Geschwindigkeit der Kamerafahrt werden bereits durch die reihenfolge der bilder und die anordnung der zu verwen-denden attraktionen bei der Komposition derselben festgelegt. Für Serienaufnahmen sollte also bedacht werden, wo die für das morphing zu verwendenden attraktionen platziert werden. Dabei sollten nicht nur die horizontale und vertikale position eines elements, sondern auch seine position im raum und die daraus resultierenden Größen-verhältnisse in bezug auf andere elemente bedacht werden. Das in Bild 39 gezeigte beispiel zweier aufeinanderfolgender bilder eines Story-

77entwicklung des Workflow

boards mit den bezeichnungen a und b visualisiert die abhängigkeit der Fahrtrichtung vom aufbau des bildmaterials.

bild a ist das erste bild des Films. als attraktion für transformationen fungieren nur die personen 2 und 3. Die zu simulierende Kamera soll tendenziell linear aus dem bild herausfahren. als Grundlage für die-se bewegung wird der Kameraausschnitt im ersten Frame des Films so gewählt, dass person 1 in einer Nahen zu sehen ist. im Zeitverlauf öffnet sich die einstellung kontinuierlich, bis person 2 ins bild kommt und gegen ende der Fahrt in bild a ebenfalls in einer Nahen zu sehen ist. Das angrenzend gezeigte bild b ist darauf ausgelegt, später im Com-positing so über bild a montiert zu werden, dass sich die abbildungen von person 2 weitestgehend decken.

Gegen ende der simulierten Kamerabewegung durch bild a soll sich dieses in bild b transformieren. person 1 wird ausgeblendet, wäh-rend person 2 dazu genutzt wird, die visuelle Ganzheitlichkeit der Se-quenz wie gefordert zu wahren. Diese lineare Fahrt kann anschließend in bild b über person 3 fortgesetzt werden. auf diese Weise können von der gezeigten linearen Fahrt über kompliziertere Konstrukte wie Kreisbögen oder alternierende richtungswechsel beliebige Strecken geplant werden.

Dabei ist zu bedenken, dass ein Foto nie oder nur recht kurz in seiner vollen Größe gezeigt wird. Weiterhin ist zu beachten, dass eine direkt lineare Korrelation zwischen der auflösung des Footage und der von der Kamera zurücklegbaren Strecke besteht. Da das material im Ziel-bild nicht auf mehr als 100 % skaliert werden sollte, ist die länge die-ser Strecke durch die Größe des Zielbildes, im Fall des musikvideos 1.024x576 pixel und die des ausgangsbildes, im beispielprojekt sechs megapixel, festgelegt. es sollten also Fotos mit der maximal möglichen auflösung erstellt werden, um die Flexibilität der virtuellen Kamera zu erhöhen.

aktuell sollten für digitale aufnahmen Kameras mit zehn megapixel oder mehr bevorzugt werden. in Hinblick auf HD tV kann derzeit nur auf die arbeit mit feinkörnigen Filmmaterialien im mittelformat ver-wiesen werden. aufnahmen im Format 6x7 cm2 lassen sich beispiels-

◀ Bild 39planung der Kamerafahrt bei der Konzeption von Serienbildern

12

23

A B

78 entwicklung des Workflow

weise mit gängigen Filmscannern bei einer abtastrate von 4.000 dpi als bilddateien der ausmaße 11.024x9.448 pixel, also mit mehr als 100 megapixel, digitalisieren.

Um das prinzip des morphing subtil anzuwenden, sollte versucht wer-den, stets gleiche elemente für die zu erstellenden morphs zu planen, bzw. zu finden. Wenn sich das Gesicht einer person im Fluss zwischen zwei bildern nur leicht in seiner position, aber nicht in seinen Charak-teristika ändert, wird der zugrunde liegende morph wesentlich weniger wahrgenommen als bei der Verwandlung einer person in eine andere.

Für das musikvideo wurden bewusst auch Verwandlungen zwi-schen den einzelnen bandmitgliedern realisiert, um die sonst subtile anwendung der morphing-effekte an zwei geeignet erscheinenden positionen zu brechen.

bei der geplanten erstellung von Serienaufnahmen kann ein wesent-liches problem der arbeit mit einzelaufnahmen vermieden werden. Da beim morphing immer das gesamte bild verzerrt wird, kommt es leicht zu störenden Veränderungen in den zu überblendenden bildtei-len, insbesondere, wenn es sich dabei um bildinhalte mit ausgeprägten geometrischen Formen, wie beispielsweise architekturelementen, han-delt. Die Wölbung einer architektonisch bedingten Geraden fällt sehr schnell störend auf. Solche elemente müssen daher bei der arbeit mit einzelbildern, wie später in diesem Kapitel beschrieben, durch geeig-nete Geometrien stabilisiert werden.

eine ideale lösung dieses problems wäre das ausmaskieren des zu morphenden bildbereichs und die daraus resultierende möglichkeit seiner auslagerung auf einen eigenen layer, der gemorpht werden könnte, während die Hintergrundelemente ohne Verzerrung im glei-chen maße überblendet würden.

Das Freistellen ist bei der arbeit mit einzelbildern zwar möglich, aber der teil des Hintergrundes, vor dem das zu morphende element platziert war, trägt anschließend keine bildinformation mehr. Die pro-bleme entstehen zwangsläufig während des morph, da in jedem Fall eines der zu morphenden elemente so verzerrt wird, dass nicht länger alle teile dieser undefinierten bereiche verdeckt bleiben.

bei der erstellung von Serienaufnahmen kann bei der arbeit mit festgelegten einstellungen und Stativ jede Szene mit identischen Ka-meraeinstellungen nach einer aufnahme mit personen oder objekten noch ein weiteres mal ohne dieselben fotografiert werden. Das so ge-wonnene material ermöglicht die arbeit nach dem zuvor genannten prinzip. es können dann in der post alphakanäle erstellt werden, um die zu morphenden elemente freizustellen. mit den leer aufgenom-

79entwicklung des Workflow

menen Szenen stehen für die weitere arbeit Hintergründe zur Verfü-gung, die auf der vollen Fläche definiert sind, also auch hinter den zu morphenden bildelementen.

Für die aufnahmen der Gruppe blank wurden bewusst die zahlreichen Glasflächen der modernen architektur des Sets genutzt, um durch Spiegelungen und reflektionen weitere interessante ebenen zu finden. Gerade deshalb eignet sich dieses material besonders gut für die ge-zeigten Übergänge. bereits in den Fotografien finden sich vielerorts halbtransparente ebenen, wie am beispiel von Bild 40 gezeigt werden soll.

Das bild zeigt rüdiger Carl und Christoph Korn bei einer Unterhaltung während einer Drehpause auf der Dachterrasse. Dabei wurde die Glas-front des Hochhauses genutzt, um eigentlich im rücken der Kamera befindliche teile der Szene in die Komposition des bildes aufzuneh-men. Der schwarze anzug der Spiegelung des im Schatten befindlichen rüdiger Carl wirkt zudem wie eine maske auf der Glasfläche. in diesem dunklen bereich wird mit der Vase mit mohnkapseln ein teil des in-nenraums sichtbar, der von den übrigen, helleren teilen der reflektion vollständig verschluckt wird.

aus dem vorhandenen fotografischen material wurden zwölf ein-zelbilder gewählt, um einen interessanten bogen zu kreieren. Dieser sollte neben motiven der eigentlichen performances verstärkt auch sol-che aus den Drehpausen enthalten, um die Geschichte der produktion mit Fokus auf die band zu erzählen.

◀ Bild 40Glasflächen als halbtransparente ebenen im bildmaterial zu „blank plays DUDeN“

80 entwicklung des Workflow

Dieses making of zeigt nur in einer Spiegelung eine Filmkamera und verzichtet bewusst auf die Darstellung der mit der technik betrauten personen. es geht vielmehr um die begleitung der band durch mo-mente aus den beiden zu einer einheit verschmelzenden Drehtagen. Die in Bild 41 gezeigte Fotostrecke beginnt mit zwei motiven, die Spannung und eine gewisse erwartungshaltung vermitteln sollen. Das bildmaterial der ersten 20 Sekunden wurde so gewählt, dass eine line-are Fahrt in leserichtung entsteht. anschließend löst sich die Kamera von dieser richtungsvorgabe und greift die möglichkeiten des eingriffs in die musik durch die bewegungen von platte und tonarm als Grund-lage für ihre weitere spielerische bewegung auf. bei der auswahl ge-eigneten bildmaterials war dafür zunächst nur die grobe Kamerarich-tung durch die jeweils für das morphing vorgesehenen personenpaare vorgegeben.

bedingung ist stets ein mindestmaß an Ähnlichkeit der zu mor-phenden elemente. Je größer diese Ähnlichkeit, desto unproblema-tischer ist die erstellung einer flüssig erscheinenden transformation.

im vorangegangenen abschnitt wurde ausschließlich auf Fotos als mögliches Footage eingegangen. Darüber hinaus ist auch anderes bild-material, wie z.b. Zeichnungen und computergeneriertes bildmaterial geeignet. Solche bilder können natürlich auch selbst bereits aus mehre-

Bild 41 ▶ausgewähltes Footage für

das musikvideo

81entwicklung des Workflow

ren einzelbildern bestehen und durch anwendung diverser techniken des Compositing entstanden sein.

Schwieriger ist die Übertragbarkeit auf Videomaterial zu bewerten, da probleme auftreten, sobald sich die zu morphenden elemente nicht nur in ihrer durch die animation festgelegten position, sondern auch in ihrer Form verändern. Dreht z.b. eine person, die Grundlage eines zu erstellenden morphs ist, den Kopf, so ist diese bewegung nicht län-ger durch die animation bedingt. Die resultierenden Veränderungen im bild müssten aber dennoch durch die zugehörige Geometrie nach-vollzogen werden. Für derartige Zielsetzungen kann der vorgestellte Workflow lediglich als Grundlage dienen.

6.2.3 anordnung des Footage in Combustion

Zur Weiterarbeit in Combustion muss das ausgewählte Footage im-portiert werden. Um es schnell an der korrekten position einzufügen, kann dieser Schritt, wie in Bild 42 gezeigt, durch das per rechtsklick im Workspace zu erreichende Kontextmenü vollzogen werden. Das Footage sollte dabei in den Composite operator Your Frame +20% im-portiert werden.

◀ Bild 42importieren des Footage in den vorbereiteten Workspace

82 entwicklung des Workflow

Jedem der so erstellten layer sollte zunächst das Nullobjekt Master Animation als parent zugewiesen werden. anschließend kann mit der anordnung des Footage begonnen werden. Zunächst muss es im Work-space hierarchisch entsprechend der reihenfolge seiner Verwendung geordnet werden. Das erste zu verwendende bild ist dabei das oberste.

Die im toolbar unter den Composite Controls befindlichen trans-formationswerkzeuge können nach erfolgtem parenting, bei Selektion des Nullobjektes Master Animation im Workspace genutzt werden, um alle objekte zusammenhängend so zu skalieren, rotieren und verschie-ben, dass der bereich des Composite, an dem gerade gearbeitet wird, im sichtbaren ausschnitt des verwendeten Composite operators liegt.

Dieser ausschnitt misst für das beispielprojekt 1.024x576 pixel bzw. 20 % mehr. er kann auf Wunsch jederzeit temporär vergrößert werden, was jedoch nur im rahmen dessen sinnvoll ist, was bei der verwende-ten bildschirmauflösung angezeigt werden kann.

Der bildausschnitt des Composite operators repräsentiert das Sichtfenster der Kamera, die transformationsgruppe des Nullobjekts Master Animation dient zu deren bewegung. technisch betrachtet ist der ausschnitt feststehend und das material wird bewegt, visuell ist dies jedoch irrelevant. Die Verwendung des Nullobjekts Master Anima­tion zur positionierung des zu bearbeitenden teils des Composite im sichtbaren ausschnitt ist die Grundlage für das weitere Vorgehen.

Zu beginn der arbeit an der positionierung der elemente des Footage können alle bilder mit ausnahme der ersten beiden deakti-viert werden. Das oberste bild sollte über seine opacity einstellung eine transparenz von ca. 50 % erhalten, so dass das darunter liegende zweite bild durchscheint. Dieses zweite bild sollte nun im Workspace ausgewählt und mit Hilfe der transformationswerkzeuge so positio-niert werden, dass sich die für den geplanten morph zu verwendenden attraktionen in den bildern so gut wie möglich decken. anschließend wird die transparenzeinstellung des obersten bildes wieder auf 100 % gesetzt und dieses deaktiviert und somit versteckt. Nach aktivierung des dritten bildes wird das Vorgehen wiederholt. Zu beachten ist, dass immer nur das unten liegende bild bewegt wird, da sonst die zuvor durchgeführte Synchronisierung verloren geht. Bild 43 zeigt das fertig positionierte Footage des beispielprojekts.

83entwicklung des Workflow

als letzter Schritt der Vorbereitung des Footage für animation und morphing müssen die layer mit dem Footage in eigenständige, in den ursprünglichen Composite operator eingebettete Composite-opera-toren verwandelt werden. Dazu dienen die ebenfalls mit einem rechts-klick im Workspace zu erreichenden Nesting options, die in Bild 44 gezeigt werden.

im entsprechenden Dialog kann dem zu erstellenden Nested layer ein deskriptiver Name gegeben werden. Dieser wird auch auf den zuge-hörigen neuen Composite operator übertragen. als option für die verwendete einbettungsart muss Selected layers gewählt werden. Das einbetten sollte mit dem hierarchisch untersten layer begonnen wer-den, da jeder neu erstellte Nested layer ganz oben in der Hierarchie des Composite operators erzeugt wird. Durch die umgekehrte reihenfolge beim erstellen ist die Hierarchie nach dem einbetten aller operatoren wieder in ihrer ursprünglichen ordnung.

◀ Bild 43Fertig positioniertes Footage des musikvideos

◀ Bild 44Nesting options für die layer mit dem Footage

84 entwicklung des Workflow

Der Schritt des Nesting ist notwendig, da jeder der später verwendeten re:Flex motion-morph-operatoren zwei inputs benötigt; einen für das ausgangsbild, den anderen für das zugehörige Zielbild. als input können nur die outputs anderer operatoren verwendet werden und nicht die, wie in Bild 45 in der Scematic View als Kugel visualisierten layer.

mit dem Nesting geht die Verknüpfung der layer mit dem Nullob-jekt Master Animation als parent verloren, da sich dieses nun in einem anderen Composite operator befindet. Um die layer wieder mit ihm zu verknüpfen, muss in jeden der neuen Composite-operatoren das vorbereitete Nullobjekt Slave Animation kopiert und dem enthaltenen layer als parent zugewiesen werden. Die hinter diesem Vorgehen ste-hende Funktion und ihr aufruf mittels geeigneter expressions werden im folgenden abschnitt erläutert.

beim Öffnen so vorbereiteter Dateien kann es zur meldung eines Feh-lers nach dem muster „Funktionsname is not defined“ kommen. in diesem Fall hat Combustion die verwendeten Funktionen aus unbe-kannten Gründen noch nicht gefunden. meist kann die Fehlermeldung bereits durch Öffnen der betreffenden Funktion im expression editor und Schließen dieses Fensters durch die tastenkombination Umschalt + enter behoben werden. allerdings muss anschließend das betrach-tete Frame neu gerendert oder das nächste Frame angefahren werden. als Ultima ratio kann Combustion nur neu gestartet werden, um das beschriebene Vorgehen gegebenenfalls zu wiederholen. einmal gefun-dene Funktionen bleiben bekannt. es wäre wünschenswert, dass dieser bug mit einem der folgenden Updates behoben wird.

Bild 45 ▶Scematic View der Nested

layers

85entwicklung des Workflow

Die betrachtete weitere Vorbereitung eines Workspace für das Foot-age aus einzelbildern kann auf die erläuterten Serienaufnahmen mit alphakanälen und zugehörigen aufnahmen leerer Szenen unter be-achtung von besonderheiten übertragen werden. Diese besonderheiten werden nachfolgend beschrieben.

es empfiehlt sich in diesem Fall zunächst in photoshop die Szenen mit den entsprechenden Hintergründen zu kombinieren und dabei die attraktionen auf eigenen ebenen freizustellen. alle ebenen sollten be-reits an dieser Stelle sinnvoll benannt werden. ideal ist eine benennung nach dem muster Dateiname - ebenenname.

Die so gespeicherten pSD-Dateien können anschließend im modus Grouped nach Combustion importiert werden. Das Vorgehen bei ih-rer platzierung folgt dem beschriebenen muster mit der ausnahme, dass die transformationswerkzeuge anstatt für einzelne layer für die beim importieren erstellten Nullobjekte mit dem Namen der Quell-dateien verwendet werden. Diesen Nullobjekten wird auch das Null-objekt Master Animation als parent zugewiesen. Da diese Nullobjekte selbst bereits automatisch allen layern, die der zugehörigen Datei ent-stammen, als parent zugewiesen wurden, können alle layer einer pSD- Datei gleichzeitig positioniert werden.

Nachdem das Footage positioniert ist, muss für die weitere bearbeitung die Verknüpfung zwischen layern und den zugehörigen parents, also den Nullobjekten, gekappt werden. Dazu sollten zunächst die Werte für translation, rotation und Skalierung eines Nullobjekts notiert werden. anschließend können diese Werte in die entsprechenden Kanäle der zugehörigen layer eingetragen werden und unter der option parent der Wert none anstelle des ursprünglich zugeordneten Nullobjekts ge-wählt werden. Die beim importieren generierten Nullobjekte können dann gelöscht werden.

Die Hintergrundelemente sollen nicht gemorpht werden. Deshalb müssen sie im prozessbaum erst nach der position für die geplante an-wendung der morph-operatoren mit dem aus diesen resultierenden output kombiniert werden. aus diesem Grund sollten alle layer, die unverzerrt überblendet werden sollen, im Workspace selektiert, aus-geschnitten und unterhalb des layers Your Frame +20% im Compo-site operator Your Frame wieder eingefügt werden. Um sie mit dem restlichen material zu synchronisieren, muss auf der gleichen ebene eine Kopie des Nullobjekts Slave Animation platziert werden, das an-schließend allen Hintergrundebenen als parent zugewiesen wird. Für die freigestellten, zu morphenden bildteile ist anschließend das zuvor für das gesamte Footage erläuterte Vorgehen anzuwenden.

86 entwicklung des Workflow

6.3 Die zeitliche Dimension des Composite

Die zeitliche Dimension des Composite ergibt sich durch die anima-tion des Nullobjekts Master Animation zur erstellung der virtuellen Kamerafahrt. im folgenden abschnitt wird die Funktionsweise der den bereits eingefügten Nullobjekten vom typ Slave Animation zugrunde liegenden Funktion erläutert. anschließend wird der arbeitsablauf der animationsphase dargelegt.

6.3.1 expression zur Übertragung von animationsdaten

Da sich das zu morphende Footage, wie bereits erwähnt, aufgrund der anforderungen an die Warp to layer von re:Flex motion-morph-operatoren, nicht auf einfachen layern befinden darf, sondern jedes Footage element in einem eigenen Composite operator eingebettet ist, kann auf das Konzept des parenting nicht mehr ohne Weiteres zurückgegriffen werden. Das zuvor zur zentralen Steuerung der ani-mation verwendete Nullobjekt Master Animation kann in den Nested Composites nicht als parent gewählt werden, da es sich in einem ande-ren Composite operator auf einer höheren ebene der Hierarchie des Workspace befindet.

Um diese limitierung zu überwinden, muss auf expressions zu-rückgegriffen werden. auch hier bietet sich an, ein spezielles, mit ex-pressions ausgestattetes Nullobjekt in jedes Nested Composite zu in-tegrieren und so dessen transformationskanäle mit denen des master Nullobjekts zu verlinken.

Die folgende abgedruckte und in der Capsule Plansequenz Funk­tionen enthaltene Funktion GetMyNull erleichtert diese Verknüpfung.

function GetMyNull(){GetInfo();XPos=CB.GetChannelValue(MasterNull+“X Position“, CB.GetCurrentFrame() );YPos=CB.GetChannelValue(MasterNull+“Y Position“, CB.GetCurrentFrame() );ZPos=CB.GetChannelValue(MasterNull+“Z Position“, CB.GetCurrentFrame() );XRot=CB.GetChannelValue(MasterNull+“X Rotation“, CB.GetCurrentFrame() );YRot=CB.GetChannelValue(MasterNull+“Y Rotation“, CB.GetCurrentFrame() );

Java Script ▶Funktion zur Synchroni-sierung von Nullobjekten

87entwicklung des Workflow

ZRot=CB.GetChannelValue(MasterNull+“Z Rotation“, CB.GetCurrentFrame() );XScale=CB.GetChannelValue(MasterNull+“X Scale“, CB.GetCurrentFrame() );YScale=CB.GetChannelValue(MasterNull+“Y Scale“, CB.GetCurrentFrame() );ZScale=CB.GetChannelValue(MasterNull+“Z Scale“, CB.GetCurrentFrame() );XShear=CB.GetChannelValue(MasterNull+“X Shear“, CB.GetCurrentFrame() );YShear=CB.GetChannelValue(MasterNull+“Y Shear“, CB.GetCurrentFrame() );ZShear=CB.GetChannelValue(MasterNull+“Z Shear“, CB.GetCurrentFrame() );

}

Die Funktion bezieht den pfad zum master Nullobjekt durch den auf-ruf der Funktion GetInfo, in der allgemeine einstellungen zum aktuellen projekt zentral abgelegt sind. anschließend werden die für das aktuelle Frame relevanten transformationswerte aus dem master Nullobjekt in entsprechenden Variablen abgelegt. Da nicht direkt per expression in andere transformations-kanäle geschrieben werden kann, muss in jedem trans-formationskanal des Nullob-jekts Slave Animation, wie in Bild 46 gezeigt, die Funktion GetMyNull gefolgt von der benötigten Variablen aufge-rufen werden.

im Kanal X position muss also beispielsweise das ex-pression GetMyNull(); XPos; eingefügt werden. manuell muss allerdings nur ein Nullobjekt mit den entsprechenden Funktionsaufrufen bestückt werden. Dies ist im vorbereiteten Workspace bereits enthalten und kann wie empfohlen in alle weiteren Composite-operatoren kopiert werden, da die Funktionsaufrufe überall identisch bleiben.

◀ Bild 46expressions mit Funktionsaufrufen im Nullobjekt Slave animation

88 entwicklung des Workflow

6.3.2 erstellung von Kamerafahrten mittels Keyframe-animation

Nach der Vorbereitung des Composite kann mit der animation begon-nen werden. Zunächst sollte festgelegt werden, zu welchen Zeitpunkten die Übergänge platziert werden sollen. im beispielprojekt „blank plays DUDeN“ wird jedes bild fünf Sekunden lang allein verwendet, darauf folgt ein eine Sekunde dauernder Übergang.

Die länge der Nested layer kann dementsprechend in der timeline so angepasst werden, dass jedes element nur während des Zeitraums seiner Verwendung aktiv ist. eine darüber hinausreichende platzie-rung ist unnötiger ballast bei der berechnung des outputs der entspre-chenden Composite-operatoren. Die für das musikvideo resultierende Struktur in der timeline wird in Bild 47 gezeigt.

Das erste bild wird sechs Sekunden lang verwendet. es ist dementspre-chend vom ersten Frame bis zum ende der fünften Sekunde platziert. Das nächste bild wird für zwei morphs benötigt, es muss also bereits ab dem anfang der fünften Sekunde und bis zum ende der elften Se-kunde sichtbar sein. Für die übrigen bilder gilt das Gleiche. lediglich das zwölfte und letzte bild stellt eine ausnahme dar. es wird von der 71. Sekunde bis zum ende des Films genutzt.

Grundlage der zu erstellenden Kamerafahrt ist die animation des Null-objekts Master Animation. Zunächst sollte dieses mit den Werkzeugen zur positionierung, rotation und Skalierung so ausgerichtet werden, dass der gewünschte ausschnitt für den Start des Films sichtbar ist.

Bild 47 ▶timeline mit in ihrer länge angepassten Nested layern

89entwicklung des Workflow

anschließend kann im ersten Frame der animationsmodus aktiviert werden, um anschließend das erste bild in seinem letzten Frame auf seine Zielposition zu setzten. entsprechend werden die übrigen bilder auf ihre Ziele positioniert. abschließend muss der animationsmodus deaktiviert werden. Die so erstellte grobe Keyframe-animation der Ka-merafahrt ist visuell noch nicht besonders ansprechend.

Die nötige Feinarbeit erfolgt an anderer Stelle, dem Graph modus der timeline. Zunächst sollten dort, unter der Voraussetzung, dass das bildmaterial stets proportional skaliert wird, alle Keyframes der Kanäle Y Scale und Z Scale gelöscht werden. Diese Kanäle sollten zur arbeits-erleichterung unbedingt mit expressions ausgestattet werden, die sie mit dem Kanal für die X-Skalierung verknüpfen. Dazu wird der Kanal ausgewählt, in den das expression eingefügt werden soll. anschließend wird auf den button zur relativen Verlinkung und den Kanal geklickt, der als Datenquelle dient.

Nach der Vorbereitung kann mit der anpassung der Kamerafahrt durch bearbeitung der Kurven begonnen werden. Dazu können die bezier-punkte bestehender Keyframes modifiziert, aber auch neue Keyframes gesetzt werden. besonders ist darauf zu achten, dass jedes bild über den gesamten Zeitraum seiner Verwendung ganz den für den Film gewählten ausschnitt füllt. es dürfen niemals unbedeckte Stellen im endprodukt sichtbar werden.

als Hilfsmittel kann ein Solid in einer Signalfarbe unter die Nested layer montiert werden. in diesem Stadium der erstellung des Com-posite muss zur vollständigen beurteilung der platzierung eines bil-des dessen Vorgänger im Workspace deaktiviert werden, da er das bild während der phase des gemeinsamen Übergangs verdeckt. Von höchs-ter Wichtigkeit ist, dass während der für das morphing vorgesehenen Zeiträume, beide für den effekt relevanten bilder beachtet werden. Die ansicht der fertigen animationskurven des musikvideos im Graph modus der timeline ist in Bild 48 dargestellt.

◀ Bild 48Fertig angepasste animationskurven für das musikvideo

90 entwicklung des Workflow

Die virtuelle Kamera kann durch bewegung des materials frei in X- und Y-richtung und über die Skalierung des materials auch in Z-richtung bewegt werden. Darüber hinaus kann die rotation des materials ge-nutzt werden, um die Kamera nach rechts oder links zu neigen. Durch die möglichkeit von Fahrten, Schwenks, Zooms und Neigung der Ka-mera sind alle Voraussetzungen für die erfolgreiche erstellung einer plansequentiellen Kamerafahrt gegeben.

6.4 Die räumliche Dimension des Composite

Die räumliche Dimension des Composite entsteht durch die überein-ander angeordneten Footage-elemente, zwischen denen Übergänge durch spezielle morphing operatoren erzeugt werden. in diesem ab-schnitt sollen zunächst ansätze zur realisierung solcher effekte be-trachtet werden, die in bezug auf die Zielsetzung nicht den erhofften erfolg brachten. basierend auf diesen erkenntnissen wird die besonde-re eignung von re:Flex motion-morph-operatoren für den Workflow begründet.

in den übrigen abschnitten wird das anlegen der re:Flex motion-morph-operatoren erläutert und eine Funktion zur Synchronisation der von ihnen verwendeten Splines mit den animationsdaten des Null-objekts Master Animation als Grundlage der wesentlichen innovation der arbeit vorgestellt.

6.4.1 Verworfene ansätze zur implementierung der morphing-effekte

Zur realisierung des gesteckten Ziels einer plansequentiellen Kamera-fahrt über ein sich dynamisch eröffnendes Composite sollen zunächst die möglichkeiten betrachtet werden, die die Verwendung von re:Flex morph-operatoren bietet. auf den ersten blick erscheinen diese geeig-net, da sie speziell auf die arbeit mit Standbildern abgestimmt sind.

ein solches projekt würde darauf aufbauen, dass sich die unter einem re:Flex morph operator gelegenen layer im Zeitverlauf ablö-sen. alle Frames der Sequenz, in denen kein morph stattfindet, wären mit dem attribut picture Key? ausgestattet. Gegensätzlich dazu wäre dieses attribut für die Zeiträume der morphs deaktiviert. es würde entsprechend der spezifizierten Geometrie zwischen den an die Zeit-spanne angrenzenden Schlüsselbildern gemorpht.

Das unmittelbare problem dieses Vorgehens äußert sich in den berechnungszeiten der Frames mit Schlüsselbildern, also solchen, in

91entwicklung des Workflow

denen nicht gemorpht wird. auch für die berechnung derselben be-nötigen re:Flex morph-operatoren drastisch länger, als das rendern der Frames des zugrundeliegenden Composite operators allein in an-spruch nehmen würde.

bei näherer betrachtung wird ein weiteres problem deutlich. Die berechnung eines Frames erfolgt immer durch die vorgegebene inter-polation zwischen dem vorherigen und dem nächsten Schlüsselbild. Unabhängig von der intensität der einflüsse der einzelnen Schlüssel-bilder werden Veränderungen in der position des zugrundeliegenden materials im Verlauf eines morphs nicht berücksichtigt.

Zur Verdeutlichung dieses Sachverhalts soll angenommen wer-den, die Kamera beschriebe bei ihrer Fahrt über das Composite einen bogen. Während dieser bewegung soll ein morph stattfinden. Die zu verwendende Geometrie würde auf dem ersten Frame gezeichnet und anschließend bei aktiviertem animationsmodus das letzte Frame des morphs angefahren werden. Dort würde die Geometrie über das nun an anderer stelle befindliche Zielobjekt geschoben und an dessen De-tails angepasst. Der resultierende morph würde zwar eine mittels in-terpolation erzeugte lineare bewegung vom ausgangs- in den Zielzu-stand suggerieren, hätte jedoch mit der zugrunde liegenden animation des Footage nichts mehr gemein, da von dieser nur das erste und das letzte Frame betrachtet würden. Deshalb eignet sich re:Flex morph ausschließlich zum morphen von Standbildern, solange diese nicht animiert werden sollen.

eine theoretisch denkbare lösung dieses problems schließt sich in der praxis von selbst aus. Würde das Composite in einem Composite operator ausreichender Dimensionen erstellt, könnte die Kamerafahrt über dem gesamten Composite stattfinden. ein einziges Frame der Größe 30.000x15.000 pixel, die durchaus realistisch für das Composite im musikvideo wäre, würde 1,25 Gigabyte Speicherplatz in anspruch nehmen, so dass dieser ansatz schon deshalb verworfen werden muss. Die immensen renderzeiten sind dabei noch nicht berücksichtigt.

6.4.2 einfügen der re:Flex motion-morph-operatoren

aufgrund der erwähnten limitierungen von re:Flex morph hat sich re:Flex motion morph als geeignetes mittel zur Umsetzung der ge-steckten Ziele erwiesen. Dieser operator ermöglicht, durch die ihm zugrunde liegende trennung von Quell- und Zielgeometrie, prinzipiell morphs, die zuvor festgelegte animationen berücksichtigen.

92 entwicklung des Workflow

Die erwähnte problematik der berechnungsdauer für Frames, in denen kein morph stattfindet, besteht aber auch bei re:Flex motion morph. aus diesem Grund sollten mehrere operatoren verwendet werden, die nur genau in den Zeiträumen aktiv sind, in denen sie benötigt werden.

Dazu muss für jeden geplanten morph im layer Your Frame +20% ein re:Flex motion morph operator erzeugt und anschließend, wie in Bild 49 gezeigt, in der timeline ab dem gewünschten Zeitpunkt auf die entsprechende länge gebracht werden.

Die so vorbereiteten operatoren müssen konfiguriert und mit Geo-metrien ausgestattet werden. Dazu wird das erste Frame des ersten ge-planten morphs angefahren und der zugehörige re:Flex motion morph operator im Workspace mit einem Doppelklick im aktuellen Viewport angezeigt, da sonst keine Geometrieelemente dargestellt würden.

alle benötigten Splines werden in diesem Frame gezeichnet. Dabei werden für einander entsprechende bildteile alternierend Splines in den modi Unwarped From und Unwarped to gezeichnet, welche die betreffenden bereiche im Quell- bzw. Zielbild nachbilden.

Bild 49 ▶timeline mit auf

die benötigte länge angepassten re:Flex

motion-morph-operatoren

93entwicklung des Workflow

Von bedeutung ist, dass die Splines in gleicher richtung und mit einer identischen anzahl an punkten gezeichnet werden. Die Notwendigkeit dieses abgleichs kann durch die entsprechende einstellung des Splines der Quellgeometrie aufgehoben werden.

Zuerst sollten die wichtigsten Charakteristika der attraktionen in Quell- und Zielbild nachempfunden werden. Für die im beispielpro-jekt verwendeten Gesichter sind dies die Umrisse des Kopfes und ggf. oberkörpers sowie markante linien im Gesicht, die auf die positionen von augen, Nase und mund schließen lassen.

Für die spätere Synchronisierung der Splines mit den bewegungen der Kamera ist es zwingend erforderlich, dass die den einzelnen Splines zugehörigen Werte für rotation und Skalierung auf ihren anfangs-werten von 100 % bzw. 0° belassen werden. Fertige Splines dürfen also niemals rotiert oder skaliert werden, um sie auf das Footage anzupas-sen. Änderungen, die andere Werte als die der X- und Y-position be-einflussen, müssen jeweils für die einzelnen punkte des Splines vorge-nommen werden und nicht für das Spline als Ganzes.

Um den einfluss der erstellten Geometrieelemente auf den morph zu überprüfen, empfiehlt es sich, für das aktuelle Frame temporär die einstellungen Global Shape und Global Color auf 50 % zu setzen. So kann durch Wechseln in den modus Warped and blended jederzeit evaluiert werden, wie ein mittleres Frame des zu erstellenden morphs aussehen wird.

in Bild 50 sind das Frame mit der stärksten Verfremdung und die ihm zugrunde liegenden Quell- und Zielbilder eines morphs aus dem musikvideo abgebildet. Dieser morph ist zur illustration des Vorgehens besser geeignet als solche, die zwei bilder ein und derselben person ver-wenden. Durch die große Ähnlichkeit der in einklang zu bringenden merkmale des Gesichts wäre der Übergang weniger gut sichtbar.

◀ Bild 50Frame in der mitte eines morphs umgeben von Quell- und Zielbild mit entsprechenden Splines

94 entwicklung des Workflow

im gezeigten beispiel existieren bereiche, die gesteuert überblendet werden. Dies ist bei der arbeit mit einzelbildern von Zeit zu Zeit er-forderlich, da anders als bei geplanten Serienbildern nicht mehr die möglichkeit besteht, darauf einzuwirken, dass beispielsweise beide ge-zeigten personen ihre Hemdskragen geschlossen halten.

in der linken oberen ecke des gezeigten ausschnitts der bilder sind zwei für Quell- und Zielbild identische Splines zu sehen. Diese dienen dazu, die Form des Fensterrahmens im Zielbild zu stabilisieren. Das ist bei der Verwendung von einzelbildern oft unumgänglich, um den Grad störender Verzerrungen zu minimieren.

Die für die re:Flex motion-morph-operatoren zu wählenden einstellungen zur erzielung des visuell besten ergebnisses lassen sich nicht pauschal festlegen, sondern müssen für jeden morph neu ermit-telt werden. Dies gilt insbesondere für die einstellungen bezüglich der Verarbeitungsrichtung der bilddaten.88

Nachdem die arbeit an den Geometrien eines re:Flex motion morph operators abgeschlossen und die gewählte Vorschau bei 50 % Verzerrung und Überblendung zufriedenstellend ist, müssen die Werte Global Shape und Global Color wieder auf 0 % zurückgesetzt werden. anschließend muss nach aktivierung des animationsmodus das letzte Frame des morphs angefahren werden, um dort beide Werte auf 100 % zu stellen und den animationsmodus anschließend zu verlassen.

Das Setzen der Keyframes bringt eine lineare interpolation der Werte über den Zeitraum des morphs mit sich. Die entsprechenden Kurven können später angepasst und verfeinert werden. Falls mit Hin-tergrundebenen gearbeitet wird, muss anschließend die dem morph zugehörige obere ebene an der entsprechenden Stelle durch anima-tion des in den Composite Controls unter layer befindlichen Wertes opacity ausgeblendet werden.

Der morph ist nun vorbereitet. Der Versuch, ihn zwecks Vorschau als Film anzusehen, endet jedoch ernüchternd. Noch sind die Splines ausschließlich im ersten Frame des morphs mit dem darunter befind-lichen material synchronisiert. Diese Synchronisierung geht durch die fortwährende bewegung des zugrundeliegenden materials im Zuge der erstellten Kamerafahrt bereits nach wenigen Frames verloren.

88 Vgl. Kapitel 4.1

95entwicklung des Workflow

6.4.3 expression zur Synchronisierung der Splines mit den animationsdaten

Um die völlige bewegungsfreiheit der Kamera über dem Footage auch während der morphs zu gewährleisten, müssen alle Splines der mo-tion-morph-operatoren sowohl in X- und Y-richtung als auch in der intensität ihrer rotation und Skalierung mit dem zugrundeliegenden material Schritt halten.

beim morphing von Filmclips, dem Haupteinsatzgebiet von re:Flex motion morph, wäre die aufwändige manuelle animation einzelner Splines das normale Vorgehen zum erreichen dieses Ziels.89 im be-trachteten Fall erscheint diese Variante jedoch wenig sinnvoll, da die zugrunde liegende bewegung, im Gegensatz zu der dem Filmmaterial entstammenden, an anderer Stelle des projekts exakt abgelesen werden kann.

im folgenden abschnitt soll daher eine geeignete Funktion ent-wickelt werden, die die Synchronisierung von Splines und Footage mittels einfacher expressions ermöglicht. Dazu sollen die aus dem Nullobjekt Master Animation ablesbaren Änderungswerte der Kamera-position genutzt werden. Diese Funktion ist in der Capsule Plansequenz Funktionen implementiert.

Der zuvor für die Funktion GetMyNull verfolgte ansatz der direkten Verknüpfung von Kanälen unter auslagerung der langen aufrufe in die Funktion versagt in diesem Fall, da Combustion für paint und Compositing operatoren verschiedene Koordinatensysteme verwen-det und sich die pivot-punkte der objekte, als Zentrum der jeweiligen rotation, an unterschiedlichen positionen befinden.

Diese unschlüssig erscheinende Verwendung verschiedener an-sätze in einzelnen bereichen der Software wird unter betrachtung der Herkunft von Combustion nachvollziehbar. Das den paint-operatoren zugrunde liegende programm paint* war schließlich ursprünglich eine eigenständige applikation.90 Die Synchronisierung der verwendeten ansätze war also nicht erforderlich und wurde leider auch im rahmen der Verschmelzung von paint* und effect* nicht durchgeführt.

Die Daten des Nullobjekts Master Animation beziehen sich auf einen Composite operator. Der pivot-punkt des Nullobjekts befindet sich bei seiner erstellung in dessen Zentrum, dem Ursprung des lokal verwen-

89 Vgl. re:Flex 3 Users‘ manual, Usage of re:Flex motion morph90 Vgl. Davis (2004), S. 56

96 entwicklung des Workflow

deten Koordinatensystems. Wird das Nullobjekt anschließend mittels der Werte für seine X- und Y-position verschoben, so verschiebt sich auch sein pivot-punkt. Das Koordinatensystem entspricht in bezug auf die richtung seiner achsen dem intuitiv erwarteten. Die X-achse zeigt nach rechts, die Y-achse nach oben.

anders verhält es sich für paint-operatoren, denen die von den re:Flex operatoren verwendeten Splines entstammen. Der pivot-punkt dieser Splines liegt bei ihrer erstellung nicht im Ursprung, sondern im Zentrum einer gedachten, das Spline umgebenden box. Darüber hin-aus befindet sich der Ursprung des verwendeten Koordinatensystems nicht in der mitte der arbeitsfläche, sondern in ihrer linken oberen ecke. Die X-achse zeigt auch für paint-operatoren nach rechts, die Y-achse jedoch nach unten. analog zu den elementen in Composite-operatoren erfolgt bei Änderung der X- und Y-position eine Verschie-bung des objekts über seinen pivot-punkt.

Die pivot-punkte von paint objekten können mit Hilfe eigener posi-tionswerte auch getrennt vom objekt animiert werden. Der Umgang mit diesen attributen erschließt sich jedoch nicht intuitiv und muss daher erklärt werden. Die position des pivot-punkts eines paint- objekts wird, anders als erwartet, nicht über die Werte X-pivot und Y-pivot verändert, sondern immer und ausschließlich durch die X- und die Y-position des objekts festgelegt. Die Werte X-pivot und Y-pivot sagen aus, wo sich der pivot-punkt in bezug auf seine ursprüngliche position im Zentrum der bounding-box des objekts befindet.

Die einfachste art mit diesen Werten zu arbeiten ist es, den pivot-punkt zu verschieben, ohne dass das von ihm kontrollierte objekt mit-verschoben wird. Dazu müssen die X- und Y-Werte der gewünschten Verschiebung sowohl zum entsprechenden positionswert als auch zum entsprechenden pivotwert addiert werden.

Dieser Zusammenhang soll anhand eines einfachen beispiels verdeut-licht werden. Wird ein Spline auf die position 200/200 gesetzt, befin-det sich der pivot-punkt mit seinen Standardwerten 0/0 ebenfalls an dieser position. alle rotationen erfolgen um dieses Zentrum. Soll der pivot-punkt im Ursprung verbleiben, also -200 pixel entlang jeder achse verschoben werden, müssen die X- und Y-positionswerte des Splines auf 0/0 gesetzt werden. Die position kann also ausschließlich über die Werte X-pivot und Y-pivot beeinflusst werden. Soll das Spline nun wieder so platziert werden, als wäre es auf der position 200/200, bedeutet dies für den pivot-punkt im Ursprung, dass er –200 pixel in jeder richtung von seiner ursprünglichen position im Zentrum des

97entwicklung des Workflow

Splines entfernt ist. eine positionsangabe von 0/0 mit den pivotwerten -200/-200 bewirkt visuell zunächst das Gleiche wie die positionsangabe 200/200 mit den pivotwerten 0/0. Der Unterschied besteht allein in der position des pivot-punkts.

Umgekehrt betrachtet geben die beiden pivotwerte auskunft da-rüber, wo sich der mittelpunkt der bounding-box in bezug auf den pivot-punkt befindet. Um ein objekt entsprechend dieser umgekehrten Sichtweise, ausgehend vom pivot-punkt zu verschieben, müssen nur diese Werte verändert werden. Die Zahlwerte, auf denen die bewegung beruht, sind dabei jedoch zu negieren, da X-pivot und Y-pivot die ent-fernung in der der bewegung entgegengesetzten richtung bemessen.

Das Verständnis des einflusses der entsprechenden Werte ist für die zu entwickelnde Funktion von höchster bedeutung, da zur Synchronisie-rung der rotation von Splines und Footage beide den gleichen pivot-punkt verwenden müssen. Die im ersten Frame der morphs gezeichne-ten Splines müssen also so adaptiert werden, dass unter Wahrung ihrer visuellen position die Kombination ihrer positions- und pivotwerte so gewählt wird, dass sich die pivot-punkte der Splines mit dem des Null-objekts Master Animation im einklang befinden.

anschließend müssen alle bewegungen so umgerechnet werden, dass die unterschiedlichen positionen der Koordinatenursprünge so-wie die Differenzen in der ausrichtung der Y-achse ausgeglichen wer-den. Die folgende, abgedruckte Funktion GetVirtualParentData reali-siert die benötigte Synchronisierung.

function GetVirtualParentData(){GetInfo();XStartPos=arguments[0];YStartPos=arguments[1];StartFrame=arguments[2]*Framerate;EndFrame=arguments[3]*Framerate;Now=CB.GetCurrentFrame();

if (Now<StartFrame||Now>EndFrame) {XPos=0; YPos=0; Rot=0; XScale=0; YScale=0; XPivot=0; YPivot=0;

}

else {InitialSX=CB.GetChannelValue(MasterNull+“X Scale“, StartFrame );

◀ Java ScriptFunktion zur Synchroni-sierung von Nullobjekten mit paint-elementen

98 entwicklung des Workflow

InitialSY=CB.GetChannelValue(MasterNull+“Y Scale“, StartFrame );CurrentSX=CB.GetChannelValue(MasterNull+“X Scale“, Now);CurrentSY=CB.GetChannelValue(MasterNull+“Y Scale“, Now);XStart=CB.GetChannelValue(MasterNull+“X Position“, StartFrame);YStart=CB.GetChannelValue(MasterNull+“Y Position“, StartFrame);

XOffset=CB.GetChannelValue(MasterNull+“X Position“, Now )-XStart;YOffset=CB.GetChannelValue(MasterNull+“Y Position“, Now )-YStart;

XScale=(((CurrentSX-InitialSX)/(InitialSX/100))/100)+1; YScale=(((CurrentSY-InitialSY)/(InitialSY/100))/100)+1;

XPos=(XWidth/2+XStart)+(XOffset*(1/Aspect)); XPivot=(XWidth/2+XStart)-XStartPos;

YPos=(YWidth/2-YStart)-(YOffset);YPivot=(YWidth/2-YStart)-YStartPos;

Rot=(CB.GetChannelValue(MasterNull+“Z Rotation“, Now)-CB.GetChannelValue(MasterNull+“Z Rotation“, StartFrame ));

}}

als erster Schritt werden die rahmenbedingungen des projekts durch aufruf der Funktion GetInfo eingelesen. Dabei handelt es sich um den pfad zum Nullobjekt Master Animation, die Größe des Composite operators Your Frame +20% und die von diesem verwendete Frame-rate sowie dessen pixelseitenverhältnis. anschließend werden die der Funktion zu übergebenden attribute ausgelesen. Dabei handelt es sich um die initialen Werte der Kanäle für die X-position und Y-position sowie die temporalen rahmenbedingungen des morphs. es ist also be-kannt, an welcher position das zu synchronisierende Spline gezeichnet

99entwicklung des Workflow

wurde und in welchen Frames der morph beginnt und endet. Darüber hinaus wird der aktuelle Zeitpunkt bestimmt.

liegt der aktuelle Zeitpunkt außerhalb des morphs, soll für alle Werte Null zurückgegeben werden. im umgekehrten Fall werden sie benötigt und nach den im Folgenden erklärten methoden berechnet.

Vorbereitend werden dazu einige mehrmals benötigte Werte aus dem Nullobjekt Master Animation in Variablen abgelegt. Dies ist auf-grund der limitierung der Funktion auf 2 Kilobyte zwingend erforder-lich. Die abgelegten Werte sind die X- und Y-Skalierung des Nullobjekts zu beginn des morphs und im aktuellen Frame sowie dessen X- und Y-position zu beginn des morphs. aus letzterem werden nachfolgend offsets, also Veränderungswerte gebildet, die aussagen, wie weit das Nullobjekt seit beginn des morphs verschoben wurde. Die Werte, die den Zustand eines animationskanals des Nullobjekts Master Anima­tion im ersten Frame des morphs wiederspiegeln, sollen nachfolgend als initiale Werte bezeichnet werden.

Der berechnung der Skalierung liegt die annahme zugrunde, dass die Skalierung eines jeden Splines im ersten Frame des zugehörigen morphs 100 % beträgt. Zunächst wird für den jeweiligen Kanal des Nullobjekts die prozentuale Differenz zwischen aktueller und initialer Skalierung berechnet. Der so errechnete Wert kann entweder einen prozentualen anstieg oder eine prozentuale minderung der anfänglichen Skalierung des Splines von 100 % bedeuten. 100 % entsprechen dem Wert 1. am ende der berechnung wird deshalb 1 addiert, um vom ermittelten Än-derungswert auf den aktuellen Gesamtwert der Skalierung des Splines schließen zu können.

Zur Synchronisierung der position unter berücksichtigung der pivot-punkte muss weiter ausgeholt werden. Der Wert der X- bzw. Y-position bezieht sich, wie erläutert, zunächst auf die position des pivot-punkts. Der pivot-punkt des Nullobjekts wird im ersten Frame des Films im Ursprung des zugrundeliegenden Composite operators initialisiert.

Zunächst muss also die Differenz zwischen den Ursprüngen der Koordinatensysteme ausgeglichen werden, da den positionswerten des Splines sonst ein anderer bezugspunkt zugrunde läge. Der Ursprung im Koordinatensystem des Composite operators kann einfach auf das dem Spline zugrunde liegende Koordinatensystem übertragen werden. Dazu muss lediglich seine Höhe bzw. breite halbiert werden.

Zu dieser position wird der initiale Wert der X-position des Nullob-jekts addiert, um die position des pivot-punkts zu anfang des morphs zu bestimmen. anschließend wird die relative Änderung der position

100 entwicklung des Workflow

entsprechend des pixelseitenverhältnisses des Composite operators korrigiert und abschließend addiert. Die Korrektur ist nötig, um projekte mit anamorpher bildausgabe zu ermöglichen, da für paint- objekte das eventuell nicht quadratische pixelseitenverhältnis zugrun-deliegender Composite-operatoren unberücksichtig bleibt und somit in solchen Fällen eine positionsänderung um den gleichen nume-rischen Wert zu visuell unterschiedlichen ergebnissen führt.

Nachdem der pivot-punkt des Splines nun exakt über dem des Null-objekts liegt, muss das Spline mittels der Werte für X-und Y-pivot an seine ausgangsposition zurückgebracht werden. Diese Werte bleiben über den gesamten Zeitraum des morphs konstant, da sich nach der initialen anpassung beide pivot-punkte synchron bewegen und sich diese bewegung auch auf das Spline niederschlägt.

Um die bei der Verschiebung des pivot-punkts bewirkte positions-änderung auszugleichen, muss zunächst der konstante teil der berech-nung des Wertes für die X-position auch für die pivot-Werte übernom-men werden. Damit würde das Spline wieder im Ursprung dargestellt werden. Um die initiale position des Splines wiederherzustellen, muss diese vom für den Ursprung ermittelten Wert abgezogen werden.

bei der berechnung der Y-Werte muss als besonderheit beachtet werden, dass die Y-achsen der Koordinatensysteme gegenläufig sind. Daher wird der initiale Y-Wert von der position des Ursprungs abgezo-gen. Das gleiche gilt für den Veränderungswert. Dieser muss darüber hinaus anders als der X-offset nicht korrigiert werden, da die pixel-höhe bei allen pixelseitenverhältnissen gleich ist.

Nach der korrekten positionierung der pivot-punkte ist die Synchroni-sierung der rotation einfach. es muss nur die Differenz aus aktuellem und initialem rotationswert im Nullobjekt berechnet werden, da das Spline mit einem rotationswert von 0° angelegt wurde.

Die Synchronisierung von Splines mit initialen rotationswerten ist für die beschriebene arbeitsweise nicht erforderlich. Dennoch soll für weiterführende projekte anhand der in Bild 51 abgebildeten Zeich-nung das problem beschrieben und ein ansatz zu seiner lösung gege-ben werden.

Der Zeichnung liegt die annahme zugrunde, es wäre ein Spline ge-geben, dessen pivot-punkt p1 ist und das um alpha Grad rotiert wurde. Zur Synchronisierung des Splines mit dem Footage sei es erforderlich, den pivot-punkt nach p2 zu versetzten. Nach anwendung der initialen rotation findet sich nachfolgend, aufgrund der verschiedenen Dreh-punkte, das Zentrum der bounding-box des Splines nicht wie zuvor in p1, sondern in p3 wieder. mit geeigneten berechnungen auf basis der geometrischen rahmenbedingungen und der gegebenen Werte p1,

101entwicklung des Workflow

p2 und alpha können die Koordinaten für p3 und somit auch dessen abstand zu p1 berechnet werden. Um die durch die initiale rotation ausgelöste Verschiebung auszugleichen, müssten die Werte X- und Y-pivot um die ermittelten Verschiebungswerte korrigiert werden.

Die vorgestellte Funktion muss, um die Kontrolle über die Splines über-nehmen zu können, wie in Bild 52 gezeigt, in jedem animationskanal des Splines gefolgt vom entsprechenden Wert aufgerufen werden.

Die Funktionsaufrufe benötigen dabei vier argumente, nämlich die X- und Y-position auf dem das Spline gezeichnet wurde sowie den an-fangs- und endzeitpunkt des morphs in Sekunden.

Unter der annahme, dass ein einzelner morph ca. 40 Splines benö-tigt, müssen für diesen bereits 280 Funktionsaufrufe eingefügt werden. Für einen Film mit 20 Übergängen wären das also mehr als 5.000 Funk-tionsaufrufe. in Combustion würde das einfügen der aufrufe mehre-re tage in anspruch nehmen. Dies würde den vorgestellten Workflow unwirtschaftlich und damit bedeutungslos machen. aus diesem Grund soll im nachfolgenden Kapitel eine lösung für dieses problem gefunden werden. Dazu wird ein externes programm als Hilfsmittel entwickelt und vorgestellt, das diese für den menschen so zeitraubende tätigkeit in wenigen Sekunden zu erledigen vermag.

◀ Bild 51ansatz zur Übertragung von initialen rotationswerten

◀ Bild 52aufruf der Funktion GetVirtualparentData in den animationskanälen eines Splines

102 entwicklung des Workflow

6.5 Zusammenfassung

abschließend sollen die wesentlichen Schritte des Workflow noch ein-mal zusammenfassend betrachtet werden. Nach Herstellung und aus-wahl des Footage wird der bereitgestellte Workspace geöffnet und auf die Gegebenheiten des projekts angepasst.

Das Footage wird in den Composite operator Your Frame +20% im-portiert und hierarchisch so angeordnet, dass das erste bild oben liegt. Nachdem allen Footage-elementen das Nullobjekt Master Animation als parent zugewiesen wurde, das zu diesem Zeitpunkt zum Festlegen des sichtbaren ausschnitts im Viewport dient, wird das Footage räum-lich so angeordnet, dass alle ineinander zu morphenden attraktionen so exakt wie möglich übereinander liegen. Zur weiteren Vorbereitung der morphs wird jeder Footage layer über die Nesting options in ei-nen neuen Composite operator eingebettet.

Die neu erstellten Composite-operatoren werden in der timeline so angepasst, dass alle materialien nur in den Zeiträumen sichtbar sind, in denen sie verwendet werden. in jeden dieser operatoren wird ein Slave Animation Nullobjekt kopiert.

Zu beginn der animation der virtuellen Kamera wird durch adap-tion des Nullobjekts Master Animation der Startausschnitt festgelegt. anschließend wird im animationsmodus für das jeweils letzte Frame eines bildes grob der gewünschte ausschnitt gewählt. Nach Verlas-sen des animationsmodus werden die zuvor erstellten Keyframes als Grundlage für die Feinarbeit an den animationskurven so lange bear-beitet, bis die zu erstellende Kamerafahrt gefällt. besondere aufmerk-samkeit ist dabei darauf zu legen, dass jedes bild über den gesamten Zeitraum seiner Verwendung den bildausschnitt komplett ausfüllt und insbesondere zu den für die morphs vorgesehen Zeiten keine unbe-deckten Flächen entstehen.

Für jeden geplanten morph wird ein re:Flex motion morph opertor in den layer Your Frame +20% eingefügt. Diese operatoren werden ebenfalls in der timeline auf den Zeitraum begrenzt, in dem der je-weilige morph stattfinden soll. im ersten Frame eines jeden morphs werden abwechselnd die Splines der Quell- und Zielgeometrie gezeich-net. als Vorschau für den zu erstellenden morph werden ebenfalls in diesem Frame die Werte Global Color und Global Shape variiert.

abschließend müssen die zur Synchronisierung der erstellten Splines benötigten Funktionsaufrufe mit Hilfe des im folgendenden Kapitel vorgestellten programms eingefügt werden. Das projekt ist an-schließend soweit angelegt, dass es erstmals ausgerendert werden kann. es empfiehlt sich, nach jedem wesentlichen arbeitsschritt eine Version des Workspace als backup abzulegen.

Parsing von CWS-Dateien mittels externer Programme

aufbau des CWS-Formats

möglichkeiten der automatischen bearbeitung

implementierung der Funktionalität als Web-interface

106 parsing von CWS-Dateien mittels externer programme

7 Parsing von CWS-Dateien mittels externer Programme

Da die bearbeitung mehrer Kanäle mit einem Funktionsaufruf auf-grund der zuvor dargelegten limitierungen der programmierung in Combustion nicht möglich ist, stellt sich die Frage nach der Verhältnis-mäßigkeit des aufwands, der zur implementierung der Funktionsauf-rufe zur Synchronisierung der morphing-Splines mit den animations-daten notwendig ist.

Jedes Spline benötigt sieben Funktionsaufrufe. Dabei handelt es sich um die aufrufe zum Festlegen der position des Splines, seiner Skalie-rung und rotation sowie der position seines pivot-punkts. ein morph mit 20 Spline-paaren benötigt so bereits 280 Funktionsaufrufe, eine fertige Sequenz kann also durchaus einige tausend Funktionsaufrufe erfordern.

Für einen menschen könnte das einfügen der Funktionsaufrufe also mehrere arbeitstage in anspruch nehmen. Damit stellt sich die Frage nach der automatisierbarkeit dieser aufgabe, die im folgenden Kapitel betrachtet werden soll.

7.1 Aufbau des CWS-Formats

Combustion Workspaces werden in Dateien mit der Dateiendung .CWS gespeichert. Um zu klären, ob ein automatisiertes einfügen von Funktionsaufrufen in eine Combustion Workspace Datei mit Hilfe ex-terner Hilfsmittel möglich ist, muss zunächst der aufbau des CWS-Formats betrachtet werden. Da es keine öffentliche Dokumentation über den CWS-Standard gibt, bietet sich die induktive methode zum rückschluss von einzelnen CWS-Dateien auf den Standard an.

Das Öffnen einer beliebigen CWS-Datei in einem externen editor zeigt, dass es sich bei Combustion Workspaces um strukturierte text-dateien handelt. Die durchgeführte analyse legt keinen anspruch auf Vollständigkeit, sondern beschränkt sich vielmehr auf die lösung des problems: „Wie kann das einfügen von Funktionsaufrufen zur Syn-chronisierung von morphing-Splines mit den animationsdaten auto-matisiert werden?“

im oberen Segment einer CWS-Datei werden alle im Workspace vorhandenen operatoren initialisiert. Die initialisierung erfolgt in einer Zeile nach dem muster NewOperator 0x583a0031 0xaa62e66e 42 // AE RE:Flex Motion Morph. Die bei-den achtstelligen von 0x angeführten Hexadezimalwerte geben an, um was für einen operator es sich handelt. Darauf folgt die identi-

107parsing von CWS-Dateien mittels externer programme

fikationsnummer des operators und als optionaler Kommentar die operatorbezeichnung.

im folgenden Segment der CWS-Datei werden die so initialisierten operatoren mit inhalten gefüllt. Diese inhalte sind sämtliche einstel-lungen des betreffenden operators, eventuelle Keyframes, expressions usw.

7.2 Möglichkeiten der automatischen Bearbeitung

Um eine solche Datei automatisiert bearbeiten zu können, muss zu-nächst ihre Struktur genau analysiert werden, um daraus ein algorith-misches Vorgehen ableiten zu können. aufgrund ihrer Größe bietet es sich an, eine CWS-Datei zeilenweise zu analysieren. Grundannahme kann sein, dass gelesene Zeilen unverändert oder modifiziert in eine neue Datei übernommen bzw. ausgelassen werden können und da-rüber hinaus jederzeit eine neue Zeile an das ende der Datei angehängt werden kann.

Da es bei diesem Vorgehen nicht möglich ist, Zeilen an vorherigen positionen einzufügen, bietet sich ein Verfahren in zwei phasen an. Dies liegt im konkreten Fall darin begründet, dass zum erzeugen der einzufügenden Funktionsaufrufe häufig informationen benötigt wer-den, die in der CWS-Datei erst nach der position ausgelesen werden können, an welcher der Funktionsaufruf eingefügt werden muss.

Der erste Durchgang des ansatzes soll dazu dienen, die Datei zu analysieren und die später benötigten Werte zwischenzuspeichern. Dabei kann zunächst festgestellt werden, wie viele motion-morph-operatoren existieren und welche identifikationsnummern diesen zugeordnet sind. im anschluss soll die Workspace-Datei sequentiell abgearbeitet werden.

Die Spezifikationen für jeden operator beginnen mit einer Zei-le nach dem muster SetCurrentOperator 42. an dieser Stelle kann leicht überprüft werden, ob der nachfolgend behandelte opera-tor zu den zu analysierenden motion-morph-operatoren gehört oder nicht. Wenn die identifikationsnummer des operators in der zuvor er-stellten liste enthalten ist, muss der folgende block analysiert werden. ansonsten wird die analyse beim nächsten Vorkommen von Set-CurrentOperator fortgesetzt.

in einem relevanten, also zu einem motion morph operator gehö-rigen block, kann zunächst der Name des operators festgestellt werden, indem die der aktivierung folgende Zeile nach dem muster SetOpe-

108 parsing von CWS-Dateien mittels externer programme

ratorName „AE RE:Flex Motion Morph 5“ ausgewertet wird. anschließend muss ermittelt werden, welche Splines zum aktuell betrachteten motion morph operator gehören. Für jedes dieser Splines müssen die Werte der X- und Y-position, der rotation, der X- und Y-position des pivot-punkts des Splines sowie die seiner X- und Y- Ska-lierung festgestellt und gespeichert werden.

Nach der Feststellung des Namens werden die folgenden Zeilen auf das Vorkommen der Zeichenfolge /Transform/X Position überprüft. Die erste Zeile in der diese Zeichenkette gefunden wird, ent-spricht dem muster ResetChannel „Polygon/Transform/X Position“ 614.5 on 0 0. Daraus lässt sich der Name des ers-ten Splines Polygon und seine X-position 614.5 ablesen. Die sechs nachfolgenden Zeilen enthalten die Daten für die übrigen benötigten Werte des Splines.

Wenn auf eine Zeile mit ResetChannel eine korrespondierende Zeile zum Setzten eines expression nach dem muster SetChannel-Expression „Polygon/Transform/X Position“ [...] folgt, muss dies während der analysephase vermerkt werden, um in der zweiten phase der bearbeitung kein weiteres expression für den entsprechenden Kanal einzufügen. Wenn auf das Spline vor dem er-neuten Vorkommen von SetCurrentOperator erneut eine Zei-le mit der Zeichenkette /Transform/X Position folgt, müssen auch für dieses weitere Spline die benötigten Werte abgelegt werden. auf diese Weise können für jeden der in der CWS-Datei enthaltenen motion-morph-operatoren, deren Name und alle zugehörigen Splines mit ihren Werten festgestellt werden.

Nach der analysephase muss der benutzer aufgefordert werden, die für die erstellung der Funktionsaufrufe fehlenden zeitlichen Daten zu den einzelnen operatoren einzugeben. Dabei handelt es sich um den Start- und endzeitpunkt des morphs in Sekunden. alle Splines müssen so gezeichnet sein, dass sie zum Startzeitpunkt des morphs über den von ihnen kontrollierten pixel-informationen liegen. Nur so können sie über die Dauer des morphs von der Funktion GetVirtualparentData zum bildmaterial synchron gehalten werden.

in der zweiten phase der automatisierten bearbeitung können dann auf basis der gesammelten Werte die entsprechenden Funktionsaufrufe eingefügt werden. Dazu soll auf basis der analysierten CWS-Datei eine neue erzeugt werden. Die CWS-Datei wird wiederum zeilenweise abge-arbeitet. Zeilen, für die kein spezielles Vorgehen erkannt wird, werden eins zu eins in die neue Datei übernommen. Für jedes Spline kann in diesem Durchgang anhand der zuvor ermittelten Daten der benötigte Funktionsaufruf nach dem muster GetVirtualParentData(X Position, Y Position, Startzeitpunkt, Endzeit-

109parsing von CWS-Dateien mittels externer programme

punkt); erzeugt werden. Dieser Funktionsaufruf muss dann, sofern nicht bereits ein Funktionsaufruf besteht, nach der Zeile ResetChan-nel „Polygon/Transform/X Position“ 614.5 on 0 0 als neue Zeile nach dem muster SetChannelExpression „Poly-gon/Transform/X Position“ on GetVirtualParent-Data(614.5, 453.89, 35, 36); XPos; eingefügt werden. Das Gleiche gilt für die sechs nachfolgenden Zeilen, die die übrigen Werte des Splines enthalten. Die dort verwendeten aufrufe müssen jedoch anstelle von XPos; den jeweils zum Wert korrespondieren-den aufruf YPos;, Rot;, XPivot;, YPivot;, XScale; bzw. YScale; enthalten. es müssen also für jedes Spline sieben Zeilen mit den entsprechenden Funktionsaufrufen in die CWS-Datei eingefügt werden.

7.3 Implementierung der Funktionalität als Web-Interface

Das nach der analyse des CWS-Formats erdachte algorithmische Vor-gehen kann prinzipiell mit jeder programmiersprache realisiert wer-den. Zur Umsetzung wurde die Skriptspache pHp gewählt. Für die-se Wahl sprechen zwei Überlegungen. Zum einen muss ein benutzer dieses Hilfsmittels keine applikation herunterladen und lokal installie-ren bzw. ausführen, sondern kann seine CWS-Datei bequem über ein Web interface, wie in Bild 53 gezeigt, spezifizieren und nach der ana-lyse die benötigten angaben machen, um daraufhin die bearbeitete CWS-Datei zum Download zu erhalten. Zum anderen wird das Know-how der bearbeitung der CWS-Datei nicht weitergegeben.

◀ Bild 53Web-interface nach dem Hochladen der CWS-Datei

110 parsing von CWS-Dateien mittels externer programme

eine rückwärtsentwicklung von pHp-Skripten ist für den benutzer nicht möglich, da er nicht auf deren Quelltext zurückgreifen kann, da die berechnungen serverseitig erfolgen und nur ihr ergebnis zu-rückgegeben wird.91 Der benutzer dieses tools muss darüber hinaus zur erneuten benutzung stets auf die Website zurückkehren, die diese Funktionalität anbietet. Die implementierung als Web-interface bie-tet demnach dem benutzer eine unkomplizierte anwendung und dem autor der Software die Sicherheit, seinen beitrag zum entsprechenden projekt kommunizieren zu können.

Der kommentierte Quellcode des pHp-programms zum parsen von CWS-Dateien in Hinblick auf das gesteckte Ziel befindet sich im di-gitalen anhang der arbeit. er folgt dem im vorherigen abschnitt spezifizierten algorithmischen Vorgehen und soll an dieser Stelle nicht zeilenweise besprochen werden. es sollen jedoch die zwei zu seiner entwicklung wichtigsten Fragestellungen behandelt werden. Zunächst muss eine sinnvolle Datenstruktur zum ablegen der gewonnenen informationen entwickelt werden. anschließend verbleibt die Fra-ge: „Wie kann ein Computerprogramm die benötigten Werte an den entsprechenden positionen einer strukturierte Datei erkennen und auswerten?“

7.3.1 Datenstruktur zum ablegen der analysedaten

in anbetracht der menge unterschiedlicher Werte muss eine geeignete Datenstruktur entwickelt werden, die es später ermöglicht, über eine leicht verständliche adressierung auf die benötigten Werte zurückzu-greifen. Die Daten für den CWS parser werden als multidimensionales array abgelegt. im Gegensatz zu den arrays in vielen traditionellen programmiersprachen können array-Felder in pHp, anstelle von nur numerischen indizes, auch deskriptive Namen in Form von Zeichen-ketten erhalten. Dieser Vorteil wird zum anlegen der Datenstruktur genutzt. Die für das array $OPERATORS genutzte Struktur sieht wie folgt aus:

$OPERATORS[Operatornummer]

nr => 36name => AE RE:Flex Motion Morph 1visited => 1

91 Vgl. peyton (2005), S. 12

Vgl. Digitaler anhang, CD:\CWS parser\cws.php

array $operatorS ▶Datenstruktur für die

analysedaten

111parsing von CWS-Dateien mittels externer programme

start => 5ziel => 6[Polygons]

[Polygon (1)][initial]

xpos => 885.915ypos => 506.770

[xpos]value => 0ignore => 1

[ypos][rot][xpiv][ypiv][xscal][yscal]

[Polygon (2)]...

Für die elemente der ersten ebene wird die aus dem CWS ausgelesene operatornummer als bezeichnung genutzt. Die unter dieser bezeich-nung abgelegten elemente sind wiederum arrays. Zu jedem operator können nun die Werte für Nummer, Name, Startzeitpunkt und Ziel-zeitpunkt des operators abgelegt sowie festgehalten werden, ob der operator bereits im CWS gefunden und analysiert wurde.

Darüber hinaus enthält das array eines operators ein weiteres array mit der bezeichnung Polygons, das die Werte aller zugehö-riger Splines aufnimmt. Zur bezeichnung der darunter befindlichen arrays werden die tatsächlichen Namen der Splines verwendet.

Zwei Fälle können auftreten: Wenn das Spline in seinen Kanälen bereits ein expression enthält, sind die positionswerte der eigentlichen Kanäle mitunter auf Null gesetzt und die Werte müssen aus dem Funk-tionsaufruf ausgelesen werden. So gewonnene Daten werden im array initial abgelegt. Über dieses hinaus gibt es die arrays xpos, ypos, rot, xpiv, ypiv, xscal und yscal, die jeweils die Werte value und ignore enthalten. value spezifiziert den Wert des betreffenden Kanals in der CWS-Datei, ignore ist 1, wenn bereits ein expression für diesen Kanal besteht und er entsprechend beim Hinzufügen neuer expressions ignoriert werden soll. Diese information wird auch für das entfernen von expressions genutzt, wenn diese option vom benutzter des interface gewählt wurde.

112 parsing von CWS-Dateien mittels externer programme

mit der vorgestellten Struktur kann beispielsweise über den auf-ruf $OPERATORS[36][’Polygons’][’Polygon (1)’] [’xpos’][’value’] auf die X-position des ersten polygons des operators AE RE:Flex Motion Morph 1 mit der identifika-tionsnummer 36 zugegriffen werden.

7.3.2 reguläre ausdrücke

Die Frage nach Werkzeugen zur erkennung bestimmter positionen in strukturierten Dateien wird durch die im poSiX 1003.2-Standard de-finierten regulären ausdrücke beantwortet. „reguläre ausdrücke sind ein mächtiges, flexibles und effizientes mittel, um texte zu bearbeiten. reguläre ausdrücke im engeren Sinne sind eine generelle Notation zur beschreibung von textmustern, beinahe wie eine kleine programmier-sprache zum prüfen und zum manipulieren von texten. mit den zu-sätzlichen mitteln eines bestimmten programmierwerkzeugs können reguläre ausdrücke benutzt werden, um alle arten von text zu erwei-tern, zu reduzieren und in jeder art zu misshandeln“92

Die Verwendung von regulären ausdrücken in pHp soll anhand der Feststellung des Namens eines operators aus der Zeile SetOpe-ratorName „AE RE:Flex Motion Morph 5“ erläutert wer-den. Dazu wird die Funktion preg_match(string pattern, string text [, array matches]) verwendet. „Sie wertet das argument pattern als einen regulären ausdruck aus und sucht nach Übereinstimmungen im argument text. Wenn Sie das optio-nale argument matches setzten, fügt die Funktion jedes gefundene muster dem array hinzu. TRUE wird zurückgegeben, wenn wenigstens eine Übereinstimmung vorhanden ist, andernfalls FALSE.“93

Der zugehörige aufruf für den zu betrachtenden Fall in pHp ist preg_match(‚=SetOperatorName „(.*)“=‘,$buffer,$name);. Das in $name abgelegte ergebnis kann anschließend in die im vorangegangenen abschnitt vorgestellte Datenstruktur nach dem muster $OPERATOREN[$currentOp][‚name‘]=$name[1]; eingefügt werden.

Um die verwendeten regulären ausdrücke zu erklären, soll der dem obigen Funktionsaufruf zugrundeliegende ausdruck =SetO-peratorName „(.*)“= betrachtet werden. Dieser perl-kompati-ble reguläre ausdruck verwendet = als begrenzungszeichen, d.h., der ausdruck wird von solchen Zeichen umschlossen. Der punkt in (.*)

92 Friedl (2004), S. 193 atkinson (2001), S. 262

113parsing von CWS-Dateien mittels externer programme

steht für ein beliebiges Zeichen, der Stern für eine beliebige anzahl. Die Klammern legen fest, dass dies ein einzelner teil ist, der gefun-den und zurückgegeben werden soll. alle angrenzenden Zeichen wer-den als separate teile des arrays zurückgegeben, die jedoch aufgrund ihrer statischen Natur für jeden Fund konstant bleiben. Um auf den durch (.*) definierten gewünschten Namen zuzugreifen, muss also auf $name[1] zugegriffen werden, da $name[0] für jeden Fund die Zeichenkette SetOperatorName „ enthält.

Der reguläre ausdruck =SetOperatorName „(.*)“= be-deutet umgangssprachlich folgendes: Wenn eine Stelle im text exis-tiert, an der ein element beliebiger länge von den Zeichenketten Set-OperatorName „ und “ umgeben ist, war die Suche erfolgreich und die elemente des ausdrucks sollen zurückgegeben werden. auf diese Weise können durch Klammerung beliebig viele Kriterien auf einmal ausgewertet werden.

Ausblick und Verbesserungspotenziale

116 ausblick und Verbesserungspotenziale

8 Ausblick und Verbesserungspotenziale in diesem Kapitel sollen einige Verbesserungsvorschläge für die Wei-terentwicklung von Combustion und die der re:Flex plugins gemacht werden. Der Schwerpunkt dieser Überlegungen soll darauf liegen, wie die im rahmen des entwickelten Workflow durch externe Hilfsmittel überwundenen probleme innerhalb von Combustion gelöst werden könnten und wie die Funktionalität des Scripting in Combustion vor-angetrieben werden kann.

einen wichtigen ansatzpunkt für erweiterungen der generellen Funk-tionalität von Combustion bietet die programmierung von expressions: in diesem bereich liegt großes potenzial für Verbesserungen, da aktuell in Combustion keine echte Scripting-Umgebung geboten wird.

Nicht alle Vorschläge fordern das Umschwenken auf eine vollwertige Scripting-Umgebung. eine einfache Verbesserung des bestehenden Systems wäre die Unterstützung rekursiver Funktionen für expres-sions. Da nicht vorausgesetzt werden kann, dass der überwiegende teil der anwender von autodesk Combustion mit dem Konzept der re-kursion vertraut ist, soll dies am beispiel erklärt werden.

rekursion kommt vom lateinischen terminus recurrere, was zu-rücklaufen bedeutet. 94 eine rekursive Funktion ruft sich selbst auf und ist dabei auch auf sich selbst abgestützt. „Zunächst erscheint dieser Selbstbezug paradox: Wenn eine prozedur sich selbst anwendet, müss-te auf den ersten blick ein Knoten entstehen, der sich nie auflöst.“95

als beispiel der Funktionsweise rekursiver berechnungen trotz die-ser intuitiven einschätzung soll die berechnung der Fakultät einer Zahl n betrachtet werden. n Fakultät (n!) kann als 1 definiert werden, wenn die bedingung n=1 erfüllt ist; 1! ist also gleich 1. Für alle übrigen Fäl-le kann n! als n*(n-1)! definiert werden. Diese berechnungsvorschrift führt bei berechnung von 3! zu einem Vorgehen in mehreren Schrit-ten. Zunächst kann 3! auch als 3*(3-1)! betrachtet werden. Nach der gleichen berechnungsvorschrift kann das Zwischenergebnis 3*2! wei-ter zu 3*2*(2-1)! aufgelöst werden. (2-1)! ist gleich 1! und somit per Definition gleich 1. Das resultat 3*2*1 ist berechenbar und kann nun zu 6 ausgewertet werden.96

94 Vgl. Klaeren, ... (2001), S. 37 ff.95 Klaeren, ... (2001), S. 37 f.96 Vgl. Klaeren, ... (2001), S. 37 ff.

117ausblick und Verbesserungspotenziale

Der Schlüssel zur erfolgreichen anwendung von rekursion ist die Wahl eines geeigneten abbruchkriteriums der berechnung. im oben betrachteten Fall ist das die bedingung 1!=1. Durch diese ist gewähr-leistet, dass die Fakultät jeder endlichen Zahl in einer endlichen an-zahl von Schritten berechnet werden kann.

rekursion würde in Combustion beispielsweise die möglichkeiten der zur animation von objekten verwendeten expressions drastisch erweitern. So könnte z.b. eine einfache lineare animation per expres-sion dadurch gesetzt werden, dass die X-position eines objekts für ein anfangsframe definiert wird. in allen folgenden Frames könnte dann gelten, dass die aktuelle X-position gleich der X-position im vorherigen Frame plus einen konstanten Faktor sein soll. Dies ließe sich leicht durch ein expression mit einer if- und einer zugehörigen else- anwei-sung implementieren.

eine weitere, einfacher umzusetzende Forderung ist die nach dem aufheben der Größenbegrenzung für Skripte auf zwei Kilobyte. Diese begrenzung ist sicher nicht aus einem problem der machbarkeit ent-standen, sondern aus der annahme, dass zwei Kilobyte für jedes in Combustion geschriebene expression genug sind. Für diese interpre-tation spricht zum einen, dass in der Vorgängerversion von Combus-tion lediglich ein Kilobyte große expressions möglich waren und zum anderen die vorgenommenen betrachtungen am CWS-Dateiformat. aus diesen ist ersichtlich, dass Code-Segmente nicht in blöcken fester Größe abgelegt werden, sondern von Seiten des Dateiformats beliebig groß sein könnten, da sie klar durch die ihnen vorstehenden und nach-folgenden Zeilen isoliert werden können.

Das aufteilen von Funktionen auf verschiedene Kanäle zur Umge-hung dieser einschränkung ist zwar kein problem, führt jedoch zur Unübersichtlichkeit der Quellcodes. Deshalb musste für die in der Capsule Plansequenz Funktionen bereitgestellte Funktion GetVirtual­ParentData auf eine Kommentierung der Funktionsweise im Quelltext verzichtet werden.

Zur beseitigung der größten einschränkung bei der programmie-rung mit Combustion ist ein größerer Schritt in richtung einer echten Scripting-Umgebung notwendig. Die implementierung einer mög-lichkeit zum Schreiben in beliebige Kanäle bringt in der bestehenden Struktur bereits als Gedankenexperiment Schwierigkeiten mit sich. Das problem liegt in der dann mittels Schleifen gegebenen möglich-keit, verschiedenste Kanäle sequenziell mit nur einem Funktionsaufruf mit neuen Werten auszustatten zu können, begründet. Die betroffenen Kanäle könnten selbst andere expressions oder Keyframes enthalten, die so eventuell überschrieben würden. Festgelegte prioritäten für

118 ausblick und Verbesserungspotenziale

abarbeitung der unterschiedlichen anweisungen wären keine hinrei-chend geeignete lösung, da sie eine zu große Quelle für Fehler und Unübersichtlichkeiten wären.

Die Forderung des Schreibens in multiple Kanäle mit nur einem Funktionsaufruf erfordert also ein prinzipielles Umdenken bei der im-plementierung der programmiermöglichkeiten in Combustion.

ein denkbarer ansatz dazu ist die entkopplung von Skripten und Kanälen, welche die eigentlichen Werte enthalten. So würde nicht län-ger die Gefahr des Überschreibens anderer expressions bestehen. Da-rüber hinaus könnte eine einfache prioritätenregel für den Umgang mit Keyframe-animationen nach folgendem muster gelten: Wird ein Kanal durch eine Keyframe-animation kontrolliert, sind anwei-sungen zur Veränderung des Wertes dieses Kanals mittels expressions unwirksam. interessant wäre es außerdem, eine spezielle Syntax für expressions zu schaffen, um berechnete Werte auf die Werte per Key-frame-animation definierter Kanäle addieren zu können. So könnten beispielsweise ein zufallsabhängiges ruckeln während der bewegung eines objekts realisiert werden. Dies würde die möglichkeiten der ak-tuell nur für layer von Composites anwendbaren Vorgehensweise des parenting erweitern.97

Unter betrachtung der möglichkeiten von Java Script Skripten für Web-Seiten können diese Überlegungen noch in richtung der Über-tragbarkeit des nachträglichen bearbeitens des Document object mo-dels ausgeweitet werden. im bereich der Java Script applikationen im Web gilt, dass über die Funktionen zur modifizierung des Document object models sowohl bestehende objekte aus einer Web-Seite ge-löscht oder modifiziert, als auch neue hinzugefügt werden können. Die möglichkeit, so zur laufzeit operatoren, layer, paint-objekte oder so-gar expressions in Combustion zu erzeugen sowie diese beeinflussen und entfernen zu können, würde die angesprochene echte Scripting-Umgebung komplettieren.

eine mit wesentlich weniger entwicklungsaufwand zu realisierende Verbesserung im bezug auf die in dieser arbeit verwendeten arbeits-abläufe betrifft die plugins von re:Vision effects. Die von diesen ver-wendeten Splines sind dem Host-programm entnommen. im Fall von Combustion impliziert dies die analogie mit den in paint-operatoren zur Verfügung stehenden Splines.

bei der arbeit mit paint-operatoren wird das menü object zugäng-lich, über das einzelne paint-objekte zu Gruppen zusammengefasst werden können. eine solche Gruppe verfügt über eigene einstellungen

97 Vgl. Kapitel 5.2

119ausblick und Verbesserungspotenziale

für ihre transformation und rotation, den pivot-punkt der Gruppe und ähnliches.

Die Übertragung des Konzepts von Gruppen auf die re:Flex ope-ratoren könnte die arbeit signifikant erleichtern. Dazu müsste dem benutzer nicht einmal notwendigerweise die möglichkeit gegeben werden, eigene Gruppen zu definieren. Drei vordefinierte Gruppen nach dem muster All Splines, From Geometry und To Geometry wären ausreichend. So müsste nicht länger jedes einzelne Spline auf Verän-derungen in position, rotation und Skalierung des durch dieses kon-trollierten bildmaterials angepasst werden, sondern es stünden einfach verwendbare, globaler gefasste Kanäle zur Verfügung. insbesondere die probleme bei der adaption der Splines bei rotation des zugrundelie-genden bildmaterials um einen anderen punkt als den pivot-punkt des Splines würden drastisch minimiert. es müsste nun lediglich noch der pivot-punkt der Gruppe mit dem Zentrum der rotation des bildmate-rials in einklang gebracht werden, anstelle der pivot-punkte sämtlicher einzelsplines.

Sowohl autodesk Combustion als auch die re:Flex plugins verfügen mit den genannten bereichen über ansatzpunkte zur Verbesserung in zukünftigen Versionen. bereits heute lassen sich jedoch viele aufga-ben, die auf den ersten blick von den zuvor genannten erweiterungen der programmiermöglichkeiten oder anderen abhängig scheinen, mit den in dieser arbeit dargelegten Konzepten zur bearbeitung von Com-bustion-Workspace-Dateien mit aufgabenspezifischen, externen Hilfs-mitteln realisieren.

ein beispiel dafür sind alle aufgaben, die das Schreiben in beliebige Kanäle erfordern. Sie können über die implementierung einer Funkt-ion realisiert werden, deren anwendung sich am besten mit dem prin-zip von Sender und empfänger beschreiben lässt. abstrahiert muss eine solche Funktion über ein argument verfügen, das ihr mitteilt, von wo aus sie aufgerufen wird, um ein spezifisches ergebnis zurückzuge-ben. Die Funktion fungiert zunächst als Sender der benötigten Werte. Nun muss allen empfängern, sprich jedem Kanal, der einen so gene-rierten Wert erhalten soll, ein expression mit einem entsprechenden aufruf der Funktion hinzugefügt werden. in komplexen Fällen kann es lohnenswert sein, für das einfügen der expressions zum empfang der gewünschten Werte ein externes programm zu schreiben.

als weiteres beispiel für ein externes programm als innovativen lösungsansatz einer aktuellen limitierung soll die Überwindung der fehlenden möglichkeit zum importieren von Keyframes mittels Xml aus animationsprogrammen umrissen werden. Die gewünschten Key-frames könnten dabei z.b. in einen primitiven Workspace importiert

120 ausblick und Verbesserungspotenziale

werden, der nur ein minimales Composite aus einem Solid und einem Nullobjekt enthält, in dessen Kanäle die Keyframes eingefügt würden. Der resultierende Workspace könnte anschließend in ein beliebiges projekt importiert werden, um das enthaltene Nullobjekt an die be-nötigte Stelle zu kopieren oder die zu kontrollierenden objekte mittels expressions mit diesem zu verknüpfen.

Anhang

Quellen

ehrenwörtliche erklärung

Digitaler anhang

124 Quellen

Quellen

Bücher

Atkinson, leon: Core-pHp4-programmierung / münchen : markt-und-technik-Verlag, 2001. – iSbN: 3-8272-5809-X

Autodesk: Combustion 4 Fundamentals Courseware. / burlington : Focal press, 2005. – iSbN: 0-240-80785-5

Bender, michael; brill, manfred: Computergrafik: ein anwendungs-orientiertes lehrbuch / münchen : Hanser, 2003. – iSbN: 3-446-22150-6

Biebeler, ralf: bildgestaltung - Schnitt - musikauswahl : das praxis-buch für bessere Filme / Gau-Heppenheim : reil, 2006. – iSbN: 3-937708-06-5

Brinkmann, ron: The art and Science of Digital Compositing / San Diego : academic press 1999. – iSbN: 0-12-133960-2

Davis, Gary m.: The Focal easy guide to Discreet Combustion 3. / burlington : Focal press, 2004. – iSbN: 0-240-51955-8

Friedl, Jeffrey e. F.: reguläre ausdrücke / beijing : o’reilly, 2004. – iSbN: 3-89721-349-4

Klaeren, Herbert; Sperber, michael: Vom problem zum programm. architektur und bedeutung von Computerprogrammen / Stuttgart : teubner, 2001. – iSbN: 3-519-22242-6

Mulack, Thomas; Giesen, rolf: Special Visual effects / Gerlingen : bleicher Verlag, 2002. – iSbN: 3-88350-911-6

Nischwitz, alfred ; Haberäcker, peter: masterkurs Computergrafik und bildverarbeitung. / Wiesbaden : Vieweg, 2004. – iSbN: 3-528-05874-9

Peterson, michael todd ; Hessler, alexander: Combustion Ground rules / New York : Thomson Delmar learning, 2004. – iSbN: 0-7668-4145-6

125Quellen

Peyton, Christine ; möller, andré: pHp 5 & mySQl 4 der leichte einstieg / münchen : markt und technik Verlag, 2005. – iSbN: 3-8272-6918-0

Starmann, David: Grundkurs mediengestaltung. / Wiesbaden : Vieweg, 2004. – iSbN: 3-528-05901-X

Websites

Autodesk and Discreet logic combine 3D expertise : http://management.silicon.com/itdirector/0,39024673,11003354,00.htm, (25.4.2006)

Autodesk Combistion – product information : http://usa.autodesk.com/adsk/servlet/index?siteiD=123112&id=5562397, (25.4.2006)

BLANK plaYS DUDeN DVD : http://www.augst-carl-korn.de/releases/blank_DVD.html, (4.8.2006)

Frankfurter rundschau 7/04 - Standleitung ins Unendliche : http://www.augst-carl-korn.de/presse_duden.html, (4.8.2006)

Kunsthalle Düsseldorf: 10.09. – 06.11.2005 Compilation ii : http://www.germangalleries.com/Kunsthalle_Duesseldorf/Compilationii.05.html, (4.8.2006)

Machtdose » blank – Duden : http://www.ronsens.de/machtdose/00508.html, (4.8.2006)

PC plus – autodesk Combustion 4 review : http://www.pcplus.co.uk/reviews/software_applications/autodesk_combustion_4, (25.4.2006)

RE:Vision effects, inc. re:Flex Compatibility and pricing :http://www.revisionfx.com/rflxprice.html, (13.3.2006)

RE:Vision effects, inc. re:Flex Features : http://www.revisionfx.com/rflxfeat.html, (13.3.2006)

127ehrenwörtliche erklärung

Ehrenwörtliche ErklärungHiermit erkläre ich, dass die vorliegende Diplomarbeit selbständig ver-fasst und keine anderen als die angegebenen Hilfsmittel und Quellen benutzt und das aus fremden Quellen direkt oder indirekt übernom-mene material als solches kenntlich gemacht wurde.

Diese Diplomarbeit wurde keinem anderen prüfungsamt vorgelegt und noch nicht veröffentlicht.

Wernigerode, den 29.09.2006

Christoph oldendorf