Charakter-Animation: Inverse Kinematik – Das IK-Tag – Teil 1

Tutorials 12. Dezember 2016 – 0 Kommentare

Da Sie nun bereits das Grundprinzip der inversen Kinematik und dessen Wirkung gesehen haben, schauen wir uns die Einstellungen im IK-Tag genauer an. Die Option für IK benutzen sorgt dabei dafür, dass das IK-Tag überhaupt seine Arbeit aufnimmt. Ansonsten verhält es sich, als wäre es gar nicht vorhanden. Die Art der inversen Kinematik regeln Sie über das Menü für IK-Lösung. Wir kommen gleich noch darauf zurück, denn zuvor sollten in jedem Fall Ende und Ziel, sowie ggf. ein Polvektor definiert werden.

Ende ist in der Regel das Joint-Objekt der Hierarchie, das Sie später animieren oder über ein externes Ziel-Objekt im Raum fixieren möchten. Es ist also in jedem Fall ein Joint-Objekt, das in dem gleichen Hierarchie-Zweig liegt wie das Objekt, auf dem das IK-Tag liegt. Zudem muss es ein Joint-Objekt sein, das unter dem Objekt mit dem IK-Tag eingruppiert wurde. In vielen Fällen ist es sogar direkt das erste Unterobjekt oder – wie in unserem Beispiel der Abbildung 6.13 – das zweite Joint-Objekt unter dem Objekt mit dem IK-Tag. Liegen zu viele Joints dazwischen, wird es immer schwieriger werden, die Bewegung der Joint-Kette exakt zu steuern, da es zu viele Freiheitsgrade und mögliche Winkel für die beteiligten Joints gibt. In das Feld für Ziel tragen Sie das Objekt ein, an dessen Position sich das Ende-Joint orientieren soll. Sie können sich dies wie eine Magnetkraft vorstellen, mit der unser Ende-Joint am Ziel-Objekt festgehalten wird. Haben Sie noch kein geeignetes Ziel-Objekt in Ihrer Szene das Sie zuweisen möchten, betätigen Sie einfach die Ziel hinzufügen-Schaltfläche um ein Null-Objekt automatisch an der aktuellen Position des Ende-Joints zu platzieren und als Ziel im IK-Tag eintragen zu lassen.

Der IK/FK-Regler ermöglicht uns das Abmischen und Umschalten zwischen der Inversen Kinematik (IK) und der Forward Kinematik (FK). Die FK können wir uns als normale Winkel-Keyframes oder eine beliebige Pose vorstellen, die wir selbst durch Rotation der einzelnen Joints erstellt haben. Ziehen Sie dazu den IK/FK-Regler auf 100% und drehen Sie die Joints in eine beliebige Pose. Dazu kann das Ziel-Objekt nicht länger benutzt werden, denn dies gehört ja zur IK-Berechnung. Sie müssen also z. B. das normale Drehen-Werkzeug benutzen, um die gewünschte Stellung der Joints dieses Hierarchieabschnitts anzulegen. Die IK-Berechnung der Joints zwischen dem IK-Tag und dem Ende-Joint wird jedoch weiterhin durchgeführt.

Sie können daher anschließend weich mit dem IK/FK-Regler zwischen der FK-Stellung und dem IK-Ergebnis mischen. Dies ist in Abbildung 6.14 ganz rechts zu sehen, wo sich unsere Joints in einer Zwischenstellung zwischen der roten FK-Lage und der blauen IK-Pose befinden. Diese optionalen farbigen Einblendungen für die IK- und die FK-Posen finden Sie in der Darstellung-Rubrik des IK-Tags, die ebenfalls mittig in Abbildung 6.14 zu sehen ist.

Animation in Cinema 4D - Abmischen zwischen Forward Kinematik und Inverse Kinematik

Abbildung 6.14: Abmischen zwischen Forward Kinematik und Inverse Kinematik

Mit FK anzeigen und IK anzeigen lassen sich dann entsprechend gefärbte Linien einblenden. Steht der IK/FK-Regler auf 0% liegen die Joints exakt auf der durch die IK berechneten Lösung. Bei IK/FK 100% nehmen die Joints die Lage ein, die Sie selbst über Winkel-Keyframes zu diesem Zeitpunkt der Animation aufgenommen haben. Wurden bislang keine Keyframes aufgezeichnet, kann die FK-Pose auch einfach von Hand durch direkte Drehung der Joints eingestellt werden. Ein Klick auf FK zurücksetzen synchronisiert die aktuelle FK-Pose Ihrer Joints mit der IK-Pose. Anschließend ändert der IK/FK-Regler also nichts mehr an der Pose der Joints, da FK mit IK identisch ist.

