Animatie 10 Binding

binding

Er zijn 5 methodes in Maya om geometrie met bones te laten meebewegen, alle methodes worden hier besproken. Hier is alvast een kort overzicht.

  1. Parenting– De geometrie wordt in losse delen aan individuele bones geparent, de geometrie buigt dus niet mee met gewrichten. Geschikt voor bijvoorbeeld een robot die uit losse onderdelen bestaat
  2. Constraining – Bijna hetzelfde als parenting, maar door (parent)constraining blijven bones en geometrie in de scene hierarchie gescheiden. Zo hou je beter overzicht en is wijzigen eenvoudiger.
  3. Rigid Bind – De geometrie is nu op (control)vertex-niveau gebonden aan de joints. Bij deze methode worden punten onder de joints verdeeld. Een vertex kan maar bij 1 jont tegelijk horen.
  4. Smooth Bind – Eveneens binding op vertex-niveau, alleen kunnen nu meerdere joints invloed op een vertex hebben. Editen van Smooth Skin gaat voornamelijk met weightpainting.
  5. Interactive Bind – Nieuw in Maya 2011. Het lijkt veel op Smooth Bind, alleen de methode van editen verschilt. De belangrijkste tool hiervoor is de volume-manipulator, die om elke joint zit. Het is een alternatief voor het vaak tijdrovende en soms frustrerende weightpainten.

Parenting


  • Maak het  side of front view actief.
  • Ga naar Skeleton->Joint Tool
  • Teken nu 3 joints van boven naar beneden en sluit af met de enter-toets
  • Maak geometrie, 2 cylinders en een een sphere
  • Plaats de eerste cylinder over de bovenste bone en move en scale zodat deze past
  • Doe hetzelfde met de 2e cylinder op de onderste bone
  • Zet de sphere op het gewricht, scale zonodig.
  • Save de scene, we gebruiken deze ook bij het volgende voorbeeld

Voor deze methode geldt dat de geometrie rigid blijft, deze methode is onder andere geschikt voor robots en machine-onderdelen waarbij de geometrie zelf niet deformeert.

  • Parent nu de bovenste cylinder aan de bovenste joint
  • Selecteer daarbij eerst de cylinder, shift-select de joint, druk op p
  • De sphere aan de middelste joint
  • De onderste cylinder aan de onderste joint
  • Test  het resultaat door de joint1 en joint2 te roteren

Parent Constraining

Deze methode geldt voor dezelfde situaties als de gewone parent-methode. Nu gebruiken we in plaats van een parent te maken, een parent-constraint. In de praktijk merk je weinig verschil met parenting. Het belangrijkste verschil zit echter in de scene-hiërarchie. De joints blijven daar gescheiden van de geometrie. Dat kan een groot voordeel zijn, wanneer er een groot aantal onderdelen zijn, die anders diep verborgen raken in een skeleton-structuur.

  • Laad de eerder opgeslagen scene met de cylinders, sphere en joints
  • Selecteer eerst joint1 (the target) en shift select de bovenste cylinder (object to constrain)
  • Menu Animation: Constrain->Parent Constrain
  • Doe hetzelfde met de andere joints en geometrie
  • Test het resultaat door aan joint1 en 2 te draaien

Rigid Bind

Bij deze methode wordt de geometrie gebonden op (control)vertex niveau. Elke vertex wordt individueel aan een joint toegewezen. De kracht hierin is dat het concept simpel is en editing een kwestie is van de punten onder de joints verdelen is. Ook heeft Rigid Bind een aantal features die niet beschikbaar zijn bij andere bind-methoden, namelijk Flexors.

  • Delete de geometrie zodat alleen de joints overblijven
  • Maak nu een Polygons->Cylinder met Subdivisions Height 20
  • Selecteer joints en cylinder
  • Menu Animation: Skin->Bind Skin->Rigid Bind
  • Test de deformatie door joint2 te roteren

Je ziet nu de beperking van deze bindmethode, er ontstaat een plek waarbij de punten door elkaar heen gaan. Een oplossing hiervoor kan het gebruik van Flexors zijn. Een Flexor is een extra deformer die als een Lattice om de joint of de bone geplaatst wordt. De Flexor kijkt naar de rotatie van de joint en de gebruiker kan de instellingen bij een bepaalde stand instellen. Dat klinkt enigzins vaag, de volgende stappen verhelderen deze uitleg.

  • Breng de rotatie van de joints terug naar 0
  • Selecteer joint2
  • Menu Animation: Skin->Edit Rigid Skin->Create Flexor..
  • Flexor Type Lattice, Checkbox aan: At Selected Joints
  • Druk op Create
  • Roteer joint2 ongeveer 90 graden in X of Z
  • Het valt op dat de deformatie al een stuk beter is
  • Selecteer de Flexor en kijk naar de Channel Box
  • verander nu Creasing en Rounding zodat de deformatie er beter uitziet.
  • Probeer ook de andere attributes uit
  • Roteer nu joint2 terug en beoordeel de deformatie
  • Tweak de flexor totdat je tevreden bent
  • Nu kun je de flexor hiden (CTRL+h), de deformatie gaat voortaan op deze wijze

