Animation in CINEMA 4D – Einführung in XPresso – Rollen von Objekten

Dieses Tutorial soll euch anhand eines typischen Anwendungsbeispiels eine Einführung in die Programmierung mit XPresso bieten. Mit den im Tutorial behandelten XPresso-Schaltungen bringt ihr euren runden Objekten (Rädern, Zylindern etc.) das korrekte Abrollen bei.

Wir empfehlen:
Projektentwicklung mit CINEMA 4D

So sieht die Animation aus (in der PDF-Version natürlich leider nicht sichtbar):

http://downloads.psd-tutorials.de/Download/_userimages/Image/Andreas_Asanger/flash/PSD_C4D_Animation_XPresso_Rollen.swf

Damit wir bei unserem Tutorial gleich in die "Programmierung" mit XPresso einsteigen können, findet ihr in der Arbeitsdatei "PSD_C4D_Animation_Rollen_1.c4d" eine Beispielszene mit einem texturierten, liegenden Zylinder. Natürlich könnt ihr auch gerne jedes andere "rollbare" Objekt für dieses Tutorial verwenden.

 

Der Zylinder liegt genau auf der Oberfläche eines Boden-Objekts auf. Er lässt sich zwar über die orangefarbenen Achsanfasser verschieben, eine vernünftige Animation ist so aber nicht möglich, denn der Zylinder muss rollen, um sich fortzubewegen.

 

Zuweisen der XPresso-Expression

Aufgrund seiner aktuellen Lage hat der Zylinder nur die Möglichkeit, in Z-Richtung zu rollen. Für den Einstieg wollen wir das Rollen also an der Position des Zylinders in Z-Richtung festmachen.

Dazu weisen wir dem Zylinder-Objekt (oder jedem beliebigen anderen Objekt) eine XPresso-Expression aus dem Menü Tags>CINEMA 4D Tags des Objekte-Managers bzw. über das Kontextmenü der rechten Maustaste zu.

 

Das Zylinder-Objekt besitzt nun ein Expression-Tag, in dem wir unsere XPresso-Schaltung realisieren können. Um die Funktionalität der XPresso-Expression an- bzw. abzuschalten, steht euch im Einstellungsdialog des Tags die Option Aktivieren zur Verfügung.

 

Die Schaltung selbst erstellen wir im XPresso-Editor, den wir einfach durch einen Doppelklick auf das Expression-Tag aufrufen. Hier liegen in der linken Spalte im Reiter X-Pool alle zu einer Schaltung verwendbaren Nodes für Operationen an Elementen bereit.

 

Aufbau der Schaltung

Wie bereits erwähnt, soll unser Zylinder bei der Bewegung entlang der Welt-Z-Achse rotieren. Dazu lesen wir also als Erstes die Z-Position des Zylinders aus. Wir ziehen uns dazu das Zylinder-Objekt aus dem Objekte-Manager als Node direkt in das Fenster des XPresso-Editors.

Wir klicken auf das rote Port-Menü des Zylinder-Nodes, wo wir uns den Port Position.Z aus dem Menü Koordinaten>Position holen und damit am Ausgang des Nodes zur Verfügung stellen.

 

Um zu berechnen, wie weit sich der Zylinder "drehen" muss, um zu einer bestimmten Z-Position zu rollen, lesen wir außerdem den Radius des Zylinders aus. Diesen Port finden wir im Menü Objekt-Eigenschaften.

 

Um nun aus diesen beiden Angaben die korrekte Drehung zu berechnen, benötigen wir ein Formel-Node von den System-Operatoren-Nodes. Wir können es entweder über den X-Pool in der linken Spalte oder noch einfacher, per Kontextmenü der rechten Maustaste über Neuer Node>XPresso>Berechne>Formel integrieren.

 