Die Option Anfasser Linie auf der Darstellung-Seite des IK-Tags ist für die standardmäßig grüne Verbindungslinie zwischen dem Objekt mit dem IK-Tag und dem Ende-Objekt zuständig. So ist z. B. direkt im Editor erkenntlich, dass unser Knie-Joint nicht direkt in seiner IK-Stellung beeinflusst werden kann. Das Poolvektor-Menü in den Darstellung-Einstellungen kümmert sich um eine Verbindungslinie zu einem optionalen, zusätzlichen Ausrichtpunkt, mit dem dann ggf. die Neigung der Ebene gesteuert werden kann, in der die 2D IK-Lösung für die beteiligten Joints berechnet wird. Wir kommen darauf gleich noch zurück. Weiter geht es zunächst mit der Stärke in den Tag-Einstellungen.

Diese ist nur dann relevant, wenn Sie mehrere IK-Tags auf die gleichen Joints wirken lassen möchten. Denkbar wäre so auch die Nutzung verschiedener Ziel-Objekte für den gleichen Ende-Joint, so wie es in Abbildung 6.15 zu sehen ist. Bedenken Sie, dass immer das weiter rechts hinter dem Joint-Objekt einsortierte IK-Tag „gewinnt“. Ich habe in diesem Fall ein weiteres Null-Objekt erstellt und dies etwas verschoben. Danach wurde das vorhandene IK-Tag dupliziert und dort bei Ziel das neue Null-Objekt eingetragen. An dem weiter rechts liegenden IK-Tag kann dann über die Stärke abgemischt werden, welches der Ziel-Objekte stärker an den Joints zieht. Das Prinzip ist also mit dem IK/FK-Regler vergleichbar, nur dass nun beide Zustände IK-Lösungen sind, zwischen denen überblendet werden kann.

Animation in Cinema 4D - Mischen zwischen verschiedenen IK-Lösungen

Abbildung 6.15: Mischen zwischen verschiedenen IK-Lösungen

Wie kommt es nun aber eigentlich zur Lösung der IK-Berechnung? Hierzu müssen Sie wissen, dass es zwei unterschiedliche Berechnungsverfahren gibt, die über das Menü IK-Lösung ausgewählt werden können. Die IK-Lösung 2D benutzt dabei die FK-Stellung Ihrer Joints als Basis. Stellen Sie sich die Ausgangslage z. B. wie in Abbildung 6.16 vor.

Animation in Cinema 4D - Grundlagen der IK-Berechnung

Abbildung 6.16: Grundlagen der IK-Berechnung

Es wird eine virtuelle Linie zwischen dem Joint mit dem IK-Tag und dem Ende-Joint gezogen. Dies ist die grüne Linie, die in der obigen Abbildung zwischen der blauen Kugel und dem violetten Null-Objekt-Anfasser gezogen wurde. Ausgehend von dem Joint-Objekt, das das IK-Tag trägt wird nun in Richtung des Ende-Objekts nach einem untergeordneten Joint gesucht, dessen Position nicht auf dieser Linie liegt. Im Beispiel der Abbildung 6.16 ist dies der Knie-Joint, der durch eine rote Kugel markiert wurde. Durch diese drei Positionen, also Startpunkt und Endpunkt der IK-Kette und erster Joint, der außerhalb der grünen Verbindungslinie liegt, lässt sich eine Ebene definieren. Diese Ebene ist durch das Raster hinter den Joint-Objekten angedeutet. Wenn nun das Ziel-Objekt verschoben wird, wird basierend auf dieser Startstellung eine neue Rotation der beiden Joints berechnet, die innerhalb der Ebene liegt. Deshalb nennt sich diese IK-Lösung eben 2D. An dieser Berechnungsart erkennen Sie auch, wie hilfreich es ist, dass das Bein oder generell die Joints einer IK-Kette nicht auf einer Linie liegen, sondern zumindest einen leichten Winkel zwischen sich haben sollten. Das leicht gebeugte Bein hilft also der IK-Berechnung die 2D-Ebene durch die Joints zu erzeugen. Um nun die Beugung oder Streckung des Knies (rote Kugel in Abbildung 6.16) richtig kalkulieren zu können, wird von der IK-Lösung 2D ein zusätzlicher Polvektor herangezogen. Dessen Richtung kann manuell über den Dialog des IK-Tags vorgegeben werden. Wir kommen gleich noch dazu. Ist jedoch kein Polvektor definiert, berechnet sich das IK-Tag selbst eine Richtung, die immer senkrecht auf der grünen Verbindungslinie zwischen Start-Joint und Ende-Joint steht und dabei in Richtung des ersten Joints zeigt, der neben der grünen Linie liegt (im Beispiel der Abbildung 6.16 also in Richtung der roten Kugel). Bedenken Sie, dass dies immer bezogen auf die FK-Stellung der Joints oder bezogen auf die Bevorzugten Winkel der Joints gilt! Der Polvektor wird also nicht laufend neu kalkuliert, sondern direkt beim Aufruf eines IK-Tags und nach dem Eintragen eines Ende-Objekts basierend auf der zu diesem Zeitpunkt aktuellen Stellung der Joints. Der Polvektor kann sich jedoch ändern, wenn Sie eine neue FK-Stellung anlegen und somit eventuell auch die Richtung der 2D-Ebene für die IK-Berechnung editieren.

