Reversed Foot

Inverse Kinematics

De Reverse Foot is goed voorbeeld van het gebruik van “Inverse Kinematics”, afgekort als IK. Bij IK wordt een hiërarchie vanuit de onderste node gecontroleerd. Dit staat tegenover Forward Kinematics, afgekort als FK. Daarbij wordt de bovenste node gebruikt om de hiërarchie te animeren. Dit is de standaard situatie in Maya. Voorbeeld: Een object ‘deurknop’ is gegroept onder een object ‘deur’. Wanneer we deur roteren (open doen) beweegt deurknop als vanzelfsprekend mee. Bij IK zouden we juist de deurnop bewegen, waarbij de deur meebeweegt.
De laatste situatie kunnen we makkelijk bereiken door een expressie of door de transformaties van de deur aan de deurknop te linken.
Bij karakteranimatie ligt dat iets ingewikkelder, het gaat niet alleen om lineaire beweging, we hebben met gewrichten te maken, die een bepaalde bewegingskarakteristiek hebben.
We maken gebruik van bone-structuren. Dit zijn aan elkaar gekoppelde rotatiepunten, joints geheten. Tussen de joints verschijnen de bones. Het geheel heeft veel weg van bottenstructuren zoals die van ons eigen skelet. Niet verwonderlijk dat de jointtool onder het skeleton-menu te vinden is.
Maya kent verschillende IK-solvers. Deze solvers berekenen in realtime de typische IK-bewegingen, zoals een arm- of voetbeweging.

  • De Single Chain Solver controleert tussenliggende rotatiepunten (joints) bij verplaatsing van de onderste node.
  • De Rotate Plane Solver voegt hier nog de mogelijkheid aan toe om te twisten, het draaien om de eigen as.
  • De IK-Spline Solver controleert de hele bone-structuur via een nurbs-curve.

Bone Setup

In een sideview tekenen we  met de jointtool de bone-structuur van een been, we beginnen met de heup, dan de knie, de hiel, de bal van de voet en tot slot de teen. We geven de correcte, in de scène unieke, namen:

hipJoint,  kneeJointankleJointheelJoint (optioneel), ballJoint en toeJoint.

Let op de licht gebogen stand van de knie, dit zorgt ervoor dat de IK straks de goede kant op solved. Ball- en toeJoint zijn 100% recht ten opzichte van elkaar, gebruik gridsnapping (x) hiervoor.

De hiel is wel een rotatiepunt, maar heeft geen actieve rol in de IK. We kunnen er voor kiezen de hiel op te nemen in de bone-structuur, maar we kunnen de hiel ook weglaten. In het geval we de heelJoint opnemen in de bone-structuur, dan zetten we in de Attribute Editor, bij Joint, Degrees of Freedom uit, door x, y, z te unchecken.

IK Setup

  • Ga naar Animation →Skeleton→IK Handle Tool →Optiebox. Zet current solver op ikRPsolver, de rotate plane solver.
  • Klik eerst op hipJoint vervolgens op ankleJoint.
  • Noem de IkHandle legIK.  Nogmaals naar de optiebox van de IK Handle Tool.
  • Zet de solver op IKSCsolver, de single chain solver.
  • Maak een handle van de ankleJoint naar de ballJoint.
  • Noem deze balIK.
  • Maak er nog één van de ballJoint naar de toeJoint.
  • Deze handle krijgt toeIK als naam.

Hierarchy Setup

Door uitgekiend met parentnodes (grouping) te werken, kunnen we tot de juiste bewegingsmogelijkheden komen.

  • Selecteer legIK en Edit→Group deze. Kies de Move Tool en druk insert. Plaats de pivot met point-snap (v) op de ballJoint en noem deze groep peelHeelGrp.
  • Test de beweging door een x-rotatie: de hiel komt vanuit de ballJoint omhoog. Druk hierna nogmaals insert, om terug te keren naar de normale Move Tool.
  • Selecteer balIK en toeIK en groep deze samen en noem deze liftToeGrp. Plaats de het pivotpoint eveneens op de ballJoint.
  • Test de beweging met een x-rotatie: de teen beweegt omhoog en omlaag.
  • Maak een groep van liftToeGrp en liftHeelGrp en noem de groep toePivotGrp. Zet de pivot op de toeJoint.
  • Test de bewegingen met een x- en y-rotatie: op de teen staan en het been draaien vanuit de teen.
  • Groep de toePivotGrp en noem deze heelPivotGrp en plaats de pivot op de heelJoint, of als je die niet gebruikt op de plaats van de hiel.
  • Test de beweging met een x- en y-rotatie: de voet gaat omhoog vanuit de hiel en een twist vanuit de hiel.
  • Als laatste en bovenste groep maken we de footGrp. Plaats het pivotpoint op de ballJoint, dat is ongeveer het centrum van de voet. Deze groep gebruiken we om de hele voet te bewegen.

Control Object

Het werk is feitelijk gedaan, we hebben een reversed foot. Alleen de bediening laat  te wensen over. Een control-object waar alle bewegingen in zitten is wat wij willen.

Een curve voldoet uitstekend, maak een rechthoek met een lineaire curve om het grondvlak van de voet. Zet de pivot op de Balljoint en een ModifyFreeze Transformations.  Rename de curve naar footCTRL.

