In unserem Beispiel sollen sich die Antennen bzw. Fühler des Alien-Characters bei jeder Bewegung des Kopfes dynamisch und elastisch mitbewegen. Natürlich lässt sich unser Beispiel auch auf Haarsträhnen, Dinosaurier-Schwänze und vieles mehr anwenden.

In der Arbeitsdatei "PSD_C4D_R12_IK_Dyn_Start.c4d" findet ihr den modellierten und texturierten Alien-Kopf zum Mitarbeiten.

Neu in Release 12 - Dynamische Inverse Kinematik

Aufbau des Joint-Gerüsts

Unser Alien-Kopf besteht zum einen aus der polygonalen Kopf-Geometrie, zum anderen aus zwei Kugel-Objekten für die Augen. Im weiteren Verlauf werden wir alle Objekte entweder hierarchisch bzw. über Wichtungen an Joints binden, sodass der komplette Kopf zusammen mit den Fühlern problemlos animiert werden kann.

Fangen wir beim Aufbau des Joint-Gerüsts mit einem ersten Joint-Objekt für den Kopf an. Wir finden es im Menü Character.

Neu in Release 12 - Dynamische Inverse Kinematik

Da der Alien-Kopf genau auf dem Ursprung des Koordinatensystems sitzt, kann der Kopf-Joint auf der Nullposition verbleiben.

Neu in Release 12 - Dynamische Inverse Kinematik

Wir lassen das frisch erstellte Joint-Objekt gleich ausgewählt und aktivieren das Joint-Werkzeug im Menü Character. Im Einstellungsdialog des Joint-Werkzeuges deaktivieren wir die Erstellung eines übergeordneten Root-Null-Objektes. Wir werden es später selbst erzeugen, um besser zu verstehen, welche Funktion es bei einem Joint-Gerüst überhaupt einnimmt.

Damit wir symmetrisch arbeiten können, klappen wir den Bereich Symmetrie auf und verwenden die Zeichnen-Option auf der Welt-YZ-Ebene. Auf dieser Ebene respektive in dieser Ansicht werden wir die Joints zeichnen.

Neu in Release 12 - Dynamische Inverse Kinematik

Wenn wir jetzt mit aktiviertem Joint-Werkzeug und gedrückter Strg- bzw. Ctrl-Taste in die Ansicht klicken, werden uns automatisch und symmetrisch dem Kopf-Joint untergeordnete Joints kreiert.

Wir entscheiden uns für eine der beiden Fühler bzw. Antennen und setzen den ersten Unter-Joint direkt am Ansatz des Fühlers an den Kopf. Den Joint für den anderen Fühler setzt CINEMA 4D dank aktivierter Symmetrie automatisch.

Neu in Release 12 - Dynamische Inverse Kinematik

Wir erstellen uns nun jeweils durch Klick mit gedrückt gehaltener Strg- bzw. Ctrl-Taste eine Joint-Kette an den in der Abbildung gezeigten Positionen. Wo es feingliedriger wird, sollten die Joints auch etwas näher beieinanderliegen. Sparen sollten wir nicht mit den Joints, denn nur an diesen Gelenkstellen kann überhaupt eine Deformation bzw. Biegung der Geometrie stattfinden.

Neu in Release 12 - Dynamische Inverse Kinematik

Nachdem wir alle Joints erzeugt haben, finden wir im Objekt-Manager die in der Abbildung gezeigte Joint-Hierarchie vor. Das Kopf-Joint-Objekt besitzt insgesamt zwei Joint-Ketten als Unterobjekte - eine Kette für jeden Fühler bzw. Antenne.

Um die Position der Joints nun auch in der Seitenansicht paarweise anzupassen, selektieren wir je ein Joint-Paar im Objekt-Manager und verschieben die Joints entlang ihrer z-Achse in die Geometrie.

Neu in Release 12 - Dynamische Inverse Kinematik

Das Joint-Gerüst für die Animation der Fühler bzw. Antennen wäre damit auch schon fertiggestellt. Leider besitzt es aber noch keinen Bezug zu unserem Alien-Kopf, der uns erlauben würde, den Kopf zu animieren.

Neu in Release 12 - Dynamische Inverse Kinematik

Dies ist erst möglich, wenn wir die Joint-Hierarchie mit der Geometrie verbunden haben. Dazu selektieren wir zunächst über den Objekt-Manager alle Joint-Objekte sowie das Polygon-Objekt der Alien-Geometrie.

Neu in Release 12 - Dynamische Inverse Kinematik

Die Verbindung der Joint-Hierarchie mit dem Polygon-Mesh schafft nun für uns der Befehl Binden aus dem Menü Character>Befehle.

Neu in Release 12 - Dynamische Inverse Kinematik

Was hat der Binden-Befehl nun bewirkt? Das Polygon-Objekt der Alien-Geometrie besitzt jetzt ein Wichtungs-Tag, in dessen Einstellungs-Dialog alle Joint-Objekte gesammelt sind, die Einfluss auf die Geometrie des Alien-Kopfes nehmen können. Diese automatische Wichtung richtet sich nach der Position der Joints zur Geometrie und ist eine gute Ausgangsbasis.