Der Polvektor zeigt dann die Richtung an, in der sich die Joints der Kette knicken können. Im Fall unseres Joint-Beins ist dadurch eindeutig definiert, dass sich das Knie in der definierten 2D-Ebene nach vorne bewegt, wenn das Ziel für den Fuß nach oben oder die Hüfte nach unten bewegt wird. Ansonsten könnte das Knie ja auch seitlich ausweichen, um die Distanz zu verkürzen.
Ich hatte gerade schon kommentarlos die Bevorzugten Winkel erwähnt, die an den Joint-Objekten selbst definiert werden können. Auch diese können für die Definition der 2D-Ebene und somit auch des Polvektors herangezogen werden. Sie bringen dazu die Joints z. B. auch über die Verschiebung des Ziel-Objekts oder aber im FK-Modus (IK/FK-Regler des IK-Tags auf 100%) in die gewünschte Standardpose und betätigen dann die Schaltfläche Setzen in den Bevorzugte Winkel-Einstellungen der Kinematik-Rubrik der Joints. Aktivieren Sie dort ebenfalls die Option für Bevorzugte Winkel benutzen und belassen Sie den Wichtung-Regler bei 100%. Auf diese Weise können wir die in den Joints gesicherten Stellungen auch über das IK-Tag auswerten. Im IK-Tag finden Sie nämlich ebenfalls einen Regler für Bevorzugte Winkel, der dann praktisch die gespeicherte FK-Stellung der Joints für die Berechnung der IK-Lösung außer Kraft setzt. Falls notwendig kann zudem die Wichtung der Bevorzugten Winkel in den Kinematik-Einstellungen der Joint-Objekte auch unter 100% gesenkt werden, um dann für diese Joints die FK-Stellung wieder stärker heranzuziehen. Dies könnte sinnvoll sein, wenn einzelne Joints z. B. durch Keyframes animierte Winkelanimationen haben, mit denen die FK-Stellung laufend verändert werden soll.

Geht es Ihnen jedoch weniger um die Bewegungsrichtung bzw. Beugungsrichtung der Joints als generell um deren Beweglichkeit, so lassen sich auch Grenzwinkel vorgeben. Werfen Sie hierzu erneut einen Blick in die Kinematik-Rubrik Ihrer Joints. Sie finden dort Einstellungen für Limits. Sofern Sie IK-Lösung 2D verwenden, ist hier nur die Option für H relevant. Die übrigen Winkel werden automatisch u. a. durch die Vorgabe des Polvektors und der 2D-Ebene limitiert. Mit den Werten für Min. W. H und Max W. H können Sie Ober- und Untergrenzen für die lokalen Winkel dieses Joints setzen. Diese minimalen und maximalen Winkel beziehen sich immer auf die Bevorzugten Winkel. Wundern Sie sich also nicht, wenn Sie wie in dem Beispiel der Abbildung 6.17 eigentlich den Pitch-Winkel des Knies limitieren wollen und dafür die H-Winkel in den Limits benutzen müssen.

Animation in Cinema 4D - Limitierung von Joint-Winkeln

Abbildung 6.17: Limitierung von Joint-Winkeln

Bedenken Sie zudem, dass sich die Limitierungen der Beweglichkeit eines Joints auch auf die Beweglichkeit der darüber eingruppierten Joints auswirken können. Sie können dies an der Abbildung 6.17 gut erkennen. Dort wurde die Beweglichkeit des Knies eingeschränkt. Bei einem bevorzugten P-Winkel von ca. -41° ergibt sich durch Min W. H -10° und Max W. H 45° ein Bewegungsraum des Knies zwischen -31° und -86°. Obwohl nur das Knie Joint-Objekt limitiert wurde, ist davon auch der Oberschenkel betroffen. Dessen Neigung orientiert sich ebenfalls an diesen Grenzstellungen, obwohl es sich beliebig drehen und die Distanz zum Zielobjekt dadurch verkürzen könnte. Es wird also so getan, als läge das Ziel-Objekt auf der Linie zwischen Start- und Ende-Joint der IK-Kette und wäre von der Entfernung zum Start-Joint so korrigiert, dass sich nur mindestens oder höchstens die Winkel ergeben können, die bei den Limits des Knies verwendet wurden. Dies ist sicherlich praktisch, schränkt Sie jedoch bei der Animation organischer Wesen auch ein. Die IK-Berechnung kann zudem bei der Nutzung mehrerer Joint-Objekte mit Limits ungenauer werden. Ich würde derartige Beschränkungen daher eher für die Animation von mechanischen Bauteilen verwenden, wo wir es oft mit festen Drehwinkeln und Anschlägen in Gelenken zu tun haben. Die Joints lassen sich dann so verwenden, wie Sie es z. B bereits bei den Dynamics-Konnektoren gesehen haben.

Nachdem die 2D IK-Berechnung basierend auf der FK-Stellung, einem Polvekor und auf Wunsch den Bevorzugten Winkeln nun behandelt wurde, können wir uns die Unterschiede zu IK-Lösung 3D genauer ansehen. Tatsächlich sind die Unterschiede bei einfachen Joint-Hierarchien, wie z. B. unserem Bein nicht zu erkennen. Die Bevorzugten Winkel werden auch hier ausgewertet, um eine neue Orientierung der Joints zu berechnen, um das Ziel am Ende der IK-Kette möglichst exakt zu treffen. Mit IK-Lösung 3D fällt jedoch die Berechnung der 2D-Ebene und auch eines Polvektors komplett weg. Die Joints können sich daher völlig frei bewegen, um das Ziel zu treffen. Bei kurzen Ketten, wie der unsrigen mit nur zwei beweglichen Joints wird das Ergebnis nahezu identisch zu IK-Lösung 2D ausfallen. Lediglich die Rotation der Bones um ihre Längsachsen könnte unterschiedlich ausfallen, weil wie gesagt kein Polvektor berechnet wird. Ganz anders sieht es jedoch aus, wenn die Kette aus mehr Joints besteht und dabei nicht alle Joints in einer 2D-Ebene liegen. Beachten Sie dazu die linke Einblendung in Abbildung 6.18.

Animation in Cinema 4D - Unterschiedliche Ergebnisse mit IK-Lösung 2D und IK-Lösung 3D

Abbildung 6.18: Unterschiedliche Ergebnisse mit IK-Lösung 2D und IK-Lösung 3D

Dort wurde unser Beispiel so erweitert, dass nun insgesamt fünf Joint-Objekte in der Kette liegen. Der Schattenwurf auf der hinterlegten Ebene soll Ihnen vermitteln, dass diese Joints sich zuerst seitlich abknicken und dann wieder im zweiten Abschnitt zur Ebene zurückgeführt werden.

Aufgrund der bereits erläuterten Berechnung bei IK-Lösung 2D kommt es damit zu einem Polvektor der senkrecht auf der Strecke zwischen dem Joint mit dem IK-Tag (blaue Kugel) und dem Ende der Kette steht (violettes Null-Objekt). Die Richtung des Polvektors ist zudem durch die Lage des ersten Joints vorgegeben, der nicht auf dieser grünen Verbindungslinie liegt. Dies wäre wieder der mit der roten Kugel markierte Joint. Die 2D-Bewegungsebene ist also nicht mit der hinterlegten Ebene der Abbildung 6.18 identisch. Diese Ebene habe ich nur wegen der Schattenbildung dort platziert, um Ihnen ein räumliche Gefühl für die Anordnung der Joints zu vermitteln. Die eigentliche 2D-Ebene für die 2D IK-Berechnung verläuft durch den roten Pfeil des Polvektors und die grüne Verbindungslinie zum Anfasser am Ende der Kette. Wenn wir nun das Ziel weiter entfernen, streckt sich die IK-Kette. Die Joints können sich dabei aber nur in Richtung des berechneten Polvektors abknicken. Folglich streckt sich der erste Joint noch wie gewünscht, die nachfolgenden Joints verschwinden jedoch plötzlich hinter unserer Schatten-Ebene. Da dort andere Winkelrichtungen in der FK-Pose bzw. den Bevorzugten Winkeln vorhanden waren, werden diese Richtungen von IK-Lösung 2D ignoriert bzw. einfach unverändert gelassen. Dies ist recht gut an der mittleren Einblendung von Abbildung 6.18 zu erkennen. Wenn Sie nun jedoch am IK-Tag auf IK-Lösung 3D umschalten, erhalten wir ein Ergebnis, wie es ganz rechts in der Abbildung 6.18 zu sehen ist. Die gesamte Joint-Kette dreht und streckt sich in alle Richtungen, um dem Ziel am Ende möglichst nahe zu kommen. In den meisten Fällen können wir diese Erkenntnis also so zusammenfassen, dass die IK-Lösung 2D besonders zuverlässig und einfach mit IK-Ketten aus nur einem oder zwei beweglichen Joints funktioniert. Falls nötig kann dort mit einem Limit für den H-Winkel gearbeitet werden, um gezielt die Beweglichkeit einzuschränken. Die zweidimensionale Bewegungsebene ist zudem mit vielen organischen Gelenken an Menschen und Tieren vergleichbar. Der zusätzliche Polvektor, den wir gleich noch besprechen werden, gibt Ihnen zudem alle Optionen, die 2D-Ebene beliebig auszurichten und zu animieren.

