Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!
Zadejte Vaši e-mailovou adresu:
Kamarád fotí rád?
Přihlas ho k odběru fotomagazínu!
Zadejte e-mailovou adresu kamaráda:
3D grafika
Kompletní animace v Blenderu podruhé (3. část): Mimika a dokončení rigu
14. července 2009, 00.00 | V uplynulých dvou dílech našeho seriálu jsme vytvořili postavičku jménem Steve, otexturovali ji a vytvořili rig na nohou. V dnešním díle Steva nachystáme pro animaci, což znamená dokončení rigu na zbytku těla a vytvoření mimiky.
Bez nějakých větších průtahů můžeme rovnou navázat tam, kde jsme posledně skončili. Začneme tedy tvořit rig na rukou, a to tak, že přidáme oběma dlaním IK solver a délku řetězce nastavíme na 2:
Také je důležité nastavit rotační limity pro všechny kosti v řetězci. Např. takové rameno tedy bude pouze omezeno ve všech (XYZ) směrech, kdežto loket bude mít zakázánu rotaci kolem osy X a bude omezen v dalších směrech - jak jinak, než podle citu a vlastního uvážení.
Pokud nyní zapohybujeme solverem, děje se vše podle očekávání, ovšem příliš velký ohyb v lokti vyvolá nehezkou deformaci:
Nejvhodnějším řešením tedy bude ošetření pomocí Shape Keys. Ohneme tedy loket do krajní polohy a z klíče Basis vytvoříme nový, např. loket.ohyb. Abychom si usnadnili práci na pravé ruce, zapneme X-Axis mirror a vertexy se tak budou přesouvat jak na pravé, tak na levé ruce. Nyní tedy přesuneme vertexy tak, aby tvořily "hezkou" deformaci.
Jaké opodstatnění měl X-Axis mirror? Je to jednoduché: nyní jednoduše nastavíme vertexové skupiny leva a prava, přičemž každá z nich bude zabírat jednu polovinu těla. Poté pouze zkopírujeme klíč loket.ohyb (přidáním nového Shape Key při vybraném loket.ohyb) a působnost originálu omezíme na levou polovinu těla, působnost kopie pak na pravou (nebo opačně, pokud by se nechtěly vertexy chovat tak, jak by měly, což se stalo v mém případě). Omezení působnosti na určitou vertexovou skupinu jsme si již osvětlili ve článku Přehled nových funkcí v Blenderu 2.44: část 1..
Nyní budeme chtít, aby se Shape key projevoval pouze pokud se loket ohne, z toho důvodu přidáme další pomocné kosti. První taková pomocná kost bude stretchovat od ramen ke dlaním:
A evidentně nám opět nezbyde nic jiného, než zopakovat postup s koleny - tedy přidat další pomocnou kost, nastavit jí Action Constraint na základě předem vytvořené Akce a poté ji nechat řídit Shape Key. Pro podrobnosti odkazuji na předchozí díl.
Lokty tedy máme ošetřeny proti nežádoucím deformacím:
Nyní nás čeká animování prstů. V první řadě bude potřeba upravit kosti na prstech v Edit módu. Jak? Jednoduše tak, že přesuneme "klouby" mírně nahoru, abychom Blenderu usnadnili rozhodování, kterým směrem má ohýbat prsty. Připomínám jen, že články prstů jsme vytvořili rozdělením jedné kosti, proto se oba články nacházejí v jedné přímce.
Na konec každého prstu přidáme IK solver:
A v případě potřeby doladíme jednotlivé vertexové skupiny na každém prstu, abychom při ohybu dosáhli aspoň "přijatelné" deformace.
Příklad úpravy vertexové skupiny na ukazováčku
A takhle vypadá Stevova zaťatá pěst:
Přitom existuje ještě způsob, jak si usnadnit práci s IK solvery. Přidáme další pomocné kosti na prsty, tentokrát již poslední. Budou to hlavní kontrolory pohybu prstů. Je třeba je zarovnat přesně na začátek a konec každého prstu:
Pak už stačí ostatní kosti schovat např. do jiné vrstvy a ponechat si jen ty, s nimiž budeme model ovládat. Teď můžeme škálováním, či rotováním, podél některé z lokálních os (přes Manipulátory) poměrně snadno a efektivně ovládat animaci:
Nakonec jen nadřadíme kost dlan kontrolorům, aby se i ony pohybovaly, když budeme pohybovat solverem na ruce. Pro klid v duši můžeme prstům nastavit limity a celý postup zopakujeme na druhé ruce (pokud jsme volili vhodné názvy, nebude problém kosti duplikovat, zrcadlit, přehodit jejich názvy a upravit rodičovské vazby). Bude také vhodné upravit váhu vertexových skupin na ruce, aby při otočení dlaně nepřesahovaly vertexy meshe dlaně přes model trika:
Pro dlaň
Pro loket
Pokud se nám nelíbí zúžení předloktí, můžeme vytvořit další Shape Key, který bude řízen rotací kosti dlan.L (maximální hodnoty dosáhne, pokud se dlaň otočí o ±90°):
Co se rukou týče, už nám chybí jen určit směr, kterým se budou orientovat lokty. I na tohle existuje jednoduchý lék. Zarovnáme kurzor na loket, přidáme kost, posuneme ji za Steva, podřídíme jí kosti trapez a nastavíme ji jako Pole Target kosti ovládající předloktí:
Poslední úprava, která nás na těle čeká, je nastavení váhy obou "trapézových kostí" na meshi hlava na 0,5 a vyextrudování krku dovnitř do těla:
A v téhle chvíli již můžeme udělat takřka libovolnou pózu. Steve bohužel není žádným gymnastou, ale do jisté míry na tom má podíl jeho velká hlava.
Máme před sebou v podstatě poslední část - mimiku obličeje. K animaci mimiky je vhodné použít Shape Keys a Armatury jako jejich ovladače. Nejprve bychom tedy měli vytvořit jakýsi neutrální výraz, z nějž budou vycházet ostatní grimasy.
Pozn.: aby byly rty u sebe, je třeba k sobě přiblížit obě "řady zubů" a zvednout bradu
Opět využijeme triku s vertexovými skupinami, které rozdělují obličej na pravou a levou polovinu:
Nyní přidáme do naší Armatury kost, která bude ovládat spodní čelist. Připadat jí pak budou tyto vertexy:
Vypadá to, že když podřídíme spodní řadu zubů stejné kosti jako dolní čelist na meshi hlava, zuby nepůjdou vidět, leda bychom toto ošetřili pomocí Shape Keys. Lze ovšem využít pomocnou kost, která bude částečně kopírovat rotaci kosti celist:
Teď můžeme začít přidávat jednotlivé Shape Keys. Postup bude opět stejný jako u Shape Key na lokti - přidáme klíč a v Edit módu se zaplým X-Axis mirror přesuneme vertexy do nové pozice. Poté klíč zkopírujeme a u každé kopie nastavíme jinou působnost. Příklad úsměvu na Stevově pravé tváři:
Pozn.: je vhodné kontrolovat, jak jednotlivé tvary budou vypadat s otevřenou pusou a podle potřeby je dodatečně vyladit
V téhle chvíli zjistíme, že Stevova topologie nám neumožňuje příliš komfortní práci s obočím. Obočí je přitom také důležitou součástí mimiky, proto jej můžeme přidat do meshe hlava, nastavit mu jiný materiál a přiřadit do skupin leva/prava:
Při práci s obočím pak můžeme přesouvat jak nově vytvořené obočí, tak body přímo na Stevově hlavě. Příklad mračení před rozdělením na pravou/levou polovinu:
Zvýšenou pozornost si zaslouží mrkání: budeme chtít, aby Steve mohl zavřít zvlášť jak levé, tak pravé oko, zároveň ale aby nedocházelo k překrývání vertexů meshe hlava přes oko a také aby mohl mít např. sklopené oči. Co přesně to znamená? Jednoduše mrkání vytvoříme přes Shape Keys, které budou posléze řízeny "kostmi v očním víčku". Proto vytvoříme spodní a horní "půlmrknutí" na každém víčku (a pak je samozřejmě rozdělíme podle polovin hlavy):
Pro kontrolu, jestli nám sedí horní i spodní hranice víčka můžeme vytvořit v IPO Editoru křivky na všechny právě vytvořené Shape Keys na hodnotě 1.0 a porovnat výsledek ve 3D okně:
Nyní se můžeme vrhnout na zakostění očí. Jak jsem již předeslal, mrkání bude ovládáno dvěma kostmi, samotné oko pak jednou. Základní setup má tedy takovouto podobu:
Téměř kompletní setup pak zahrnuje dva IK solvery, které budou ovládat víčka (na obrázku vybrané kosti), jednu kost, která bude nadřazená solverům (na obrázku svislá kost na kraji oka) a ještě jednu, kterou bude oko sledovat:
Po nastavení potřebných Constraints vybereme model hlavy a přepneme se do IPO Editoru, kde vytvoříme ovládací křivky pro mrkání víček. Příklad pro mrkání horního levého víčka:
Pokud nyní budeme škálovat kost nadřazenou solverům, oko se bude zavírat. Nadřadíme horizontální kost oku a nakonec můžeme ještě schovat pomocné kosti do jiné vrstvy a vytvořit nějaký pěkný Custom Bone Shape:
Co se očí týče, ještě nemáme zcela vyhráno. Máme nastavený cíl, který bude každé oko sledovat, ovšem i tak si můžeme práci usnadnit. Přidáme pomocnou kost mezi oči, podřídíme jí kosti hlava a nadřadíme ji oběma cílům:
Pokud touto kostí pohybujeme, oba cíle se pohybují také. Když budeme kost škálovat podle osy Z, cíle se budou přibližovat/oddalovat, díky čemuž bude Steve šilhat.
Poslední věc, kterou na očích provedeme, bude ovládání roztahování čočky. Přidáme si tedy další kost na střed čočky před oko a vytvoříme na oku Shape Key - Basis bude mít zorničku staženou a druhý klíč roztaženou. IPO driverem tohoto Shape Key pak bude škálování nově vytvořené kosti. Tentokrát nám bohatě postačí jeden ovladač na obě oči:
Další použití Custom Bone Shape
A teď přejdeme k ovládání mimiky úst a obočí. Na Stevovi je vytvořených zhruba třicet pohybů obličeje s tím, že čtyři z nich jsou polomrknutí očí.
K ovládání těchto pohybů nám opět budou sloužit další pomocné kosti, tentokrát ovšem s využitím drobné lsti. Jedna kost tak bude moct ovládat čtyři Shape Keys jen za využití změny polohy na lokálních osách Y a Z. Vtip spočívá v tom, že zarotujeme kost o 45° a záležitost tak získá trochu jiný rozměr, viz obrázek:
Z obrázku už je patrné, proč jedna kost může pouze při pohybu v rovině ovládat čtyři klíče - po obou osách v kladném i záporném směru. Konkrétně např. kladně po ose Y bude Steve zvedat svůj pravý koutek, kladně po ose Z pak levý, při pohybu do záporných hodnot bude koutky svěšovat. Přidáme postupně ovladače na každý pohyb, který jsme za pomoci Shape Keys definovali a mimiku máme téměř vyřešenou.
Nutno dodat, že uvedený postup se zarotováním kosti má jednu nevýhodu, a sice že nemůžeme vzájemně kombinovat Shape Keys, které jsou na stejné ose ovládány jeden záporným a druhý kladným směrem. V tomto případě raději použít další pomocnou kost, nebo využít jiný parametr (např. škálování) - záleží čistě na vkusu a potřebě orientovat se ve vlastní práci. A takhle vypadá "ovládací technika" Stevovy mimiky:
A nyní přijdou na řadu vylepšení rigu v zájmu cartoonu. Nejznámějšími cartoonovskými prvky animace jsou různá ohnutí všech možných částí těla, změna proporcí nebo deformace typu rozplácnutí, nafouknutí atp. Nejprve se podíváme na uši. Samotná změna proporcí zde nebude příliš nutná, ovšem Steve by mohl mít gumové uši - tzn, že uši se budou kývat při nárazech, pohupovat se, když bude Steve chodit atd. Nejsnadnějším způsobem automatizace takovéhoto prvku bude využití Softbodies. Připomínám, že byly podrobně rozebrány zde. Na hlavě tedy můžeme vytvořit skupinu neohebne, která bude využita jako Softbody GOAL:
Důležité je nastavit, aby u sebe vertexy pevně držely. Já jsem nastavil Softbodies takto:
A výsledná deformace uší:
Pozn.: kvůli urychlení výpočtu je vypnuto SSS
Dalším způsobem, jak vylepšit rig jsou ony deformace, o kterých jsme hovořili před chvílí. Budeme chtít například ohnout předloktí do oblouku. Vyvstává otázka, jak toho co nejefektivněji dosáhnout? Jednoznačně přes Modifikátory. Výhodně můžeme využít Lattice, ovšem pokud budeme chtít ohýbání do křivky, Lattice by nemusela zcela vyhovovat. Curve Modifikátor ovšem také není zcela dostačujícím, protože nějakým způsobem ovlivňuje celý podřízený objekt (i když definujeme vertexovou skupinu, kterou má ovlivňovat). Použijeme tedy obojí. Lattice bude deformovat Mesh a křivka bude deformovat Lattice.
Pozn.: definování vertexové skupiny (popř. vytvoření nové), kterou bude Lattice deformovat, je více, než na místě, protože jinak by Lattice deformovala celý Mesh
Budeme chtít ovládat křivku přes Armaturu, proto křivce v Edit módu přidáme CTRL+H Hook a vybereme Add, To New Empty. Tím jsme vytvořili Hák (Empty objekt), kterým stačí pohybovat v Object módu a křivka se bude deformovat:
Nyní už jen vytvoříme pomocnou kost, které bude podřízen Empty objekt a jsme hotovi. Stejně tak můžeme animovat deformaci kterékoli jiné části těla, já jsem se spokojil s deformací rukou a hlavy. Důležité je také podřídit jak křivku, tak Lattice kosti, která je relevantní k části Meshe, kterou Modifikátory deformují. Jinak by se např. při pohybu IK solverem ruky pohybovaly kosti, ale ne křivka a Lattice, takže by docházelo k opravdu nehezkým deformacím.
Tímto bych zakončil dnešní díl - Steve je kompletně připraven na animaci, které se budeme věnovat v příštím díle. Těším se na shledanou.
Tématické zařazení:
-
23. dubna 2014
Konica Minolta přenesla výhody velkých zařízení do kompaktních modelů
-
11. května 2014
-
23. května 2014
Epson na konferenci Droidcon Berlin ukázal nové možnosti čekající na vývojáře OS Android
-
24. listopadu 2014
-
13. května 2014
Samsung NX3000: retro styl, špičkový výkon a snadná konektivita v jednom přístroji
-
30. listopadu 2014
Nový fotoaparát α7 II: první plnoformát s pětiosou optickou stabilizací obrazu na světě
-
15. prosince 2014
Konica Minolta pomůže živnostenským úřadům s digitalizací dokumentů
-
11. května 2014
-
26. listopadu 2014
Canon Junior Awards již posedmé ocení mladé fotografy v rámci Czech Press Photo
-
21. srpna 2014