Animatie 2 Dependencies

1. Pivots

Wanneer je de Move, Rotate en Scale Tool activeert is er bij ieder object een punt waar de tool verschijnt. Dit is het zogenoemde ‘pivotpoint’. Op dit punt kun je het object oppakken, vindt de rotatie plaats om dit punt en ook de scaling gaat vanuit hetzelfde punt.

Om een pivot te veranderen:

  1. Activeer de Move Tool
  2. druk op insert
  3. de Move Tool verandert, nu kun je de pivot verplaatsen
  4. druk nogmaals insert om terug te keren naar de Move Tool

Tip:

Op de Mac wordt in de manual melding gemaakt dat ook de home-toets te gebruiken is. Er zit echter niet altijd een home toets op het keyboard. Een alternatief is dan de toets met de schuine pijl die wijst naar linksonder op de plek waar de page down toets zit op een pc keyboard.

2. Construction History

Een krachtige animatietool is de Construction History in Maya. Om een idee te krijgen hoe dat werkt, maken we eerst kennis met de “Node Architectuur” ook wel “Dependency Graph” genoemd van Maya. Alles in Maya is zoveel mogelijk in blokken, noem het nodes opgedeeld. Elke node heeft een aantal eigenschappen, noem het Attributes, die een waarde hebben,

Deze Attributes zijn met elkaar te verbinden. Dus je krijgt een netwerk van blokjes, waarbij het ene blokje informatie ontvangt van het andere blokje. Een voorbeeld is de checker texture node, waarvan de Outcolor verbonden is met het attribute Color van de shader Phong. Deze connecties kunnen desgewenst verbroken of verandert worden. De vrijheid is erg groot om dit te doen in Maya. Om de structuur te zien, bekijk je het in de Hypergraph of in het geval van een shader in de Hypershade. De Outliner biedt een meer Windows Explorer stijl van hierarchy weergeven.

De hypershade geeft nodes en verbindingen weer

Wanneer je een modelling operatie doet in Maya, wordt die in een lijst bijgehouden. Dit is de Construction History (CH). Zolang je deze niet weggooit, blijft deze bestaan. Niet te verwarren met de Undo lijst, deze verdwijnt zodra je Maya afsluit. Soms is de CH een ballast, bijvoorbeeld met polygonale modelling is het wenselijk om regelmatig de CH te deleten.

We kunnen deze CH echter ook uitstekend gebruiken om iets te animeren. Wanneer we van 2 curves een nurbs surface maken, met behulp van bv. Loft, dan heeft deze ‘Lofted Surface’ Construction History. Wanneer we een punt van een curve bewegen, gaat de surface mee. Totdat je de CH weggooit ( Delete by Type-> Construction History ), dan is de connectie tussen curves en surfaces verbroken.

3. Dependency Graph

Surface met Construction History

Het volgende voorbeeld gaat verder dan de CH alleen. Het is eerder te omschrijven als een samenspel van nodes, die van elkaar afhangen.

  • Maak een rechte curve met behulp van de Create->EP->Curve Tool. Gebruik grid-snap (x ingedrukt houden) en zet 2 punten op het grid.
  • Druk enter om de curve af te maken.
  • Dupliceer de curve (CTRL +d) en verplaats deze naar opzij.
  • Selecteer beide curves en Surfaces hoofdmenu:Surfaces->Loft.
  • Selecteer nu een Control Vertex van een van de curves en beweeg deze. Undo (z) daarna.

De lofted surface volgt de cluster door de Construction History

Je zou de CV kunnen keyframen, maar dat is af te raden omdat deze CV zelf geen Transform Node heeft, dat is de node die je ziet in de Channel Box, met  Translate, Rotate en Scale. Een manier om het correct te doen is door van de geselecteerde punt of punten een Cluster te maken. Dan is de animatie van de CV te controleren door de cluster, die wel een Transform Node heeft. De volgende stappen:

  • Selecteer een van de curves.
  • Zet je pointer in een leeg stukje window (om te voorkomen dat je CV’s van de surface selecteert).
  • RMB->Control Vertex (marker menu-> links).
  • Selecteer een CV.
  • Maak een cluster: hoofdmenu Animation: Create Deformers -> Cluster.

Wanneer je nu de cluster op en neer beweegt zie je dat de surface meebeweegt. De surface is gemaakt door midel van de 2 curves en is afhankelijk van de deze curves, zolang de Construction History behouden blijft.

De lofted surface volgt de cluster door de Construction History

Animatie met Construction History

Zet nu keyframes op de cluster: frame 1 naar beneden, frame 48 cluster naar boven.

  • Test de animatie. Pas zonodig de Animation Preferences aan (playback speed realtime)

Nu maken we een curve op de surface, die de surface volgt en blijft volgen. Deze Curve on Surface maken we op de volgende manier:

Bij Make Live kun je een Curve-on-Surface tekenen

  • Selecteer de lofted surface en Modify->Make Live.  De surface verandert in een groen wireframe.
  • Teken met Create->CV Curve Tool een curve op de surface zoals hieronder.
  • Selecteer niks en zet Make Live uit: Modify->Make Not Live.

Zoals je ziet wanneer je de animatie afspeelt, de Curve on Surface blijft de Lofted Surface volgen. De curve is in de Outliner terug te vinden wanneer je in het menu van de Outliner Display->Shapes aanvinkt. Je vindt curve3 onder de loftedSurfaceShape1.

We hebben nu dus al een geanimeerde curve. Bovenop deze animatie kunnen we weer wat anders doen.

Bijvoorbeeld kunnen we een Motion Path Animatie maken. Daarvoor hebben we nodig een path en een object dat langs het

pad geanimeerd wordt. De curve zal als motionpath gebruikt worden, het object creëren we:

  • Create->NURBS Primitives->Cone.
  • Selecteer curve3 en nurbsCone1.
  • Hoofdmenu Animation: Animate->Motion Paths->Attach to Motion Path.
  • Speel de animatie af.

De cone beweegt zich langs het pad. Maar de cone zit halverwege de surface. Dit is te herstellen door het pivotpoint van de cone lager te zetten zodat hij op de surface staat. Het pivotpoint is het punt dat aan het motionpath vast zit. Wat nu opvalt is dat de cone niet meebeweegt met de surface, maar zich niet oriënteert naar de surface. Kijken we naar de rotatiewaarden zien we dat deze stabiel zijn gedurende de animatie. Ook zien we dat de translatie en rotatiewarden in de Channelbox geel gekleurd zijn, en niet bruin zoals bij keyframes.Een kleur betekent dat het channel bezet is hetzij keyframes (bruin), connecties (geel), zoals nu. Er bestaat ook noglichtblauw, dat betekent een constraint, we vervolgen dit voorbeeld met een constraint. Paars betekent een expressie, een stukje script. Wit betekent uiteraard onbezet en te gebruiken.

4.Constraining

De rotatiewaarden van de cone zijn geel, maar we willen deze toch gebruiken. Daarvoor moet de bestaande connecties verbroken worden:

  • Hightlight  met shift ingedrukt Rotate X,Y en Z ( de woorden, niet de waarden ).
  • RMB->popupmenu: Break Connections.

Nu zijn ze weer wit en te gebruiken voor het volgende: Constrainen aan de richting van de normaal van de surface.

Elke oppervlakte heeft een zogenaamde ‘normaalvector’. Dat is voor te stellen als een pijl die loodrecht op de surface staat.

Onze surface is geanimeerd, dat betekent dat de normaalvector lokaal verschillend is en verandert gedurende de animatie. Wanneer we nu de informatie van de normaalvector kunnen koppelen aan de rotatie van de cone, zou deze zich moeten oriënteren naar de surface.

Dat is precies wat een constraint doet: iets verbinden zodat het ene (slave) het andere (master) volgt. Wat we nodig hebben is de ‘Normal Constraint’. Het enige wat nog lastig kan zijn is het vinden van de gewenste richting. Voor het maken van constraint geldt altijd: selecteer eerst het target(s), dus de master en dan bijselecteren ‘ the object to constrain’ oftewel de slave.

  • Selecteer loftedSurface1 en Shift select nurbsCone1 in deze volgorde.
  • Animation hoofdmenu: Constrain->Normal option box (het kleine vierkantje).

Tip:

Bij constraints is de volgorde van selecteren erg belangrijk: altijd eerst de target en dan het object to constrain.

Als je nu Apply doet, beweegt de cone zich zijdelings over het Motion Path, dus de goede waarden moeten worden ingesteld. De Aimvector staat op 1 0 0 . Dat betekent dat de X-as van de cone in de richting van de normaal van de surface gaat staan. Wij willen juist de Y-as van de cone de normaalrichting van de surface geven: dan vullen we in bij Aimvector: 0 1 0 en apply.

Het kan zijn dat cone nu onderaan de surface zit. De normaalvector van surface zit maar aan één kant, dus deze kan best naar beneden wijzen. In dat geval zou de Aimvector  0 -1 0 moeten krijgen.

5. Conclusie

Het is duidelijk dat alles kan samenhangen en dat je gebruik kunt maken van andere objecten, hetzij door Construction History of door het maken van connecties met andere nodes. Deze opzet van nodes is zo gemaakt om flexibel en open te zijn. Het geeft de vrijheid om zelf te bepalen wat je met elkaar wilt verbinden of welke informatie je wilt opvragen om daar weer iets mee te doen. Het is de grondgedachte van de makers van Maya.

Wat is er nu feitelijk geanimeerd?

  • De cluster heeft keyframes.
  • De cone is op het motionpath geanimeerd.

De rest beweegt mee:

  • De surface hangt af van de curve ( de clusteranimatie).
  • De curve-on-surface hangt af van de surface.
  • De oriëntatie van de cone hangt af van de surfacenormaal.

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