In de channel box Middlemouse drag de node onder footGrp, heelPivotGrp naar footCTRL. Delete de lege footGrp.

Ga naar Window General EditorsChannel Control en verplaats Translate en Scale xyz en Visability naar non-keyable.

We gaan nieuwe attributes toevoegen, met namen die iets zeggen over de soort beweging die deze attributes besturen. Daarvoor openen we het dialoogvenster om attributes toe te voegen: Modify→Add Attribute.

Vul de liftToe bij naam in en zet min op -10, max op 10 en default op 0. Zorg dat het datatype float is.

Maak verder op de volgende attributes:

peelHeel met waarden      min 0                max 10             default 0

standToe met waarden      min 0                max 10 default 0

twistToe met waarden      min -10 max 10             default 0

standHeel met waarden      min 0                max 10             default 0

twistHeel met waarden      min -10             max 10             default 0

Als laatste maken we een switch voor IK-FK blending, zodat we kunnen wisselen tijdens het animeren tussen FK en IK. Hier maken we een attribute IKFK met als waarden min 0, max 10.

Reversed Foot schema

Set Driven keys

Nu nog de control-attributes verbinden met de juiste waarden en de reverse foot is helemaal klaar. Daarvoor is het makkelijkst driven keys te gebruiken.

liftToe

de tenen draaien naar onder en naar boven vanuit de middenvoet.

  • Ga naar Animation→Animate→Set Driven Key→Set-option box.
  • Selecteer  footCTRL en klik op driver.
  • Highlight liftToe.
  • Selecteer liftToeGrp en klik op driven.
  • Klik bij  driver op liftToe en bij driven op rotateX.
  • Druk op de key-button.
  • Zet nu de waarde van liftToe op -10
  • Roteer liftToeGrp over zo’n 45 graden
  • Klik de key button.
  • Zet nu de waarde van liftToe op 10
  • Roteer liftTeenGrp over -45 graden en druk op key.
  • Test de beweging door in de channelbox  liftToe te selecteren en te scrollen met de MMB (virtual slider).

peelHeel

De hiel komt vanuit de middenvoet omhoog. Dit staat ook wel bekend als de “foot roll”.

  • Driver is footCTRL.peelHeel
  • Driven is peelHeelGrp.rotateX
  • Druk de keybutton bij peelHeel=0, peelHeelGrp.rotateX=0
  • Zet peelHeel op 10, peelHeelGrp.rotateX op ongeveer 30 graden
  • Druk de keybutton
  • Test de beweging door peelHeel te  MMB te scrollen

standToe

Op de tenen staan.

  • Driver is footCTRL.standToe
  • Driven is toePivotGrp.rotateX
  • Druk key bij de nulwaarden
  • Zet toePivotGrp .rotateX op ongeveer 30 graden
  • Zet footCTRL.standToe op 10
  • Druk de keybutton
  • Test de beweging door standToe MMB te scrollen

twistToe

Draaien van de voet met de teen als draaipunt.

  • Driver is footCTRL.twistToe
  • Driven is toePivotGrp.rotateY
  • Druk key bij de nulwaarden
  • Zet toePivotGrp.rotateY op ongeveer 60 graden
  • Zet footCTRL.twistToe op 10
  • Druk de keybutton
  • Zet toePivotGrp.rotateY op ongeveer -60 graden
  • Zet footCTRL.twistToe op -10
  • Druk de keybutton
  • Test de beweging

standHeel

De voet gaat omhoog met de hiel als draaipunt.

  • Driver is footCTRL.standHeel
  • Driven is heelPivotGrp.rotateX
  • Druk key bij de nulwaarden
  • Zet heelPivotGrp.rotateX op ongeveer 35 graden
  • Zet footCTRL.standHeel op 10
  • Druk de keybutton
  • Test de beweging

twistHeel

Draaien van de voet met de hiel als draaipunt.

  • Driver is footCTRL.twistHeel
  • Driven is heelPivotGrp.rotateY
  • Druk key bij de nulwaarden
  • Zet heelPivotGrp.rotateY op ongeveer 80 graden
  • Zet footCTRL.twistToe op 10
  • Druk de keybutton
  • Zet heelPivotGrp.rotateY op ongeveer -80 graden
  • Zet footCTRL.twistToe op -10
  • Druk de keybutton
  • Test de beweging

IKFK

Switch tussen Inverse Kinematics en Forward Kinematics

  • Driver is footCTRL.IKFK
  • Driven zijn legIK.ikBlendtoeIK.ikBlend en ballIK.ikBlend
  • Zet  footCTRL.IKFK op 10
  • Druk de keybutton
  • Zet  footCTRL.IKFK op 0
  • Zet de ikBlend attributes op 0
  • Druk de keybutton

Geef een reactie

Vul je gegevens in of klik op een icoon om in te loggen.

WordPress.com logo

Je reageert onder je WordPress.com account. Log uit / Bijwerken )

Twitter-afbeelding

Je reageert onder je Twitter account. Log uit / Bijwerken )

Facebook foto

Je reageert onder je Facebook account. Log uit / Bijwerken )

Google+ photo

Je reageert onder je Google+ account. Log uit / Bijwerken )

Verbinden met %s