Im Einstellungsdialog des Formel-Nodes tragen wir die Formel für die Berechnung des Kreisabschnitts ein. Wert1 entspricht der ausgelesenen Z-Position, der Wert2 dem Radius des Zylinders. Den Teil Wert2*2*Pi kennt ihr als Formel zur Berechnung des Kreisumfangs. Der durch Teilung ermittelte Kreisabschnitt wird nun noch mit -360 multipliziert, um das Zwischenergebnis in die Drehwinkel-Einheit Radians einzustellen. Das negative Vorzeichen ist nötig, da wir uns bei einem Vorwärtsrollen des Zylinders ja in die negative Z-Richtung bewegen.

 

Wie kommt das Formel-Node nun an seine benötigten Werte? Es braucht dazu zwei Eingangsports für die beiden Variablen. Wir stellen sie zwei Mal über den blauen Eingangs-Port-Button am Formel-Node bereit.

 

Jetzt stehen den Ausgangsports des Zylinders zwei Eingangsports am Formel-Node gegenüber, sodass wir sie durch Ziehen mit gedrückt gehaltener Maustaste jeweils miteinander verbinden können.

 

Weil für die Einstellung der Rotation am Zylinder nicht Radians, sondern Grad anliegen, lassen wir uns das Ergebnis über einen Winkel-Node umrechnen. Wir finden diesen Node wieder über das Kontextmenü der rechten Maustaste unter Neuer Node>XPresso>Berechne>Winkel.

 

Jetzt verbinden wir den Ausgangsport des Formel-Nodes mit dem Eingangsport des Winkel-Nodes.

 

Im Einstellungsdialog des Winkel-Nodes legen wir die benötigte Umwandlung für die Rotation über die Einstellung Grad zu Radians.

 

Mit diesem nun am Ausgangsport des Winkel-Nodes anliegenden Wert können wir die Rotation des Zylinders einstellen. Dazu ziehen wir uns der Übersichtlichkeit halber einfach noch einmal das Zylinder-Objekt in den XPresso-Editor und stellen dort den Eingangsport Winkel.P bereit.

 

Jetzt müssen wir nur noch den Ausgangsport des Winkel-Nodes mit dem Eingangsport Winkel.P des Zylinder-Nodes verbinden und unsere erste XPresso-Schaltung ist fertig.

 

Wir können den XPresso-Editor damit schließen und gleich ausprobieren, ob unsere Schaltung funktioniert. Beim Verschieben in Z-Richtung sollte sich der Zylinder nun selbstständig um den für die vorliegende Strecke benötigten Wert drehen.

 

Erstellen der Animation

Schließen wir diesen ersten Teil des Tutorials mit einer kleinen Animation ab. Dazu verschieben wir den Zylinder entlang der Z-Achse nach hinten (bei mir über den Koordinaten-Manager auf den Wert 500 cm), setzen den grünen Zeitregler der Animationspalette auf Bild 0 und nehmen Positions-Keyframes für dieses Bild auf.

 

Anschließend setzen wir den grünen Zeitregler der Animationspalette auf Bild 100 und geben dem Zylinder über den Koordinaten-Manager die Position -500 cm. Auch hier nehmen wir wieder Positions-Keyframes auf.

 

Wir testen die Animation durch Klick auf den Abspielbutton der Animationspalette und stellen fest, dass sich der Zylinder nicht nur vom Ausgangs- zum Endpunkt bewegt, sondern dabei auch noch realitätsgetreu rotiert.

 

Rollen entlang eines Pfades

Nachdem unser Zylinder nun schon in Z-Richtung korrekt rollen kann, wollen wir im zweiten Teil dieses Tutorials einen Schritt weitergehen und ihm einen Pfad vorgeben. In der Arbeitsdatei "PSD_C4D_Animation_XPresso_Rollen_2.c4d" habe ich meine Version mit einem Blume-Spline als Pfad hinterlegt. Auch hier könnt ihr natürlich stattdessen wieder eine Eigenkreation verwenden.

 

