Kompletní animace v Blenderu podruhé (3. část): Mimika a dokončení rigu - Grafika.cz - vše o počítačové grafice

Odběr fotomagazínu

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:

IK solver na ruce

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í.

Limity na rukou

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:

Špatný ohyb

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.

Správný ohyb

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:

První pomocná kost

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:

Ohnuté lokty

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.

Klouby prstů

Na konec každého prstu přidáme IK solver:

IK solvery na prstech

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 prostředníčku
Příklad úpravy vertexové skupiny na ukazováčku

A takhle vypadá Stevova zaťatá pěst:

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:

Kontrolory pohybu prstů

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:

Ohnuté

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:

Váha skupiny dlan.L
Pro dlaň
Váha skupiny loket.L
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°):

Driver nafouknutí rukávu

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í:

Pole target

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:

Nový krk

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.

A Steve letíííííí

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.

Neutrální výraz
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:

Vertexová skupina leva

Nyní přidáme do naší Armatury kost, která bude ovládat spodní čelist. Připadat jí pak budou tyto vertexy:

Ústa

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:

Copy Rot Constraint

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:

Poloúsměv
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:

Stevovo nové obočí

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:

Mračení

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):

Spodní mrknutí
Horní mrknutí

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ě:

Mrknutí

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:

Základní nastavení oka

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:

Nastavení oka

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:

IPO driver

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:

Mrknutí v akci

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:

Hybatel očí

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.

Šilhání

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:

Široce roztáhlá zornička
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čí.

Animační klíče

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:

Lokální osy Y a Z

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.

Neutrální výraz
Úsměv
Svěšený koutek

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:

Ovládací prvky

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:

Neohebná skupina

Důležité je nastavit, aby u sebe vertexy pevně držely. Já jsem nastavil Softbodies takto:

Nastavení Softbodies

A výsledná deformace uší:

Stevovy ohebné uši
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.

Modifikátory
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:

Hák

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.

Vlna

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í:

 » Rubriky  » VSE  

 » Rubriky  » 3dscena  

 » Rubriky  » Go verze  

 » Rubriky  » 3D grafika  

 

 

 

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: