stretchy IK mit damping und free/fix elbow

von Florian Linner

<< zurück <<

free elbow

>>zum Anfang>>

Der letzte Teil ist das free elbow Feature. Wenn ein Character seinen Ellbogen auf einen Tisch legt und seinen Oberkörper bewegt, ist es fast unmöglich, den Ellbogen still auf dem Tisch zu halten. Um das möglich zu machen, werden wir wieder ein bisschen stretchen. Wir benutzen den pole-vector-ctrl als Handle, um den Ellbogen zu positionieren.
Alles, was wir machen müssen, ist die Joints soweit zu stretchen, dass ihre Länge genau der Distanz zwischen den jeweiligen Handles entspricht. Auf diese Art werden die Joints automatisch genau auf den Handles positioniert.

Wir wollen also die Distanzen zwischen den Handles wissen und die Joints entsprechend stretchen.
Zuerst erstellen wir 2 distanceBetween-Nodes, einen für die Distanz zwischen AB und einen für BC. Aber auch diese Mal messen wir wieder die Handles, nicht die Joints, denn wir wollen ja die Joints entsprechend der Handles stetchen.

Und wieder wollen wir den Prozentsatz gegenüber der ursprünglichen Länge, also erstellen wir zwei mulitplyDivide-Nodes die wir AB_percentage/BC_percentage nennen, verbinden die distance mit input1X und setzen input2X auf die ursprüngliche Länge.

Wenn wir jetzt die outputs von AB_percentage/BC_percentage in md1/md2 stecken würden, wären wir fertig und hätten einen free elbow. Aber wir hätten kein normales IK mehr. Also brauchen wir eine Möglichkeit, um es auszuschalten. Dafür erstellen wir wieder blendTwoAttribute-Nodes, nennen sie free_elbow_dial1/free_elbow_dial2 und verbinden die damp_dial-outputs mit den einen input und die percentage-outputs mit dem Anderen.
Der attributesBlender bekommt einen input von einem neu erstellten Attribute auf dem end_handle, das free_elbow heißt und dann war's das auch schon. Wir haben's geschafft.

<< zurück <<

>>zum Anfang>>