Neu in Release 12 - Dynamische Inverse Kinematik

Wichtung der Joints

Ganz perfekt ist diese Wichtung allerdings in den seltensten Fällen; ein bisschen Nacharbeit ist also angesagt. Um einen Eindruck von den anliegenden Wichtungen zu bekommen, deaktivieren wir als Erstes die Funktion des HyperNURBS-Käfigs über den Objekt-Manager. Das Wichtungs-Werkzeug zeigt die Wichtungen an der Geometrie nämlich bei ungeglättetem Polygonmesh an. Für einen Gesamtüberblick selektieren wir zunächst alle Joint-Objekte mit der Geometrie im Objekt-Manager.

Neu in Release 12 - Dynamische Inverse Kinematik

Das Wichtungs-Werkzeug finden wir im Menü Character. Nachdem wir es aktiviert haben, färbt sich schon die Geometrie des Alien-Kopfes. Jeder Joint besitzt dabei eine eigene Farbe, mit der sein Einfluss auf die Geometrie angezeigt wird.

Neu in Release 12 - Dynamische Inverse Kinematik

Damit wir die Joints und deren Einfluss auf die Geometrie einzeln beurteilen können, müssen wir das jeweilige Joint lediglich im Objekt-Manager selektieren. Alle nicht von diesem Joint erfassten Bereiche der Geometrie bleiben dabei schwarz.

Neu in Release 12 - Dynamische Inverse Kinematik

Am Kopf-Joint fällt auf, dass die Nasenspitze nicht zu 100% in der Joint-Farbe vorliegt. Mit dem Wichtungs-Werkzeug können wir ein eventuelles Fehlverhalten bei Deformation verhindern, indem wir mit dem Wichtungs-Pinsel die Wichtung für den Joint gezielt erhöhen.

Neu in Release 12 - Dynamische Inverse Kinematik

Auch an den Übergängen zu den Fühlern bzw. Antennen ist etwas zu viel Einfluss auf die Kopf-Geometrie vorhanden. Um anliegende Wichtungen zu reduzieren, verwenden wir das Wichtungs-Werkzeug mit gedrückt gehaltener Strg- bzw. Ctrl-Taste.

Neu in Release 12 - Dynamische Inverse Kinematik

Zum Abschluss der Wichtungsarbeit empfiehlt es sich, noch einmal alle Joints über den Objekt-Manager zu selektieren, die Darstellung der Wichtungsfarbe auf Einfarbig zu setzen und zu überprüfen, ob die gesamte Geometrie eine Wichtung besitzt. Wie in der Abbildung zu erkennen, ist der komplette Alien-Kopf weiß eingefärbt, was uns sagt, dass alle Stellen der Geometrie mit Wichtungen belegt sind.

Neu in Release 12 - Dynamische Inverse Kinematik

Von den Wichtungen ausgespart blieben die Kugel-Objekte der Augen. Damit sich diese Objekte ebenfalls bei einer Drehung bzw. Bewegung des Kopfes mitbewegen, ordnen wir sie einfach dem Kopf-Joint im Objekt-Manager unter. Wird der Kopf-Joint nun beispielsweise gedreht, folgen die Augen-Objekte aufgrund ihrer Unterordnung der Kopfausrichtung.

Neu in Release 12 - Dynamische Inverse Kinematik

Nun ist es aber höchste Zeit, das Joint-Gerüst und die enthaltenen Wichtungen in der Praxis zu überprüfen. Wir selektieren dazu den Kopf-Joint und drehen ihn mit dem Rotieren-Werkzeug entlang der y-Achse. Der komplette Alien-Kopf sollte dabei ohne Probleme die Bewegungen des Kopf-Joints mitmachen.

Neu in Release 12 - Dynamische Inverse Kinematik

Einbinden der Inversen Kinematik mit Dynamik

Nachdem die Joints nun wie gewünscht auf die jeweiligen Bereiche des Alien-Kopfes wirken, können wir uns um die Animation der Fühler bzw. Antennen über Inverse Kinematik (IK) kümmern. Dazu müssen wir die beiden Joint-Stränge für die Fühler bzw. Antennen als IK-Kette definieren.

Wir selektieren dazu diese beiden Joint-Ketten im Objekt-Manager - bitte beachten, dass der Kopf-Joint dabei außen vor bleibt!

Neu in Release 12 - Dynamische Inverse Kinematik

Auch hier bietet CINEMA 4D wieder einen Spezial-Befehl namens IK-Kette erzeugen, der die selektierten Joint-Ketten automatisch zu IK-Ketten verarbeitet. Wir finden ihn im Menü Character>Befehle.

Neu in Release 12 - Dynamische Inverse Kinematik

Wir wenden den Befehl IK-Kette erzeugen an und überprüfen, was sich bei unserer Joint-Kette getan hat. Die beiden Joints am Kopfansatz bekamen jeweils ein IK-Tag zugewiesen. In diesem Tag wurde automatisch das Anfang und das Ende der IK-Kette hinterlegt.