Mit IK-Lösung 3D erreichen Sie präzisere Ergebnisse, wenn es Ihnen um die Animation komplexerer Ketten mit vielen Joints geht, die nicht alle in einer 2D-Ebene liegen. Die Rotation der einzelnen Joint-Objekte in der Kette kann jedoch nicht immer vorhergesehen werden. Es wird immer eine Lösung gesucht, bei der die Distanz zum Ziel minimal verkürzt wird. Hierbei kann helfen, die Limits an den Joint-Objekten zu verwenden, um z. B. Rotationen um die Längsachse zu beschränken. Mit IK-Lösung 3D werden alle drei Optionen für H, P und B ausgewertet. Die minimalen und maximalen Winkel werden auch dabei wieder in Bezug zu den Bevorzugten Winkeln gesetzt und können hier die Beweglichkeit auf allen drei Achsen regeln. Die Berechnung der IK-Lösung kann dadurch jedoch träger werden und ggf. auch an Präzision verlieren, wenn viele Limits für die Joint-Rotationen in einer komplexen Joint-Kette benutzt werden. Ein guter Kompromiss kann dann die Nutzung von IK-Lösung 2D sein, wenn längere Joint-Ketten in kurze Abschnitte unterteilt werden. Sie können dann für alle Abschnitte unterschiedliche Polvektoren und Ziel-Objekte verwenden, was eine optimale Kontrolle über die Lage der Joints sicherstellt.

Kommen wir also noch einmal kurz zum Thema Polvektor zurück. Wir haben bereits gelernt, dass dieser bei IK-Lösung 2D automatisch berechnet wird. Bei IK-Lösung 3D entfällt dessen Berechnung, da sich dabei die Joints in alle Richtungen frei bewegen können. Die Richtung des Polvektors orientierte sich dabei an der Verbindungslinie zwischen dem Joint mit dem IK-Tag und dem bei Ende definierten Joint-Objekt. und zeigte senkrecht dazu in die Richtung des ersten Joints, der nicht auf dieser Linie lag (siehe auch Abbildung 6.16).

Diese Richtung kann jedoch auch von uns individuell verändert werden, wenn Sie in den Tag-Einstellungen des IK-Tags unter dem Abschnitt Polvektor eine Drehung ungleich 0° verwenden. Das Knie unseres Versuchsaufbaus lässt sich damit also einfach nach innen oder außen drehen. Dabei wird nicht nur die Lage der Joints durch den Polvektor verändert, sondern auch deren Achsensystem ggf. gedreht. Wir haben dabei über das Achse-Menü verschiedene Achsrichtungen der Joints zur Wahl, die sich parallel zur Richtung des Polvektors anordnen sollen. In der Einstellung Achse Auto sucht sich das IK-Tag selbst eine Joint-Achse aus, die in Richtung der Polvektors zeigt. Alle Joints dieser IK-Kette zeigen dann mit der gleichen Achse in diese Richtung, sofern dies bei der berechneten IK-Stellung der Joints möglich ist. Wenn die Richtung des Polvektors also z. B. senkrecht auf der Richtung eines Bones steht, wird es natürlich schwierig mit einer eindeutigen Ausrichtung dieses Joint-Objekts. Es kann dann zu sprunghaften Rotationen um 180° um die Längsachse des Joints bzw. Bones kommen. Derartige Stellungen sind also möglichst zu vermeiden. Ansonsten können Sie aber auch selbst die Achse vorgeben, die an den Joint-Objekten für die Ausrichtung parallel zum Polvektor benutzt werden soll. Die Abbildung 6.19 zeigt Ihnen dazu ein Beispiel, wobei links die Y- und rechts die X-Achse gewählt wurde. Der rote Pfeil deutet jeweils die Richtung des Polvektors an. Beachten Sie, dass dies alles nur dann zuverlässig funktionieren kann, wenn die Achsen der Joints zuvor einheitlich ausgerichtet wurden. Zudem sollte natürlich vermieden werden, diejenige Achse auszuwählen, die der Längsachse der Joints bzw. Bones entspricht. In der Regel wird dies die Z-Achse der Joint-Objekte sein.

Animation in Cinema 4D - Ausrichten der Joint-Achsen zum Polvektor

Abbildung 6.19: Ausrichten der Joint-Achsen zum Polvektor

