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
Blender tutoriál: Animace mimiky obličeje v Blenderu (1. část)
9. února 2010, 00.00 | Každý, kdo se zabývá animací postav, jistě někdy potřeboval ztvárnit emoce své postavy. Tyto lze vyjádřit i pomocí pohybu těla, ale nejúčinějším je využití obličeje. V tomto dvoudílném článku se budeme zabývat právě vytvořením této mimiky. Tutoriál by měl zvládnout i méně zdatný uživatel, pokud má alespoň základní znalosti ovládání Blenderu.
Animace mimiky obličeje je velice důležitá pro vyjádření pocitu a emocí animované postavy. Existuje několik metod jak animovat mimiku, my se zaměříme na možnost vložit do obličeje systém kostí, které ji budou animovat. Pro tuto animaci budeme potřebovat model hlavy, případně lze použít i celkový model postavy. Důležité je, aby oči nebyly pevnou součástí modelu. V případě, že se nechcete zdržovat s tvorbou takového modelu, můžete použít mnou upravený model, který byl původně exportován z aplikace MakeHuman a můžete jej stáhnout ZDE.
Hlava
Armatura, kterou budeme vytvářet, logicky vychází ze základní biologické stavby kostry a svalů člověka. Konstrukci hlavy člověka tvoří především lebka, a tak začneme kostí, která bude suplovat její funkci. Lebka navazuje na páteř někde v oblasti zátylku a tam tedy umístíme první kost. Přidáme ji přes Mezerník nebo Add >> Armature do míst zátylku.
Poté se přepneme do Edit módu (Tab) a této kosti nastavíme vlastnosti. X-Axis Mirror zajistí, že bude možno vytvářet zrcadlově obrácené kosti, což nám značně ulehčí práci při dalším vytváření kostí a X-Ray umožní to, že kost je viditelná v meshi (modelu), což je výhodné, protože kost nemusíme pracně hledat. Po nastavení těchto parametrů označíme horní kloub vytvořené kosti a klávesou E z ní vyextrudujeme další kost, která bude mít sklon čelisti. Tuto nově vytvořenou kost označíme, tlačítkem Con v menu Armature Bones ji odpojíme od své rodičovské kosti a přesuneme na pozici čelisti asi tak, jako na následujícím obrázku. Obě kosti nyní pojmenujeme v menu Armature Bones jako Hlava a Celist. Ačkoliv jsme pevné spojení mezi kostmi přerušili, čelist stále zůstává dědicem od hlavy a tak se bude pohybovat při každém pohybu hlavy, což potvrzuje i čárkovaná čára mezi těmito kostmi.
Kosti jsou tedy hotové, aby mohly nyní deformovat model, musíme jim přiřadit deformační skupiny. Přepneme se do Object módu jak na armatuře, tak i na modelu. Označíme model hlavy, poté kost hlavy a po stisku Ctrl + P vybereme možnost Armature a dále Don’t Create Groups, tím se armatura přidá do modifikátorů meshe.
Nyní označíme armaturu a přepneme se do Pose módu (pokud je totiž armatura v Pose módu, lze při Weight Paintingu přepínat mezi deformačními skupinami pouhým vybráním příslušné kosti) a následně označíme mesh, přepneme se v Móde menu do Weight Paint módu a v menu Paint nás budou zajímat tyto položky: Weight nastavuje váhu, kterou bude mesh deformován, čím menší váha, tím méně bude mesh na pohyb kosti reagovat. Dále Size, což je velikost štětce. A práci nám ušetří tlačítka Vert Dist, X-Mirror a Clear, první z nich ovlivňuje zda malujeme váhy volně a nebo po polygonech (plochy ohraničené jednotlivými vertexy), druhé zajišťuje zrcadlové nanášení váhy, takže v podstatě stačí nanést váhy jen na polovinu a druhá se dotvoří automaticky a třetí smaže veškeré namalované váhy dané skupiny.
Přejděme nyní k vytváření vah našeho modelu. Jsme tedy ve Weight Paint módu a máme označenu kost hlavy, vypneme tlačítko Vert Dist a zapneme X-Mirror, začneme malovat plnou váhou na hlavu. A vidíme, že v menu Link and Materials se automaticky vytvořila deformační skupina vertexů jménem Hlava. Jelikož nemáme vytvořenou páteř, přiřadíme hlavě i krk, takže v podstatě celý model hlavy by měl být červený. Nejsme však schopni označit například zuby, které jsou uvnitř modelu, takže pohneme s kostí hlavy do některé strany a onačíme kusy meshe, které ještě nejsou přiřazeny a tak zůstanou na původním místě. Kost vrátíme na původní místo klávesami Alt + G.
Oči a víčka
V Edit módu znovu označíme horní kloub kosti Hlava a pomocí kláves Shift + E z ní vyextrudujeme dvě zrcadlově obrácené kosti, jednu po druhé označíme a opět tlačítkem Con odpojíme od hlavy. Pokud budeme manipulovat s jednou kostí, druhá bude zrcadlově kopírovat její pohyb, označíme tedy jen jednu kost a pomocí kláves G pro pohyb, S pro zmenšování/zvětšování a R pro rotaci kosti přesuneme do pozice očí tak, aby začínaly uprostřed bulvy a končily na čočce oka. S výhodou lze používat také kláves X, Y, Z například u pohybu, neboť se tím pohyb omezí pouze na příslušnou osu.
Po přesunutí nově vytvořených kostí a jejich pojmenování (Oko.r a Oko.l) se v Mode menu přesuneme do Pose módu, označíme oko, poté příslušnou kost a stiskem Ctrl + P vyvoláme menu Make Parent to, kde vybereme možnost Bone, to zajistí pohyb oční bulvy současně s touto kostí. Analogicky provedeme postup i pro druhé oko. Označíme armaturu a přepneme se do Edit módu, označíme horní kloub jedné z kostí oka a E extrudujeme další kosti. Tlačítkem Con je odpojíme od rodičů a pojmenujeme je OkoCil.r a OkoCil.l neboť tyto kosti budou cílem na který se bulvy zaměří.
V bočním pohledu a Edit módu označíme horní kloub kosti hlavy, E + Y vyextrudujeme kost, kterou pojmenujeme jako Cil a tlačítkem Con odpojíme od hlavy. Abychom kosti přesně zarovnali označíme cíle, očí vytvořené v předchozích krocích a kombinací kláves Shift + S vyvoláme menu Snaps, ve kterém označíme možnost Cursor -> Selection a v menu Pivot nastavíme 3D Cursor, to nám nastaví kursor na požadované místo. Nyní označíme kost Cil a opět klávesami Shift + S vyvoláme menu, ve kterém pro změnu vybereme možnost Selection -> Cursor , tím se kost dostane přesně na místo, kde ji chceme mít. Označíme cíle jednotlivých očí, poté kost Cil a stiskneme Ctrl + P, následně vybereme možnost Keep offset, poté přesuneme všechny tři kosti před obličej.
Přepneme se do Pose módu, označíme OkoCil.l a Oko.l, poté stiskneme Shift + I a vybereme možnost To Aktive Bone, čímž přidáme kosti Constraint. V menu Constraints pak musíme nastavit ChainLen na 1 a ten samý postup provedeme i pro oko pravé. Nyní můžeme pohybovat s kostí Cil a vidíme, že oči tento pohyb sledují.
Přesuneme se do Edit módu a označíme spodní kloub kosti Oko.l, stiskem Shift + S a výběrem Cursor -> Selection přesuneme kurzor na námi požadované místo. Označíme kost oka a Shift + D a R ji zkopírujeme a nastavíme na oční víčko, v tom nám pomůže i označení horního kloubu duplikované kosti a klávesa G. Stále s označeným kloubem stiskněte E a vyextrudujte malou kost v ose Y, všimněte si, že automaticky tvoříme i oko pravé. Obě kosti označíme a Shift + D a R rotujeme na spodní víčko, kde kosti upravíme, aby odpovídaly obrázku. Kosti si pojmenujeme například VickoH.r pro horní víčko pravého oka, pro dolní VickoD.r, pro kosti co z nich vychází pak VickoH2.r a VickoD2.r. Nesmíme zapomenout pojmenovat i kosti z levého oka. Označíme prostřední kost oka a Shift + D a S ji duplikujeme a prodloužíme rovnoběžně s osou Y, kost oka tím trochu zmizí v nově vytvořené kosti, ale to vůbec nevadí, kosti nazveme třeba VickoP.r a VickoP.l. Následně označíme konečné kostí víček a prostřední nově vytvořenou kost a po stisku Ctrl + P vybereme Keep Offset. Přepneme se do Pose módu a víčka jakoby zmizí, protože mají nastaveno omezení, musíme tedy postupně označit všechna víčka a omezení zrušit křížkem v menu Constraints, poté se víčka vrátí na původní místo. Kosti VickoP však omezení ponecháme. Označíme prodloužení víčka, poté víčko, Shift + I a To Active Bone přidáme omezení kosti, toto musíme ještě upravit změnou ChainLan na 1, postupně u všech čtyřech víček. Přesuneme se zpět do Edit módu, vybereme horní kloub kosti VickoP.l a E z ní vyextrudujeme kost směrem dolů v ose Z, poté ji od rodiče odpojíme tlačítkem Con (musíme označit i druhou kost a odpojit ji neboť tlačítko zrcadlově nefunguje) a posuneme kousek dolů v ose Z, tyto kosti pojmenujeme Mrkani.r a Mrkani.l. Následně označíme konečné kostí víček, kost pro mrkani a po stisku Ctrl + P vybereme Keep Offset, mezi kostmi se objeví čárkovaná čára.
Označíme kost pro mrkání, stiskneme klávesu N a ve vyskočivším menu Transform Properties zamkneme všechny položky kromě Scale Y a Scale Z, totéž i pro druhou mrkací kost. Nyní si můžeme označit jednu nebo obě kosti pro mrkání a přes klávesu S vyzkoušet mrkání, pokud se kost zmenšuje, víčka se přibližují a naopak.
Z hlediska vytvoření kostí by to u oka mohlo stačit, ale lidské oko samozřejmě nemá možnost otáčet se libovolně a proto ještě oku dáme omezení, aby se lépe animovalo a nemuseli jsme si hlídat jak moc jej máme vytočené. Víčko bude částečně sledovat oko, ale s větším omezení. V Pose módu označíme kost VickoP.r a v menu Armature Bones nastavím limit rotace v osách X a Z, totéž provedeme i pro kost Oko.r, jen s jinými hodnotami. Pro levé oko budeme postupovat stejně, hodnoty omezení jsou na následujícím obrázku.
Nyní můžeme přejít ke skinningu. Samotné bulvy nepotřebují skinning neboť jsme se přiřadily kostem jako celky, ale soustředíme se na víčka. Označíme horní víčko jednoho oka a poté se přepneme do Weight Paint módu hlavy. Nezapomeneme na aktivované tlačítko X-Mirror, a aby se nám lépe nanášely váhy, jedno oko můžeme přivřít a jak budeme na druhém pracovat, uvidíme přímo změny na druhém přivřeném. Dále už prostě musíme jen nanášet váhy, přivírat, zavírat a otvírat oči a upravovat, dokud se nám nebude výsledek líbit. Je výhodné zapínat a vypínat tlačítko Vert Dist podle potřeby.
Čelist
Kost čelisti jsem již vytvořili zároveň s kostí hlavy, ale nyní vytvoříme celou její logiku podobně jako u očí, aby bylo možno ji co nejsnadněji animovat. V Edit módu označíme kloub u rozšířené části čelisti a klávesami E a Y z ní vyextrudujeme novou kost, tato by měla mít jako rodiče kost hlavy a pojmenujeme ji například Pomocna. Nyní si označíme kost čelisti a vzápětí pomocnou kost a vytvoříme mezi nimi spojení pomocí Ctrl + P, Keep Offset. Z pomocné kosti extrudujeme další kost, kterou odpojíme tlačítkem Con, jako rodiče jí určíme hlavu a předsuneme ji v ose Y někam před ústa. Kost nazveme Pusa neboť se jí bude řídit otevírání pusy.
Přepneme se nyní do Pose módu a označíme nejdřív kost Pusa a poté Pomocna a klávesami Shift + I vyvoláme menu, kde vybereme To Active Bone, tím přidáme omezení. V menu Constraints změníme ChainLen na 1 a nyní můžeme pomocí kosti ovládat rotaci čelisti.
Podobně jako u očí i lidská čelist je omezena v pohybu a tak můžeme s výhodou přidat určitá omezení, která nám pomohou při pozdější animaci. V Pose módu vybereme pomocnou kost a v menu Armature Bones nastavíme Limit X a Limit Z dle hodnot z následujícího obrázku. Je samozřejmé, že čelist se nemůže zavřít více než na doraz k horní čelisti a jistá omezení jsou i v pohybu čelistí do boku.
Nadešel čas, abychom naučili otevírat pusu i náš model, a to podobně jako například u očí víčka. V Pose módu označíme kost Celist a přepneme se do Weight Paint módu meshe, kde můžeme začít s nanášením vah. Ze začátku je dobré mít vypnuto tlačítko Vert Dist, odklopenou čelist a nejdříve namapovat spodní ret tak, abychom se dostali i ke spodním zubům. Mnohokrát se stane, že se nám podaří označit i horní ret a nebo zuby, takže musíme přepínat na nulovou váhu a nebo krok zpět (Ctrl + Z). Ke konci je potřeba tlačítko Vert Dist zapnout a opatrně nanášet různé váhy především v koutcích, je to práce, která vyžaduje velkou trpělivost a mnoho zkoušení. Po konečném nanesení vah doporučuji otáčet model a ujistit se, že nemáme váhu i tam, kde nechceme, obyčejně bývá na druhé straně modelu, totéž bychom měli zkontrolovat u víček.
Model tedy může hýbat očima, mrkat a otevírat ústa, což by prozatím stačilo. Příště se již dostaneme k vytváření samotné mimiky tak, aby se model mohl třeba usmívat nebo mračit, a tím dotvoříme kompetní systém kostí, které budeme pro animaci mimiky potřebovat. Navíc ve druhém díle naleznete blend soubor již kompletního systému kostí.
Poznámka: Obsah tohoto článku je součástí diplomové práce na Fakultě aplikované informatiky Univerzity Tomáše Bati ve Zlíně.
Tématické zařazení:
Diskuse k článku
-
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