Da wir unserem Zylinder schon das einfache Rollen beigebracht haben, können wir für das pfadgesteuerte Rollen einen Großteil der XPresso-Schaltung weiterverwenden. Weil die jetzige Funktionalität aber nicht für unsere Zwecke brauchbar ist, schalten wir sie kurzerhand über den Einstellungsdialog des XPresso-Expression-Tags ab.

 

Erstellen der Pfad-Animation

Zunächst gilt es, den Zylinder entlang des vorgegebenen Spline-Pfades zu animieren. Wir weisen ihm dazu eine Auf-Spline-ausrichten-Expression aus dem Menü Tags>CINEMA 4D Tags im Objekte-Manager bzw. über das Kontextmenü mit der rechten Maustaste zu.

 

Im Einstellungsdialog der Auf-Spline-ausrichten-Expression finden wir das Feld Spline-Pfad, in das wir das Blume-Spline-Objekt aus dem Objekte-Manager ziehen. Als Objekt-Achse für die Ausrichtung ist, wie in der Abbildung zu erkennen, die Z-Achse bestimmt.

 

Sofort hat unser Zylinder seine bisherige Position verlassen und die Position 0, also den Anfang des vorgegebenen Blume-Splines, eingenommen.

 

Wenn wir schon dabei sind, machen wir die Animation auch gleich fertig. Dazu setzen wir den grünen Zeitregler der Animationspalette auf Bild 0 und klicken mit gedrückt gehaltener Strg- bzw. Ctrl-Taste auf das Parameterkästchen vor dem Positionswert.

Da hier die Animation startet, ist auch der voreingestellte Positionswert von 0% an dieser Stelle richtig.

 

Ich habe meinem Zylinder bis zu Bild 1000 Zeit gegeben, um den kompletten Blume-Spline abzufahren bzw. "abzurollen". Auf diese Weise lässt sich auch die Rollbewegung schön beobachten. Wir setzen den grünen Zeitregler also auf den gewünschten Endzeitpunkt der Animation, stellen im Einstellungsdialog der Auf-Spline-ausrichten-Expression den Positionswert auf 100% und nehmen auch hier ein Keyframe für diesen Parameter durch Klick mit gedrückt gehaltener Strg- bzw. Ctrl-Taste auf das Parameterkästchen auf.

 

Ein Test durch Klick auf den Abspielbutton der Animationspalette zeigt, dass die Pfad-Animation entlang des Blume-Splines funktioniert – allerdings bislang ohne das Rollen des Zylinders.

 

Anpassen der XPresso-Schaltung an die Pfad-Animation

Damit unser Zylinder auch bei der Pfad-Animation korrekt rollt, müssen wir die momentan deaktivierte XPresso-Expression an die neuen Gegebenheiten anpassen. Dazu öffnen wir die XPresso-Schaltung durch Doppelklick auf das Expression-Tag im Objekte-Manager und lösen als Erstes den Verbund zwischen der Z-Position des Zylinders und dem Port Wert1 des Formel-Nodes.

 

Statt der Z-Position des Zylinders müssen wir jetzt die zurückgelegte Strecke auf dem Blume-Spline-Pfad auswerten. Dazu ziehen wir uns als Erstes den Blume-Spline aus dem Objekte-Manager als Node in den XPresso-Editor. Am roten Port-Button der Ausgangsports des Blume-Spline-Nodes wählen wir den Eintrag Objekt als Informationsquelle.

 

Um die gesamte Länge des Blume-Spline-Pfads auszulesen, benötigen wir einen Spline-Node, den wir uns aus dem Kontextmenü mit der rechten Maustaste einbauen.

 

Wir verbinden den Objekt-Port des Blume-Spline-Pfad-Nodes mit dem Objekt-Port des Spline-Nodes, damit der Spline-Node für uns Informationen aus dem Blume-Spline lesen kann.

 