Ist Ihnen bei der IK-Lösung 2D die Verwendung des unsichtbaren Polvektors und des Drehung-Werts zu umständlich, können Sie auch ein separates Objekt im Dialogbereich des Polvektors am IK-Tag zuweisen oder mit einem Klick auf die Polvektor-Schaltfläche ein neues Null-Objekt erzeugen und automatisch als Objekt im Tag eintragen lassen. Die gedachte Verbindungslinie zwischen dem Joint mit dem IK-Tag und diesem Polvektor-Objekt gibt dann die Richtung vor, an der sie die gewählte Achse der Joints ausrichten. Dies eröffnet Ihnen natürlich zusätzliche Optionen für die Animation. da dieses Objekt unabhängig von den Joints im Objekt-Manager gruppiert werden kann und sich auch einfacher animieren lässt als der Drehung-Wert des IK-Tags.

Beachten Sie zudem, dass die Entfernung zwischen den Joints und dem Polvektor-Objekt keinen Einfluss auf die Ausrichtung der Jointachsen hat. Nur die Richtung, in der das Polvektor-Objekt relativ zum Joint mit dem IK-Tag liegt wird ausgewertet. Die Abbildung 6.20 weist Sie zudem darauf hin, dass die Darstellungsart des Polvektors nach der Zuweisung eines Objekts nun über die Darstellung-Einstellungen des IK-Tags vorgegeben werden kann. Bei Keine entfällt die Zeichnung einer Verbindungslinie zum Polvektor-Objekt.

Animation in Cinema 4D - Ausrichten der Joint-Achsen zum Polvektor

Abbildung 6.20: Optionen für die Darstellung des Polvektors

Mit Polvektor Root erscheint die Linie zwischen dem Joint-Objekt, welches das IK-Tag trägt (der Root-Joint) und dem Polvektor-Objekt. Bei der Einstellung Polvektor Joint beginnt die Linie hingegen erst am Ende des ersten Bones. Für die Ausrichtung der Joints und die Berechnung der 2D-IK hat dies alles keine Auswirkung. Beachten Sie zudem, dass mit IK-Lösung 3D kein Polvektor berechnet oder zugewiesen, und auch die Achse der Joints nicht gezielt beeinflusst werden kann. Sie können jedoch auch in diesem Modus über den Drehung-Wert des IK-Tags die Ausrichtung der IK-Stellung der Joint-Kette beeinflussen. Kommen wir nun zu den etwas exotischeren Einstellungen der Joint-Objekte und des IK-Tags (siehe Abbildung 6.21).

So kann z. B. die Wirkung des Ziel-Objekts auf die IK-Berechnung so verändert werden, als läge das Ziel-Objekt aus Blickrichtung des Root-Joints (das Joint-Objekt mit dem IK-Tag) weiter entfernt oder näher dran. Sie können diese Entfernung über den Wert für Ziel Offset am IK-Tag variieren. Nur bei einem Ziel Offset von 100% wird die exakte Position des Ziels für die IK-Berechnung genutzt. Bei kleineren Werten verkürzt sich der Abstand zum verwendeten Zielpunkt entlang der grünen Anfasser Linie entsprechend. Da auch Werte über 100% möglich sind, kann auch ein weiter in Richtung der grünen Linie entfernt liegender Zielpunkt simuliert werden. Die Abbildung 6.21 stellt bei ansonsten unveränderten Objekt-Positionen die Wirkung verschiedener Einstellungen für den Ziel Offset gegenüber. Dabei ist das schwarze Null-Objekt mit der Hexagon-Form jeweils als Ziel für die IK-Kette definiert. Auch diese Funktion steht Ihnen sowohl für IK-Lösung 2D als auch für IK-Lösung 3D zur Verfügung.

Animation in Cinema 4D - Offset des Ziel-Objekts

Abbildung 6.21: Offset des Ziel-Objekts

Stauchung und Dehnung

Bislang haben wir die IK-Berechnung immer so beobachten können, dass sich dadurch nur die Winkel zwischen den Joints veränderten. Tatsächlich können wir aber auch die Längen der Bones und somit die Abstände zwischen den Joints verändern. Das IK-Tag nennt diesen Effekt Stauchung und Dehnung, wobei im Prinzip ja nur eine Verkürzung oder Verlängerung der Abstände in der IK-Kette gemeint ist. Sobald die Joint-Objekte dann an eine Geometrie gebunden sind, führt der Effekt jedoch tatsächlich dazu, dass sich eine Figur, bzw. das entsprechende Körperteil, z. B. zusammenstaucht oder in die Länge zieht. Sie kennen derartige Effekte sicherlich aus Comic-Animationen, wo sich die Dimensionen von Charakteren fortlaufend verändern können. Aber auch bei technischen Animationen, z. B. von Bauteilen aus Gummi, könnten derartige Effekte hilfreich sein. Lassen Sie uns daher einen Blick auf die entsprechenden Einstellungen werfen und entfalten Sie die Einstellungsrubrik für Stauchung und Dehnung, die Sie in den Tag-Einstellungen des IK-Tags finden können. Die Abbildung 6.22 stellt diese Parameter im unteren Teil des Dialogs dar. Dabei spielt es keine Rolle ob Sie die IK-Lösung 2D oder 3D verwenden. Die Einstellungen sind für den Effekt Stauchung und den Effekt der Dehnung im Prinzip identisch. Stauchung gibt prozentual an, wie stark sich die Joints verkürzen können, wenn der Zielpunkt des Ende-Joints näher an den Root-Joint herangezogen wird. Entsprechend ist Dehnung für die Verlängerung der Joints zuständig, wenn Ziel weiter entfernt wird.

