Animatie 9 Skeleton en Ik

1. Skeleton

Een andere manier van deformatie is door middel van een skeleton. Geometrie kan voorzien worden van bones en gebogen worden op de draaipunten van de bones, de joints. Natuurlijk worden bones gebruikt bij Character Animation, je kunt ze echter veel breder toepassen. Bijvoorbeeld een pomp, een moter of een vliegwiel.

Wanneer je met de Joint Tool een bonestructuur tekent:

  • Hoofdmenu Animation: Skeleton->Joint Tool.
  • Maak een side view of front view full screen.
  • LMB klik op verschillende plaatsen.
  • Druk op Enter om te voltooien.

Tip:

Om de display grootte van de joints te regelen ga je naar Display->Animatie->Joint Size..

Je ziet nu joints verbonden door bones. Deze joints hebben de volgende eigenschappen:

  1. De 1e joint is de top van de hiërarchie: wanneer je deze transleert of roteert gaat alles mee.
  2. De joints functioneren als rotatiepunten: wanneer je roteert gaat gaat de chain onder mee.
  3. Wanneer je transleert ( behalve joint1 ), wordt de bone voor de geselecteerde joint langer.
  4. Een joint wordt bij creatie georiënteerd naar de volgende joint met een bepaalde locale as, default de x-as.
  5. Joints zijn niet zichtbaar in rendering.

Boven: Rotatie en Translatie van joints. Onder: local axis display, de joints x-as wijzen naar de volgende joint

Transformatie

Eigenlijk gedragen joints zich zoals elke hiërarchische structuur. Maak maar eens 3 spheres en groep deze onder elkaar. Met translatie en rotatie vertonen ze hetzelfde gedrag. In feite is een bonestructuur een puur hiërarchische. Het volgende voorbeeld illustreert dit nog eens.

  • Maak met de Joint Tool een joint chain van 2 joints, druk op enter.
  • Deselecteer alles door op het lege scherm te klikken.
  • Activeer de Joint Tool opnieuw en teken een 2e chain.
  • Selecteer de 1e joint van chain 2 en selecteer de laatste joint van chain 1.
  • Parent (p).


Wat opvalt is dat bij een parent operatie er een bone gecreeërd wordt. Dus in plaats van Skeleton->Connect Joint kun je volstaan met parenting om joints te verbinden.

Tip:

Hoewel je joints kunt scalen, werkt translate X eveneens als scaling. De grootte van de joints blijft dan hetzelfde.

Oriëntatie

Wanneer je een joint transleert, verandert de oriëntatie niet mee; de joint blijft wijzen naar de oorspronkelijke positie. Ook is het zo dat de x-as wel wijst naar de volgende joint, maar de andere assen kunnen totaal verschillend staan. Dit kan nogal irritant zijn wanneer je een chain hebt waarbij de ene joint een positieve waarde nodig heeft en de andere joint een negatieve waarde om dezelfde kant op te draaien. Daarvoor kun je joints handmatig oriënteren.

  • Selecteer de 1e joint van de chain.
  • Display de local axis door naar component mode te gaan (toolbar) en
  • Bij de selection masks op het vraagteken te klikken.
  • Nu kun je een axis selecteren en roteren of
  • Met de rotatietool actief waarden intypen in de invoervelden van de toolbar.

Vertakkingen

In een hiërarchie heb je vaak allerlei vertakkingen. Bij een skelet is dat niet anders. Je kunt door de jointchain navigeren door de pijltjestoetsten te gebruiken. Vertakkingen kun je maken door verschillende chains te parenten, maar ook zo:

  • Teken 4 joints, druk nog niet op Enter.
  • Ga met pijltjestoets Up 2 joints terug.
  • Teken nu weer joints door te klikken.

Vaak worden het complexe structuren, dit skelet bevat slechts 27 joints, karakters bevatten vaak meer dan 100 joints.

Tip:

Voordat je bijvoorbeeld een been parent aan de rug, kun je deze eerst nog dupliceren. Gebruik daarvoor Mirror Joint. Stel in de optiebox het gewenste vlak waarover je wilt spiegelen.

2. Inverse Kinematics