Een ander soort Flexor is die toegekend wordt op bones in plaats van joints, deze Flexor kent andere attributes maar werkt basicly hetzelfde:

  • Selecteer joint1
  • Create Flexor..
  • Flexor Type Lattice,
  • Checkbox aan: At Selected Bones
  • CheckBox uit: At Selected Joints
  • Druk op Create
  • Zet joint2 weer in gebogen stand en selecteer de nieuwe Flexor
  • Probeer de attributes Biceps en Triceps
  • Test de deformatie

Smooth Bind

Deze vorm van binding is meer geavanceerd dan Rigid Bind. De binding vind eveneens plaats op vertex-niveau maar nu kan een vertex beïnvloed worden door meerdere joints tegelijk. Dit gaat normaal gesproken in gewicht waarvan het totaal 1 is, dat verdeeld wordt onder verschillende joints. Bijvoorbeeld  joint1 0.5, joint2 0.3, joint3 0.2.  Dit concept houdt in dat wanneer je bij joint3 gewicht weghaalt het automatisch ergens anders weer bijkomt, tenslotte moet het totale gewicht weer 1 worden. Dit gebeurt gewoonlijk, tenzij Enable Weight Normalisation uit staat. In dat geval mag het totale gewicht van een vertex groter of kleiner dan 1 worden. Normaliseren betekent terugbrengen naar een schaal van 0 tot 1. Je kunt achteraf je smooth skin weer terugbrengen naar waarden tussen 0 en 1 door Skin-> Edit Smooth Skin->Normalize te gebruiken.

Hou deze theorie in je achterhoofd wanneer je gaat weightpainten. Het is bijvoorbeeld heel goed mogelijk wanneer je een smooth operatie doet op een linkerschouder dat  er opeens ongewenste kleine gewichten zitten op een rechterteen. Verandering in gewicht door middel van een algoritme als smooth in weightpainting houdt een risico in. Maya kan het aantal betrokken joints te ruim nemen, of Maya kan bepaalde gewichten niet kwijt tussen de betrokken joints en verdeelt ze over de overige joints. Als dat gebeurt kan dat het werk van uren in de war sturen, dus blijf op je hoede en controleer de deformatie. Dat betekent overigens niet dat smooth een functie is die onbetrouwbaar is, maar gebruik het gecontroleerd in situaties tussen 2 joints.

Binding

Selecteer de joints en de geometrie tezamen  en Skin->Bind Skin->Smooth Bind. Je mag meerdere jointchains en meerdere meshes tegelijk binden. Ook mag je binnen een chain aangeven welke joints je wilt binden. Ga dan naar de opties van Smooth Bind.

Edit Smooth Skin

Er zijn talloze manieren om je smooth skin te editen. Je vindt alle functies onder Skin->Edit Smooth Skin, zoals Mirror Skin Weights. De belangrijkste functie is Paint Skin Weights, ook toegankelijk onder RMB->Paint->SkinCluster->[name of skincluster].

Component Editor

Zeer nuttig kan het handmatig editen en cleanen van de weights zijn.

  • Selecteer de vertices die je wilt bekijken
  • Ga dan naar Window->General Editors->Component Editor.
  • Kies de tab Smooth Skins

Nu zie je alle betrokken skinclusters plus de weights van de geselecteerde vertices. Je kunt hier ook een skincluster vastzetten. Dat betekent dat de gewichten van die cluster niet veranderd kunnen worden. Zet Hold per cluster on en off. Dit kan overigens ook binnen weightpainting. Stel dat je nu vertices van de rechterschouder hebt geselecteerd en je ziet in de component editor de rechterteen. Selecteer dan alle weights van de rechterteen en typ 0. De cluster verdwijnt dan met de weights uit het display van de Component Editor.

Influence Objects

Flexors zijn niet beschikbaar voor Smooth Skin. Hoewel je vertices kunt selecteren en daar een Lattice Deformer op kunt maken en deze vervolgens met driven keys te laten werken, kun je zo een eigen Flexor creëren. Wat ook mogelijk is, is een Influence object toe te voegen. Dat mag geometrie zijn maar ook een extra joint of locator. Selecteer object en skin en Edit Smooth Skin-> Add Influence. Het object verschijnt nu in de lijst van joints bij weightpainting en kan nu ook zo gebruikt worden.

Interactive Bind

In feite is interactive bind een uitbreiding van smooth bind, maar heeft andere editmogelijkheden. Aanvankelijk doe je in plaats van Bind Skin->Smooth Bind, Bind Skin->Interactive Bind. Je ziet dan een langwerpige manipulator en kleuren die de weight aangeven.

Deze manipulator  is de tool die Interactive Bind onderscheidt van gewone Smooth Bind. Je kunt delen van deze manipulator in en uitduwen en groter en kleiner maken, Selecteer je een andere joint, dan verschijnt daar de manipulator. Inderdaad een snellere manier om te weighten.

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