Außerdem finden wir zwei neue Null-Objekte als Ziel-Objekte im Objekt-Manager. Diese beiden Ziele sind analog zu den Enden der Joint-Kette benannt und ermöglichen uns, die gesamte IK-Kette über diese einfachen Steuer-Ziele zu animieren.

Wir wollen die Bewegungen der Fühler bzw. Antennen zwar eigentlich vollautomatisch über dynamische Eigenschaften regeln. Es schadet aber dabei nicht, diese beiden Ziel-Objekte zu behalten, denn so richten sich die Fühler bzw. Antennen nach jeder Bewegung und Deformation immer wieder nach den Zielen aus und stellen sich so automatisch auf.

Neu in Release 12 - Dynamische Inverse Kinematik

Ein Blick in den Einstellungsdialog der IK-Tags zeigt uns, wie die Enden bzw. Ziele der IK-Kette definiert sind. Diese Parameter im Bereich Tag können wir beibehalten; wir interessieren uns jetzt mehr für die Dynamics-Einstellungen.

Neu in Release 12 - Dynamische Inverse Kinematik

Dazu wechseln wir in den Reiter Dynamics und aktivieren als Erstes die Dynamics-Option. Jetzt können die Fühler bzw. Antennen bereits auf die Einflüsse wie Gravitation oder Bewegung reagieren.

Damit die Fühler aber nicht einfach schlaff herunterhängen, sondern eher elastisch und widerstandsfähig wirken, reduzieren wir die Dynamics-Stärke auf ca. 40-45% und erhöhen die Dämpfung drastisch auf ca. 70%. Damit sich die Fühler noch stärker bemühen, den Ausgangszustand zurückzuerlangen, erhöhen wir den Parameter Winkel halten auf ca. 40-45%.

Ich kann an dieser Stelle nur einladen, weiter mit den Parametern zu experimentieren. So lernt man schnell, wie die einzelnen Einstellungen auf die gesamte Kette der Inversen Kinematik wirken - und Spaß macht es natürlich auch.

Neu in Release 12 - Dynamische Inverse Kinematik

Weil die beiden ausgelagerten Ziel-Objekte nichts von der dynamischen Animation der Fühler bzw. Antennen mitbekommen, müssen wir der IK beibringen, dass diese Ziele mitbewegt werden sollen. Ansonsten würden sich die Fühler bei einer schnellen Drehung sehr schnell miteinander verknoten.

Der Reiter Weitergehendes im IK-Tag bietet uns dafür eine sehr elegante Funktion an. Wir aktivieren hier einfach die Option Ziel mitführen, und die beiden Ziel-Objekte gehen automatisch bei jeder Bewegung mit.

Neu in Release 12 - Dynamische Inverse Kinematik

Jetzt ist auch die Inverse Kinematik-Funktionalität der Fühler bzw. Antennen unter Dach und Fach. Schaffen wir noch ein wenig Ordnung im Objekt-Manager, indem wir die Ziel-Objekte sowie die Joint-Ketten passend umbenennen.

Als Anfasser für die Animation des Alien-Kopfes fungiert momentan noch der Kopf-Joint. Leider ist dieser Joint relativ unhandlich, denn er steht aufgrund seiner untergeordneten Joint-Ketten rotiert im Raum.

Wir benötigen aber eigentlich eine "saubere" Ausgangslage an den Winkeln, damit die Rotation und Bewegung des Alien-Kopfes für uns ohne unerwünschte Vordrehungen ablaufen kann.

Hier kommt nun das Root-Null-Objekt ins Spiel, auf das wir bereits am Anfang kurz gestoßen sind.

Neu in Release 12 - Dynamische Inverse Kinematik

Es stellt uns eine völlig neue, jungfräuliche Koordinatenbasis zur Verfügung. Und damit die komplette IK-Kette dabei berücksichtigt wird, müssen wir sie dem Root-Null-Objekt lediglich unterordnen.

Als Erstes erzeugen wir aber das frische Null-Objekt über das Menü Objekte. Weil der Kopf-Joint auf der Nullposition liegt, müssen wir das neue Null-Objekt nicht einmal umpositionieren.

Neu in Release 12 - Dynamische Inverse Kinematik

Dieses neue Null-Objekt benennen wir folgerichtig in Root um und ordnen ihm die komplette Joint-Hierarchie über den Objekt-Manager unter.

Neu in Release 12 - Dynamische Inverse Kinematik

Spätestens jetzt können wir den Abspielknopf drücken und das Alien durch Rotation des Root-Null-Objektes in alle Richtungen drehen und animieren. Die Fühler bzw. Antennen werden dabei dynamisch von der Gravitation und von unseren Bewegungen gesteuert.

Neu in Release 12 - Dynamische Inverse Kinematik



Das Root-Null-Objekt ist also ein praktischer Helfer bei der Animation einer Joint-Hierarchie. Bei der Erstellung eines Joint-Gerüsts bekommt mindestens das Haupt-Joint (meistens die Hüfte) solch ein übergeordnetes Null-Objekt verordnet. Damit dies automatisch geschieht, müssen wir im Einstellungsdialog des Joint-Werkzeugs nur die Option Root-Null-Objekt aktivieren.