Naar de Oogst-overzichtssite

Meer tutorials door Oogst

Bones tutorial

door Joost van Dongen

Lukt de tutorial niet, zitten er fouten in of heb je iets anders te melden? Mail dan ff naar tsgoo@hotmail.com

Bones zijn erg handige tools voor het animeren van alle vormen van gewrichten: in mensen, in robots, in machines, een veel meer. Bones worden ook wel IK, Inverse Kinematics, genoemd. Het woord inverse hierin slaat erop dat de link-hiërachie is omgedraaid: bij IK heeft ook de child invloed op de parent. Daarom is het nodig te weten hoe gewone, onomgekeerde links werken om bones te kunnen maken.

Normale links

Op het bovenstaande plaatje is te zien hoe twee objecten worden gelinked:
-klik op het link-icoontje (die gele geselecteerd);
-klik op de child met de linker muisknap en sleep naar de parent (aan de streep kun je zien dat het goed gaat).
De parent is het object waaraan gelinked wordt. De child volgt alle bewegingen van de parent. Beweeg, draai en vergroot dus even de parent en zie hoe de child daarop reageert. Beweeg nu de child en zie: de parent reageert helemaal niet! Ook aan de child kun je weer objecten linken, waardoor de child dus ook weer de parent is van een nieuwe child. Zo kun je een hele keten maken en dat is dus erg handig.

Je kunt een object ook weer unlinken met het icoontje rechts van het link-icoontje. Selecteer daarvoor gewoon het gelinkte object, druk op het unlink-icoon en hij is niet meer gelinkt.

Experimenteer er even mee en wen er aan.

Inverse Kinematics (IK)

Bij normale links heeft de child dus geen enkele invloed op de parent. Bij IK daarentegen reageert de parent wel degelijk op de child.

Heb je bijvoorbeeld een been, dan is het bovenbeen natuurlijk de parent van het onderbeen, waardoor je de knie kunt scharnieren. Maar als je nou wilt dat je gewoon de positie van de voet aangeeft en dat de knie dan vanzelf goed draait, dan heb je bones nodig.

Dit gaan we uitproberen, maak daarvoor de volgende eenvoudige scene (of iets dat er op lijkt):

Het lijkt een beetje op een been en we gaan hem dus ook van bones voorzien als een been.

Ga daarvoor dus naar de systems tab, rechts in beeld, en klik op bones, zoals op het plaatje is te zien:

Dei bones leg je in je model en je klikt op elke plek waar een scharnier moet komen. Dat is dus alleen in de knie en op de voet. Stop met bones toevoegen als je bij de voet bent en kijk even of het ongeveer klopt met dit plaatje:

Selecteer de eerste bone in de serie, in de top view was dat bij mij dus de meest linkse.

Klik nu op Animation>>IK solvers>>HI solver, zoals op het plaatje:

Er verschijnt nu een streep vanuit je eerste bone. Klik op de laatste bone in de serie (dat kleine bolletje dus).

Er verschijnt nu een kruisje in die bone met een streep naar de eerste bone. Beweeg het kruisje willekeurig rond en zie dat de bones erop reageren. Dit kan echter ook de verkeerde kant op gaan, zoals je kunt zien op dit plaatje:

Aan de voet te zien kan een knie natuurlijk niet die kant op buigen. Daarom willen we de buigrichting van de knie beperken. Selecteer nu de tweede bone in je serie, die na het kniegewricht, dat is dus deze:

Ga dan naar de hierachy-tab en daaronder de IK-tab, zoals je hier kunt zien:

Zoals je kunt zien zijn er drie rotatie-assen geselecteerd: de X-, Y- en Z-axis. Slecht één van deze assen mag bewegen, want zoals je weet kan een knie ook niet zomaar alle kanten op draaien. Het is van te voren moeilijk te zeggen welke as de goede is, maar bij mij bleek alleen de Z-as te mogen draaien en ik had mijn bones in de top-view aangemaakt. Door alle assen uit te zetten op één na en dan met dat kruisje (de solver) te slepen, kun je zien welke as nog actief is. Bepaal zo welke as het is en zet alle andere assen uit.

Vervolgens wil je instellen dat de knie over die ene as maar een kant op kan buigen. Zet daarvoor bij je as limited aan en stel bij from en to de minimale draaihoek en de maximale in. Bij mij waren dit from=-100 en to=0. De preferred angle moet altijd binnen het bereik liggen, dus die moet bijvoorbeeld op -1.

Beweeg nu de solver, dat kruisje, en zie dat de beweging al klopt, zoals hier te zien is:

Als het niet blijkt te werken, heb je waarschijnlijk óf de verkeerde rotatie-as gekozen, óf moet in plaats van from=-100 en to=0 gaan voor from=0 en to=100, met preferred angle=1.

Nu komt er nog één detail: je moet boxes nog aan je bones koppelen. Zet daarvoor je bones in gestrekte stand en link op de eerder genoemd manier je box aan de bone waar die bij moet horen. Voor de duidelijkheid heb ik er maar even een screenshot van gemaakt:

Als je op deze manier één voor één al je boxes aan de bijbehorende bone hebt gekoppeld, kun je nu gemakkelijk je been animeren door de solver (dat kruisje) te bewegen. Dan kun je deze als volgt animeren:

Filmpje! 139kb

Als laatste detail kun je nog je eerste bone uit de serie linken aan die grote box aan de linker kant, als je dan met die box gaat slepen krijgje ook weer een leuk resultaat, zoals te zien in dit filmpje:

Nog een filmpje! 150kb

Voor wie niet weet hoe hij iets moet animeren: zet de balk onderin beeld op een frame waarop je een bepaald houding wilt hebben, druk op die enorme animate-knop onderin beeld en zet je ding in de nieuwe positie/houding. Druk nu op play en je ziet de beweging.

Als je alle features ervan doorgrondt zijn bones in MAX4 een zeer indrukwekkende animeer-techniek, je kunt er veel meer mee dan hier is beschreven maar dit is toch wel de basis.

Veel plezier verder met MAX en succes,

Joost "Oogst' van Dongen
tsgoo@hotmail.com

Naar de Oogst-overzichtssite

Meer tutorials door Oogst