23/02/2024
Ahogy ígértem a karakter animáció kapcsán írnék néhány sort, tekintvén, hogy rendkívűl érdekes részéről van szó a fejlesztésnek.
A mély tecnikai részletekbe nem mennék bele, legyen elég annyi, hogy több féle megoldása van a képernyőn mozgó szereplők animálásának. Ezeket többnyire úgynevezett skin-ek (bőr) használatával valósítjuk meg, egy adott csontáz mozgása alapján.
Ez a bőrszerű felület nyújtogatás, meglehetősen számítás igényes folyamat is lehet, hiszen minden - a modellt alkotó - csúcsot a hozzá tartozó csont mozgásának megfelelően kell valamilyen mértékben elmozgatni a térben. Egy karakter esetében ez átlag 10 e csúcsot jelent alaphangon karakterenként.
Mivel konkrét célkitűzésem az volt, hogy a játék minnél hatékonyabban futhasson régebbi, vagy gyengébb konfigurációkon is, én egy másik megoldást választottam, méghozzá az un. vertex animációt, ahol a csúcsok pozícióját kulcs-kockánként tároljuk le és az egyes köztes képkockák között átmenetet számolunk. Ez bár több memóriát igényel, de kevesebb számítást is, remélhetőelg így teret engedve a gördülékenyebb futásnak.
Ez így rendben is lett volna és idővel a két megoldást ötvözném a cél érdekében. Viszont ekkor jött a felismerés, hogy a játékmenetből adódóan, cél volna hogy a karakterek "öltöztethetőek legyenek". Illetve egy másik lényeges szempont az is, hogy az adott karakter minnél inkább egyedivé tehető legyen, akár hajviselet, arcszőr, stb. tekintetében.
Ide szerettem volna szúrni egy videót, ahol hagyományos módon a karakterek alapja egy teljesen egybenlévő mesh, amelynek részét képezi a testet borító öltözet és ez alatt nem tartalmaz más rétegeket. (Ez jogos is, hiszen nem látható dolgokat mi értelme volna rajzolni, vagy kezelni).
Viszont, mivel a játékban főhősünk is, mint ahogy az NPC-k is remélhetőleg, más és más ruhadarabokat ölthetnek, esetenként úgy, hogy a polószerű felső ruházatból kilóg a felkar egy része. Ezzel együtt viszont szeretnénk, hogy az adott karakter bőrszíne is meghatározható legyen.
Jelen állás szerint a megoldást abban látom, hogy az alaptestet, több különálló részre kell bontanunk (mellkas, has, csípő, felkar, alkar, kéz, comb, lábszár, lábfej) és amikor egy adott testrészt teljes egészében kitakar egy öltözet, azt a testrész abszolút eltüntetjük, míg a részben látszódót továbbra is megjelenítjük.
A ruházat nem összetévesztendő a testre helyezhető egyéb kiegészítőkkel például váll és térdvédő, öv, alkarvédő stb.
A meztelen valóságot ábrázoló teszt animáción már egy így készült alap karakter látható. A kidolgozottsága természetesen nagyon alapszintű és jól látszanak a törések az egyes tagolási pontokon. Ezeket fogja elfedni az öltözet, amely már hagyományos módon fog készülni.