Háromdimenziós modelleket többféle módon animálhatunk. A leggyakrabban alkalmazott módszer a csontokkal történő mozgatás. Ehhez a modell számára létre kell hoznunk egy csontvázat, a csontokat a modell bizonyos darabjaihoz hozzá kell rendelnünk, és végül ezeket a csontokat forgatva, mozgatva animálhatjuk a modellt. Ezt az előzőekben elkészített szék modellen fogjuk demonstrálni, habár elég valószínű, hogy ritkán lesz szükségünk széket ilyen módon mozgásra bírni.
Először is le kell fektetnünk a riggelés alapjait. A riggelés az armature modellhez illesztését jelenti, tehát értelemszerűen szükségünk van hozzá egy modellre és egy armature-re (csontváz). Egy armature egy vagy több csontból (bone) áll. A csontok a térben megadott hosszúsággal, pozícióval és mérettel rendelkező vonalak, amikhez vertexeket tudunk hozzárendelni. Ezeket a csontokat minden szoftver másféle módon jeleníti meg - a Blenderben például jelenleg öt különböző megjelenítési mód közül választhatunk. Ezek használata teljesen ízléstől függ, a működést nem befolyásolja egyik megjelenítési forma sem.
Magát a háromdimenziós modellt térben tudjuk mozgatni, forgatni, méretezni, és ezeket animációban rögzíteni is, de ahhoz, hogy a modell deformálódjon is (például megrázza a lábait külön-külön, vagy ugorjon egyet), csontokat kell használnunk. Minden olyan résznek, amit a többitől függetlenül akarunk mozgatni, szükséges csontot készíteni. Jó példa erre a kézmozgás: a régebbi játékokban maximum a kézfej mozgott külön a kartól, a mostani játékokban pedig többnyire minden ujjpercnek saját csont jut, így lehetővé téve a bonyolult, precíz mozgást.
Kezdésképpen hozzunk létre egy csontot. Object mode-ban nyomjuk meg a [shift + A]
billentyűkombinációt, és a megjelenő menüből válasszuk ki az Armature -> Single Bone-t.
Létrejött a csont, viszont egyelőre semmilyen hatással nincsen a modellre. Ez jó is így, először fejezzük be a csontvázat, és csak utána rendeljük a modellhez.
Mi a B-bone megjelenítési módot használjuk a csontváz létrehozása alatt.
Ezt az első csontot hagyjuk a helyén. A [Tab] gombbal léphetünk be az edit módba, mint a mesheknél is. Ha kiválasztjuk a csont végét a jobb egérgombbal (mint a vertexeknél is), az [E] (extrude) gombbal létrehozhatunk egy ebből a pontból kiinduló új csontot.
A csontok hierarchikus felépítésűek, így az elsőként létrehozott csont a felmenő (parent), és az abból létrehozott csont az utód (child). Ha a felmenő csontot mozgatjuk, minden utódja vele együtt mozog, pont, mint az emberi csontváznál például a felkar és az alkar kapcsolata - ha a felkar megmozdul, az alkar és az ujjak nem maradnak hátra.
Ebben az esetben nem szeretnénk, ha a csontok végei érintkeznének, szóval szedjük ki a Properties -> Bone - Relations alatt a "Connected" kockából a pipát. Így szerkesztéskor egymástól függetlenül mozgatható a két csont, de a hierarchia megmarad, tehát az utód megkapja a felmenő összes mozgását, de tartja az eredeti
távolságot.
A csontot igazítsuk a szék ülőkéjéhez, és állítsuk be a hosszát az eddigiekben megismert mozgatási technikákkal.
A csont hossza és rotációja tulajdonképpen lényegtelen, de érdemes logikusan és átláthatóan beállítani, hogy könnyebb dolgunk legyen animációk készítésekor. A különböző forgatások mindig az eredeti helyzethez képest fognak számítani animálás közben.
Itt már problémát okozhat, hogy a mesh kitakarja a csontokat, és a sötétben tapogatózunk. Ezt egyszerűen orvosolhatjuk: a Properties ablakban -> Armature fül -> Display -> X-Ray dobozát pipáljuk be, így a csont mindenen átlátszik.
Extrudáljuk az ülőke csontját, állítsuk az új csontot is disconnectedre, és igazítsuk a szék jobb első lábához (ami szemből nekünk a bal). Érdemes a csont végét pontosan a padlóhoz igazítani (Z tengely: 0). A csont kiindulópontja az, ami körül forog maga a csont, szóval úgy igazítsuk be a láb kezdetébe, hogy hihető legyen. A pontosság érdekében használjuk a 3D kurzort.
A kurzor menüjét a [shift + S] gombokkal tudjuk előhozni. Itt tudjuk a kurzort a kijelölt vertexekhez igazítani, vagy a középpontba (x0, y0, z0) küldeni. Az alsó eszköztáron beállíthatjuk a 3D kurzort pivot point-nak, ettől minden transzformáció középpontja a 3D kurzor helyzete lesz. Így igazíthatunk csontokat pontosan a kívánt helyre, vagy akár középpontosan tükrözhetjük is őket.
Ha megvan a csont az egyik lábban, a legegyszerűbb az, ha letükrözzük a másik oldalra. Jelöljük ki a csontot és [shift + D]-vel duplikáljuk le. Helyezzük a 3D kurzort a középpontba, és állítsuk be pivot-nak.
Kezdjük el méretezni a kijelölt csontot az [S]-sel. Ha utána begépeljük, hogy "-1", gyakorlatilag áttükrözzük a 3D kurzoron. De mivel most nem ez a célunk, írjuk utána a tengely betűjelét, ami elválasztja a két lábat - esetünkben az [X]. Ezzel az X tengelyre tükrözzük le a csontot, pontosan a másik lábba. Szóval, a lenyomandó billentyűk: [S] [X] [-][1] és [Enter].
Ha kész vagyunk, ne felejtsük el visszaállítani a pivot point-ot median point-ra. A 3D kurzort ugyanígy alkalmazhatjuk modellek szerkesztésekor, csak figyeljünk, mert a modellek kifordulnak türközéskor.
Jelöljük ki a két lábcsontot, és duplikáljuk őket. Az új csontokat toljuk hátra a két hátsó lábba, igazítsuk őket oda pontosan.
Már csak a támla csontjai maradtak, ezeket a két hátsó láb csontjaiból duplikáljuk. Forgassuk el a másolatokat 180 fokkal az X tengelyen, majd igazítsuk őket a támla két oldalsó lécére.
Ha kész a csontváz, nevezzük el a csontokat. Ehhez jelöljünk ki egy csontot, és a jobb oldali viewport eszköztárban az Item kategóriában írjuk át a nevét.
A nevek azért fontosak, mert a programok mindent ezekhez kötnek. Érdemes még azelőtt túlesni ezen, hogy bármi komoly feladatot adnánk a csontoknak.
A centernél elhelyezkedő csont a gyökércsont (root bone). Ez jobb, ha animációkor nem mozog, mivel ehhez viszonyul az összes többi csont. Nem kötelező root bone-t használni, de a tapasztalatunk az, hogy sokkal stabilabban használják így a különböző motorok az animációkat.
A nevek legyenek logikusak, például: Láb1, Láb2, stb. vagy: JobbElsőLáb, BalElsőLáb, stb... Az angol nevek sokszor rövidebbek, kézreállóbbak. A legfontosabb viszont az, hogy ki lehessen rajtuk igazodni.
Ezek után ideje megnézni, hogy rendesen mozognak-e a csontok. Állítsuk át az edit mode-ot pose mode-ra, így a csontváz kék körvonalat kap. Teszteljük le, hogy működik-e a hierarchia, rendesen mozgatják-e a felmenők a leszármazottakat. Egyelőre a modellre még nincs hatással a csontváz, de ha nem tapasztalunk hibát, ugorhatunk is a következő lépésre!
Lépjünk át object mode-ba. Jelöljük ki a széket, majd a [shift] nyomvatartása mellett az armature-t is (legkönnyebb a root bone-ra kattintani, mert az nincs takarásban). Ha jól csináltuk, a széket narancssárga, a csontokat sárga körvonal veszi körül. Nyomjunk [ctrl + P]-t, ami megnyitja a parent menüt. Válasszuk ki ebben az Armature Deform alatt a With Envelope Weights-t.
Ha minden jól ment, az armature-t hozzáparenteltük a székhez, és már kezdetleges súlyozása is van. A vertexsúly egy nullától egyig terjedő érték, ami meghatározza, hogy egy csont milyen mértékben befolyásolja egy vertex helyzetét (0: egyáltalán nem, 1: a vertex teljesen a csonttal együtt mozog). Minden csonthoz létrejött egy Vertex Group, ami tartalmazza a befolyásolt vertexeket. Most már átválthatunk pose mode-ra, és ha forgatjuk a csontokat, láthatjuk, ahogy deformálódik a mesh. Az alap súlyozás egyértelműen nem túl pontos, de ezen most javítunk.
Helyezzük vissza pose mode-ban az elforgatott csontokat eredeti állásukba ([alt + G] - visszaállítja a pozíciót, [alt + R] - visszaállítja a forgatást). Állítsuk át a pose mode-ot weight paint-re. Ettől a szék átvált kékbe, ez a szín a vertexsúlyokat reprezentálja.
Kattintsunk például a jobb első láb csontjára. A színek átváltanak pirosra, narancsra, sárgára, zöldre a csont körül. A piros jelenti az egyes súlyértéket, a kék a nullást, a zöld és sárga pedig a köztes értékeket. Ha két csont mozgatja ugyanazt a vertexet, mindkét csont kimozdulása hat az adott vertexre. Ha az egyik csonton a vertex súlya például 0.7, a másodikon pedig 0.3, akkor a 0.7-es csont fogja jobban mozgatni, de a 0.3-masnak is van némi beleszólása.
A súlyokat festhetjük kézzel ("ecsettel"), ez nagyon részletes modelleknél kifizetődő, viszont esetünkben egyszerűbb lesz az értékeket állítgatni, mert kevés a vertex. Maradjunk weight paint mode-ban, és nyomjunk egy [tab]-ot, amivel átugrunk edit mode-ba. Itt a Properties ablakban keressük meg a Data fület. Alatta megtaláljuk a Vertex Group-okat, amik közt már ki is van jelölve az adott csont group-ja. Itt tudunk vertexeket hozzárendelni a csonthoz, vagy eltávolítani őket tőle.
A súlyozáshoz a csontmegjelenítés módját átváltottuk stick-re, hogy jobban látható legyen a
mesh.
Jelöljük ki a szék ülőkéjét. Egy gyors mód erre az, hogy kijelölünk a felületen egy vertexet, és [ctrl + L]-lel a vertexhez csatlakozó összes többi vertexet is kijelöljük. Ha ez megvan, a vertex groups ablakban nyomjunk a remove gombra. A csont innentől nem fogja ezeket a vertexeket mozgatni. Ugyanezt csináljuk meg az összes többi lábon, mivel nem szeretnénk, hogy bármelyik láb csontja mozgassa az ülőkét.
Ennek az ellentétét tegyük meg az ülőke csontjával - onnan távolítsunk el minden lábhoz tartozó vertexet. Emellett viszont assign-oljuk hozzá az egész ülőkét 1.0-es súllyal, mivel annak nem kell deformálódnia, csak egy az egyben mozognia. Ugyanígy 1.0-es súllyal hozzáadhatjuk a párna alatti léceket is az ülőke csontjához.
A [tab] billentyűvel lépünk ki az edit mode-ból. Súlyozás közben rendszeresen ellenőrizzük a csontok mozgását.
Vannak még problémák, bár mivel egy szék csont alapú riggelése nem éppen kőbe vésett eljárás, vitatható, hogy hogyan is kéne kinéznie a végső változatnak. Azt viszont még meg kell oldanunk, hogy ne látszódjanak lyukas, üres részek a modell mozgatása közben, márpedig a szék lábának a teteje ilyen.
A láb legfelső vertexeiről le kell vennünk a lábcsontok súlyait nullára, majd hozzáadni őket az ülőke csontjához 1.0-ás súllyal. Így a láb nem fog kicsúszni az ülőkéből.
A hátsó lábak súlyozása kicsit komplikáltabb, mivel egyben vannak a támlával. Az ülőke magasságában levő vertexekre 0.75-ös súllyal kell hatással lennie a lábcsontnak és a támlacsontnak is.
A támla vízszintes deszkáira átmenetet kell alkotnunk a két támlacsont között. A támlán lefele a vertexgyűrűk súlyozása lehet 1.0, 0.5 és 0.25, de nyugodtan próbálkozhatunk más értékekkel is.
Súlyozás közben érdemes mozgatni néha a csontokat, hogy lássuk, milyen a modell mozgás közben az adott súlyokkal.
Utolsó lépésként még nézzük át, hogy van-e hibás, rosszul mozgó rész, illetve hosszabbítsuk meg egy kicsit az ülőke alatt lévő vízszintes deszkákat, hogy ne tudjanak kicsúszni a lábakból.
Kész is a rig, a következő postunkban pedig elkezdjük az animációkat!