Animation in Cinema 4D - Stauchung und Dehnung-Einstellungen eines IK-Tags

Abbildung 6.22: Stauchung und Dehnung-Einstellungen eines IK-Tags

Um beide Optionen testen zu können, habe ich ein Bein für unsere Joints gewichtet. Sie hatten in diesem Zusammenhang bereits die Umwandlung der Bone-Abnahmen und die anschließende Zuweisung eines Skin-Objekts für die Deformation benutzt. Weitere Werkzeuge für die Erstellung und Verwaltung von Wichtungen lernen Sie etwas später natürlich noch kennen. In Abbildung 6.23 erkennen Sie so z. B. links und in der Mitte die ursprüngliche Anordnung der Joints in der Geometrie eines menschlichen Beins, sowie die Verteilung der Wichtungen für die beiden Bones. Ganz rechts in Abbildung 6.23 ist das Ergebnis zu sehen, nämlich dass die Bein-Geometrie anschließend mit den Joints und natürlich über deren inverse Kinematik animiert und deformiert werden kann.

Animation in Cinema 4D - Testszene für den Stauchung und Dehnung-Effekt des IK-Tags

Abbildung 6.23: Testszene für den Stauchung und Dehnung-Effekt des IK-Tags

Ganz links in Abbildung 6.24 erkennen Sie ein zu erwartendes Ergebnis, wenn das IK-Tag mit Dehnung 0% konfiguriert und das Ziel-Objekt weit nach unten gezogen wird. Die Joint-Objekte behalten dabei ihre ursprünglichen Abstände voneinander und können sich nur soweit diese es ermöglichen an das Ziel annähern. Wenn Sie nun die Dehnung über 0% anheben, lässt sich die Länge der Bones in solchen Situationen auch strecken. Das Typ-Menü hinter dem Dehnung-Wert gibt dann an, wie diese Verlängerung der Bones auf die deformierte Geometrie übertragen werden soll.

Animation in Cinema 4D - Auswirkungen der verschiedenen Typ-Einstellungen für die Dehnung

Abbildung 6.24: Auswirkungen der verschiedenen Typ-Einstellungen für die Dehnung

Die entsprechenden Wirkungen sind ebenfalls in Abbildung 6.24 zu sehen. Beim Typ Position wird die Verzerrung des Beins erst ab dem zweiten Joint sichtbar, also dem Knie. Der Wichtungsbereich des Oberschenkels bleibt unverzerrt, da sich die Position des Hüfte-Joints nicht verändert (daher der Name dieses Modus). Erst ab dem Knie baut sich langsam eine Dehnung der Geometrie auf. Die Gesamtlänge der Dehnung an der Geometrie ist daher immer kleiner als die Gesamtlänge der gedehnten Bones. Also auf den Punkt gebracht ändern sich nur dort Längen an der Geometrie, wo sich Positionen von gewichteten Joints verändern.

Bei der gleichmäßigen Skalierung wird die Längenveränderung der Joints gegenüber ihrer ursprünglichen Länge prozentual umgerechnet und dann auf eine gleichmäßige Skalierung der Geometrie umgerechnet. Unser Bein aus Abbildung 6.24 wird folglich seine Form behalten und einfach nur insgesamt größer. Beim Typ Bone-Skalierung fällt diese Gleichmäßigkeit weg. Die Geometrie wird einfach nur in Längsrichtung der Bones mitgenommen und auch nur in dieser Richtung gedehnt. Der Umfang des 3D-Beins bleibt dadurch also an den entsprechenden Stellen gleich. Werden die Bones doppelt so lang, wird also auch das Bein doppelt so lang, ohne seinen Durchmesser zu verändern. Anders beim letzten Modus, der Volumen-Skalierung. Hier wird ein massives Objekt simuliert, also so getan, als wäre unser Bein z. B. aus Gummi. Streckt man Gummi, so wird es nicht nur länger, sondern auch dünner. Exakt dieser Effekt ist ganz rechts in Abbildung 6.24 auch zu beobachten. Beachten Sie in allen Modi, dass nur bei Dehnung 100% immer die gesamte Distanz bis zum Ziel-Objekt durch die Bones abgedeckt wird. Sie haben jedoch auch in diesem Modus die Möglichkeit, eine Höchstgrenze für die Verlängerung zu definieren. Dazu aktivieren Sie die Begrenzen-Option und können dann eine maximal zulässige Entfernung eintragen. Damit ist die größte Entfernung des Ziels vom Ende-Joint gemeint, bei der das Ende der Joint-Kette bei einer Dehnung von 100% noch das Ziel erreichen kann. Entfernen Sie also das Ziel noch weiter von der Position des Ende-Joints ohne Dehnung als hier eingetragen, kann selbst eine Dehnung von 100% nicht mehr dazu führen, dass die Bones sich bis zum Zielpunkt strecken können.

