Die Drawing-Pipeline
Einer der großen Vorzüge von Cinema 4D ist der, dass Sie bereits im Editor Ihre Szene (die Objekte und ihre Verformungen und Animationen) so sehen, wie sie später dann mit dem Renderer in vielen schönen Farben berechnet wird.
Damit das auch funktioniert, müssen bestimmte Dinge nacheinander Berücksichtigung finden. Betrachten wir ein kleines Beispiel:
Sie verzerren ein Objekt mit Hilfe eines FFD-Objekts. Danach animieren Sie das Objekt. Eine einfache Verschiebung soll genügen. Doch was genau wird jetzt verschoben? Das Original-Objekt, das ja nach wie vor vorhanden ist oder doch eher das deformierte Objekt? Natürlich erwarten Sie, dass das verformte Gebilde verschoben wird. Damit dem so ist, muss der Verformung Vorrang vor der Animation gegeben werden, oder mit anderen Worten ausgedrückt: Zuerst wird die Animation ausgewertet, danach die Verformung.
Noch ein Beispiel? Aber gerne! Nehmen wir ein Objekt, das von Punkt A nach Punkt B animiert wird. Gleichzeitig besitzt es aber noch eine Expression, welche allerdings das Objekt nach Punkt C bewegen will. Wer gewinnt? Genau das hängt davon ab, was zuerst und was danach betrachtet wird. Würde die Expression zuerst ausgewertet und danach die Verschiebung, landete das Objekt am Ende in Punkt B. Die Verschiebung überschreibt quasi das, was die Expression vorgegeben hat. Wird hingegen die Animation als erstes ausgewertet und danach die Expression, landet das Objekt am Ende in Punkt C.
Dasselbe gilt nicht nur für die Animation, sondern ist bereits bei der Konstruktion entscheidend. Es ist ein Unterschied, ob man einen Spline zunächst verbiegt und anschließend z.B. in die Tiefe zieht, um ein 3D-Objekt zu erhalten, oder ob man zuerst dem Spline Dreidimensionalität verleiht und das Ergebnis anschließend als Ganzes verbiegt.
Dieses Nacheinander des Auswertens von Funktionen nennen wir Pipeline – eine Röhre, durch die die einzelnen Funktionen nacheinander fließen. Die Auswertung bezieht sich auf das Darstellen, also das Zeichnen, von Elementen im Editor. Wir bezeichnen daher diese Art und Weise, Daten zu behandeln, als Drawing-Pipeline.
Es ist von entscheidender Bedeutung, die Zusammenhänge und die Reihenfolge zu kennen, in der gewisse Funktionen abgearbeitet werden. Sie ersparen sich unliebsame Überraschungen, wie wir noch sehen werden.
Die Elemente der Drawing-Pipeline
Was alles findet nun in unserer Darstellungsreihenfolgeröhre (Ist Deutsch nicht eine schöne Sprache?) Verwendung? Im folgenden werden wir die einzelnen Elemente näher betrachten. Wir gehen außerdem bei jedem einzelnen auf die Reihenfolge ein, in der gleichartige Elemente einer Gruppe nacheinander ausgewertet werden.
Unter Animation verstehen wir alles, was in der Zeitleiste an Spuren und Keys angelegt werden kann.
Spuren werden in der Zeitleiste pro Objekt der Reihe nach von unten nach oben abgearbeitet, beginnend mit den Überobjekten. Von hier geht es den Hierarchiebaum nach unten bis zum innersten Unterobjekt. Entfalten Sie im Objekt-Manager (siehe Alles ausklappen) einmal die gesamte Struktur einer komplexen Objektgruppe. Genauso wie Sie hier von oben nach unten Objekt für Objekt sehen, werden Animationen abgearbeitet.
Unter Expressions verstehen wir eine bestimmte Eigenschaft, die einem Objekt zugewiesen wurde. Das kann z.B. über Tags (z.B. XPresso, Auf-Kamera-Ausrichten- oder Python-Tag) geschehen.
Dadurch können Sie z.B. die Stärke einer Relief-Textur über den Winkel zwischen Ober- und Unterarm einer Figur steuern, um so das Anspannen von Muskeln zu simulieren. Auch andere Abhängigkeiten sind denkbar. Man könnte die Textur-Färbung eines Hauses in Abhängigkeit des Sonnen-(Objekt)-Standes steuern.
Sie können Expressions Prioritäten verleihen und somit ganz genau festlegen, wann die Expression ausgeführt werden soll (s. z.B. Priorität).
Unter Generatoren verstehen wir alle Objekte, die Geometrie mit Hilfe anderer Objekte erzeugen. So erzeugt z.B. ein Subdisivision Surface zeitweilig ein Polygon-Objekt zur Darstellung (welches über eine andere Funktion in ein echtes Polygon-Objekt gewandelt werden kann; siehe Grundobjekt konvertieren).
Zu den Generatoren zählen die
Generatoren werden der Reihe nach Objekt für Objekt abgearbeitet, beginnend mit den Unterobjekten. Von hier geht es den Hierarchiebaum nach oben bis zum äußersten Überobjekt. Entfalten Sie im Objekt-Manager (siehe Alles ausklappen) einmal die gesamte Struktur einer komplexen Objektgruppe. Genauso wie Sie hier von unten nach oben Objekt für Objekt sehen, werden Generatoren verschiedener Objekte abgearbeitet.
Unter Deformern verstehen wir alle Funktionen aus dem
Deformer sind selbst Objekte, die ihrerseits ein (einzelnes) Objekt verändern. So verformt z.B. ein FFD die Punkte eines mit ihm verknüpften Polygon-Objektes. Wie bei den Expressions sind diese Veränderungen natürlich nicht auf Punkte beschränkt. Es wird immer mit internen virtuellen Kopien des eigentlichen Ausgangs-Objektes gearbeitet. Das Original wird daher nie zerstört und kann immer wiederhergestellt werden. Man könnte sich z.B. einen Deformer vorstellen, der die Farbe eines Objektes in Abhängigkeit seiner Position im Raum wechselt.
Der Hauptunterschied zwischen Expressions und Deformern ist der, dass erstere eine Eigenschaft darstellen, die verarbeitet wird, bevor eine (virtuelle) Kopie erzeugt wurde. Letztere sind selbst Objekte, die auf virtuellen Kopien eines anderen Objektes wirken, weil sie erst nach dem Erzeugen der virtuellen Kopie verarbeitet werden.
Deformer werden der Reihe nach Objekt für Objekt abgearbeitet, beginnend mit den Unterobjekten. Von hier geht es den Hierarchiebaum nach oben bis zum äußersten Überobjekt. Entfalten Sie im Objekt-Manager (siehe Alles ausklappen) einmal die gesamte Struktur einer komplexen Objektgruppe. Genauso wie Sie hier von unten nach oben Objekt für Objekt sehen, werden Deformer verschiedener Objekte abgearbeitet.
Abschließend noch ein kleines Beispiel zur Kombination von Deformer und Generatoren, und warum hier bei der Abarbeitung mit den Unterobjekten begonnen wird:
Ein Loft-Objekt ist ein Generator, weil die Funktion vorübergehend ein Polygon-Objekt erzeugt. Stellen Sie sich nun vor, dass die Splines, welche das Loft-Objekt beschreiben, selbst durch einige FFD-Objekte (Deformer) verformt werden. Der Objekte-Hierarchiebaum könnte z.B. so wie auf dem Bild oben aussehen.
Es sollte nun klar sein, warum mit den Unterobjekten begonnen wird. Nur dadurch können die FFDs (Unterobjekte) zuerst auf die Splines wirken, bevor aus den dadurch verformten Splines durch den Generator (Oberobjekt) ein (virtuelles) 3D-Polygon-Objekt erzeugt wird.
Wir haben bei den Elementen oben bislang lediglich die Reihenfolge besprochen, in der gleichartige Funktionen (z.B. Generatoren) abgearbeitet werden. Wie sieht es nun aber aus, wenn verschiedene Elemente aufeinandertreffen? Auch hier gibt es eine strikte Reihenfolge in der Pipeline:
(Merken Sie sich diese Reihenfolge. Sie sollten sie bei allem, was Sie in Cinema 4D anstellen, immer im Hinterkopf behalten.)
Diese Pipeline wird bei jedem (wirklich jedem) Arbeitsschritt aufs Neue durchlaufen und abgearbeitet. Haben Sie im Objekt-Manager z.B. ein Objekt mit einer Ausrichten-Expression versehen, können Sie nun das Objekt frei im Editor herumbewegen. Die Abhängigkeit wird ständig berechnet und auf den Bildschirm gezeichnet. Daher schaut das Objekt auch immer auf sein Ziel.
Es ist nicht notwendig, einen Zeitregler der Zeitleiste hin und her zu bewegen oder explizit das Abspielen einer Animation aufrufen, wenn Sie mit Animationen herumexperimentieren. Arbeiten Sie am lebenden Objekt. Sehr nützlich wird das z.B., wenn Sie für Inverse-Kinematik-Animationen Zielobjekte in Ihrer Szene platzieren. Sie sehen sofort, was passiert.
Mit diesen vier Funktionen können Sie nun gezielt einzelne Elemente der Drawing-Pipeline ein- und ausschalten (das ist ebenfalls in den Projekt-Voreinstellungen möglich). Ist ein Element abgeschaltet, werden dessen Daten im Editor auch nicht mehr ausgewertet. Haben Sie z.B. Deformer abgeschaltet, erscheinen nun alle Objekte unverzerrt, selbst wenn sie durch noch so wilde FFD-Käfige verformt werden sollten.
Haben Sie beispielsweise einem Objekt eine Auf Kamera ausrichten Expression zugewiesen, können Sie wegen den in der Drawing-Pipeline aktivierten Expressions das Objekt nicht mehr frei drehen (die Objekt-Z-Achse zeigt immer in Richtung der Kamera)
Cinema 4D wertet nun zwar die Animationsdaten aus, anschließend erfolgt aber sofort das Zeichnen der Expressions, und das Objekt dreht automatisch wieder zurück auf sein Ziel.
Andere global wirkende Schalter
Mit diesem Befehl können Sie global für Ihre Szene die Benutzung der IK an- und ausschalten.
Mit diesem Befehl können Sie global für Ihre Szene die Benutzung aller Constraint Tags an- und ausschalten.
Dieser Befehl erlaubt Ihnen die Benutzung der Symmetrie-Optionen, wie Sie sie im Attribute-Manager für die Joint-Objekte finden, global für Ihre Szene ein- und auszuschalten.
Hiermit können Sie global Hair ein- und ausschalten. Das bezieht sich sowohl auf die Darstellung der Haare im Editor, als auch auf das Rendern derselben.