De kracht van bone-structures schuilt in inverse kinematics, afgekort als IK. Normaal gesproken controleert de bovenste node in een hiërarchie hoe er bewogen wordt. Deze vorm van animeren heet Forward Kinematics, oftewel FK. Met IK bepaalt een lagere node de beweging. Dit gaat door middel van IK-handles. Een solver zorgt voor de berekening van de beweging die nu ontstaat.

  • Maak met 4 joints een been, zet een joint voor de heup, knie, hiel en teen.
  • Zorg dat de knie een gebogen stand heeft.
  • Activeer de Skeleton->IK Handle Tool.
  • Klik eerst op de heupjoint, vervolgens op de hieljoint.
  • Test de Ikhandle door deze te bewegen met de Move Tool.

Rotate Plane Solver

Rotate Plane IK Solver en Single Chain Solver

Standaard zijn er 3 soorten IK-solvers. De solver uit het voorbeeld is de ikRPSolver, de Rotate Plane Solver. Bovenaan zie je een cirkel. In dat vlak kan de joint ronddraaien. Dit gebeurt met het Twist attribute op de Ikhandle. Wanneer je optiebox selecteert bij de IK Handle Tool, kun je ook voor de ikSCSolver, de Single Chain Solver kiezen. Hierbij heb je geen twist-mogelijkheid.

Deze 2 solvers werken het best met 3 joints, waarbij de middelste joint het scharnier is. Met 2 joints gaat ook goed, maar met meer dan 3 joints, kun je beter kiezen voor spring IK of spline IK.

Spring IK Solver

Dit werkt goed op meer dan 3 joints, bijvoorbeeld een insectenpoot. Spring Ik lijkt uiterlijk op Rotate Plane Ik, maar solved anders. Spring Ik dient eerst geactiveerd te worden, voordat het gebruikt kan worden. Dit gaat als volgt. Typ in de Commandline, links onder in de interface:

ikSpringSolver

En druk op Enter. Nu kan je ikSpringSolver kiezen bij de opties van de Ik Handle Tool.

Spring IK Solver

Spline IK Solver

Hierbij wordt een curve gebruikt als deformer. De vorm van de curve bepaald de stand van de joints. Gewoonlijk wordt dit gebruikt voor buigzame dingen, zoals staarten, ruggen, grashalmen en tentakels. Hierbij worden over het algemeen veel meer joints gebruikt dan in ledematen als armen en benen.

  • Teken met de Joint Tool een stuk of 10 joints op ongeveer gelijke afstand van onder naar boven.
  • Kies Skeleton->Ik Spline Handle Tool.
  • Druk voor de zekerheid op Reset Tool.
  • Klik nu op de onderste joint en vervolgens op de laatste joint.

Wat als eerste opvalt is dat het bewegen van Ikhandle geen effect heeft. Dat klopt ook, want de curve zorgt voor de beweging. De curve is echter een stuk rigide geometrie. Wanneer we willen dat de joints goed gaan bewegen, dan moet de curve op zijn beurt gedeformeerd worden. Gewoonlijk gebeurt dat door Clusters te maken van de CV’s van de curve.

  • Selecteer de curve die verschenen is bij het maken van de Spline Ik.
  • Ga naar component mode (expliciet, anders selecteer je steeds iets verkeerds)
  • RMB->Markermenu links->Control Vertex.
  • Selecteer de eerste CV.
  • Create Deformers->Cluster.
  • Herhaal dit bij alle CV’s
  • Test de jointchain door de clusters te bewegen.

Spline IK met Clusters op de Curve die de beweging controleren.

Van IK naar FK en andersom

Soms is iets makkelijker met IK te animeren, maar soms is FK weer makkelijker. Het is van tevoren niet altijd te voorspellen en het hangt ook af van de persoonlijke voorkeur van degene die animeert. Het is mogelijk om geanimeerd te switchen tussen IK en FK animatie. Op elke Ikhandle zit het attribute IkBlend. Wanneer IkBlend 1 is werkt de IK, wanneer deze 0 is, is de IK uitgeschakeld en kun je de joints roteren en keyframen. Wanneer je IkBlend over tijd naar 0 animeert, krijg je een vloeiende overgang van IK-animatie naar FK-animatie.

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