Diese Prinzipien und Modi wiederholen sich nun noch einmal identisch für die Stauchung. Diese kommt also nur dann zum Einsatz, wenn das Ziel näher an das Root-Joint herangeschoben wird. In Abbildung 6.25 können Sie dazu links die Ausgangsstellung und rechts daneben die Auswirkungen auf die Verkürzung der Distanz zum Ziel erkennen. Besonders deutlich wird nun in der Typ-Einstellung Position, dass tatsächlich nur der Bereich des gewichteten Knies skaliert wird.

Animation in Cinema 4D - Die Stauchung einer IK-Kette

Abbildung 6.25: Die Stauchung einer IK-Kette

Ansonsten verhalten sich wie gesagt die übrigen Einstellungen identisch zum Dehnung-Effekt. Sie haben zusätzlich noch die Option, die Dehnung oder Stauchung individuell pro Joint-Objekt zu kontrollieren. Dies betrifft dann also sowohl die Längenveränderung des Joints als auch die dazugehörende Skalierung der verformten Geometrie. Sie finden dazu ein Beispiel in Abbildung 6.26. Dort wurde unser Bein zuerst durch die Verwendung von Stauchung 100% mit dem Typ Volumen-Skalierung und durch das Heranrücken des Zielpunkts für den Ende-Joint gestaucht, so wie es dort ganz links zu erkennen ist. Anschließend wurde der Hüfte-Joint selektiert. Sie finden in den Kinematik-Einstellungen der Joints einen Wert für Dehnung. Wird dieser unter 100% gesenkt, reagiert dieses Joint-Objekt und dessen Bone entsprechend weniger stark auf eine Dehnung, wie auch auf Stauchung. Die Bildfolge in Abbildung 6.26 stellt entsprechend dar, wie sich das schrittweise Absenken des Dehnung-Werts am Hüfte-Joint auf die Form des Beins und natürlich auch auf die Stellung der Joints auswirkt. Die IK-Stellung der Joints wird natürlich ebenfalls durch eine Veränderung der Bone-Längen beeinflusst.

Animation in Cinema 4D - Individuelle Stauchung der Joints

Abbildung 6.26: Individuelle Stauchung der Joints

Sowohl Dehnung, wie auch die Stauchung lassen sich ebenfalls mit der Abnahme der Joint-Objekte benutzen, wenn Sie z. B. keine Wichtungen verwenden möchten. Dabei werden jedoch die Abnahmebereiche ebenfalls in ihrer Größe verändert. Dies kann vor allem beim Typ Volumen-Skalierung problematisch werden, da darüber auch der Querschnitt der Abnahmeform beim Dehnen reduziert wird. Es können dann Teile der Geometrie plötzlich außerhalb der äußeren Abnahmebegrenzung liegen und dann nicht mehr von der Verformung durch die Joints korrekt erfasst werden. Die anderen Typen für Dehnung und Stauchung sind da weniger problematisch, da dabei jeweils der Radius der Abnahme konstant bleibt oder proportional mit der Geometrie mitwächst.

Abschließend zur Betrachtung der Kinematik-Rubrik der Joints sprechen wir noch kurz über den Wichtung-Regler, den Sie direkt oberhalb des Dehnung-Reglers finden können. Dieser ist eigentlich dazu gedacht, die Auswirkungen der IK-Berechnung pro Joint steuern zu können. Werte unterhalb von 100% sollen dazu führen, dass sich die Ausrichtung des entsprechenden Joints wieder stärker an der FK-Stellung orientiert. Tatsächlich kann ich die Nutzung dieses Parameters jedoch nicht empfehlen, denn es scheint zu Sprüngen in der Joint-Ausrichtung zu kommen. Lassen Sie diesen Wert daher besser bei 100% und versuchen Sie in solchen Situationen über die Limits die Beweglichkeit des Joints einzuschränken.

Über den Autor

Dieses Tutorial ist ein Auszug aus dem CINEMA 4D-Kompendium zur Animation von Arndt von Koenigsmarck. Das komplette C4D-Kompendium mit über 950 Seiten Know-how als Download (PDF) gibt es hier: CINEMA 4D-Kompendium – Die Animation.

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

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Folgende HTML-Elemente sind erlaubt:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>