Am roten Ausgangsport-Button des Spline-Nodes sehen wir die Informationen, die uns der Spline-Node zur Verfügung stellt. Wir interessieren uns für die Länge des Splines, weshalb wir uns genau diesen Port am Ausgang des Nodes einstellen.

 

Die ausgelesene Länge des Splines soll gleich mit dem Positionswert der Auf-Spline-ausrichten-Expression verrechnet werden. Dazu ziehen wir uns das zugehörige Expression-Tag aus dem Objekte-Manager als Node in den XPresso-Editor und stellen den Positions-Parameter am roten Ausgangsport-Button bereit.

 

Der Positionswert in der Expression wird nicht als Prozentwert, sondern als Fließkommazahl im Bereich von 0 bis 1 ausgegeben. Das hat für uns den Vorteil, dass wir beide Angaben nur miteinander multiplizieren lassen müssen, um die Länge der zurückgelegten Strecke zu ermitteln.

Wir bauen uns dazu einen Mathe-Node aus dem Kontextmenü mit der rechten Maustaste in den XPresso-Editor ein.

 

Im Einstellungsdialog des Mathe-Nodes wählen wir den Datentyp Real und stellen die Funktion Multiplizieren für unsere beiden Parameter ein.

 

Jetzt verbinden wir den Länge-Port des Spline-Nodes sowie den Positions-Port des Auf-Spline-ausrichten-Nodes mit je einem Eingangsport des Mathe-Nodes. Nun kann der Mathe-Node seiner Arbeit nachgehen und uns an seinem Ausgangsport die vom Zylinder zurückgelegte Strecke anbieten.

 

Ich habe in meinem XPresso-Editor etwas aufgeräumt, um die neue Teilschaltung gut mit der bereits bestehenden Schaltung verbinden zu können. Wir müssen nun nämlich nur noch den Ausgangsport des Mathe-Nodes mit dem Port Wert1 des Formel-Nodes verbinden, um die Streckenlänge korrekt in die Berechnung der benötigten Drehung des Zylinders einzuspeisen.

 

Damit ist die XPresso-Schaltung für die Pfad-Animation fertiggestellt, sodass wir das Zylinder-Objekt nun getrost auf den Pfad des Blume-Spline-Objektes rollen lassen können.

 

Anpassen der Pfad-Animation und Aktivieren der Expression

Damit der rollende Zylinder nicht, wie es standardmäßig bei der Erstellung von Keyframes in CINEMA 4D üblich ist, langsam ein- bzw. ausrollt, sondern seinen Weg linear abfährt, könnt ihr die beiden betroffenen Keyframes in der Zeitleiste aufrufen und beiden dort über den zugehörigen Button lineare Key-Eigenschaften zuweisen.

 

Da wir die XPresso-Expression für die Erstellung der Pfad-Animation ja deaktiviert hatten, können wir sie nun, nachdem der Zylinder auch korrekt an einem Pfad entlangrollen kann, wieder über den Einstellungsdialog des Expression-Tags aktivieren.

 

Nach einem Klick auf den Abspielbutton der Animationspalette können wir unserem Zylinder-Objekt dabei zusehen, wie es strikt den Pfad entlangläuft und dabei realitätsgetreu abrollt.

Wir empfehlen:
Maxon BodyPaint 3D-Video-Training

Unsere Empfehlung für dich

Cinema 4D für Einsteiger – für R16/R17/R18

Cinema 4D für Einsteiger – für R16/R17/R18

Überschreite mit unserem neuen und sagenhaften Standardwerk für Cinema 4D die Grenzen der Wahrnehmung. Das Release 16 ist das beste Update, das Maxon je herausgebracht hat!

  • Neue Funktionen von R16, R17 und R18 im Detail erklärt
  • In über 15,5 Stunden Video-Training Cinema 4D von A bis Z ergründen
  • PLUS 850 PDF-Seiten und Arbeitsmaterialien
  • Maximales Kreativtraining: Nachbau des Covermotivs

Zum Training