Animace lidského obličeje na základě řeči

26. Júl, 2010, Autor článku: Vilímek Tomáš, Informačné technológie, Študentské práce
Ročník 3, číslo 7 This page as PDF Pridať príspevok

Práce je zaměřena na představení možností nástrojů pro animaci mimiky lidského obličeje, potažmo řeči v programu Blender. Program Blender je 3D animační a modelovací nástroj dostupný pro mnoho platforem. Tento volně šířitelný software obsahuje většinu funkcí známých z komerčních produktů od prostorového modelování, přes práci s kamerou a světly, až k pokročilým animačním technikám. Práce se věnuje především vytvořením kostry obličeje, která bude požita k animaci mimiky obličeje a také řeči, což patří mezi jedny z nejtěžších úkonů v počítačové animaci člověka.

1. Úvod

Animace je velmi oblíbený druh umění a lidstvo ji používá již od nepaměti. Loutkové a kreslené filmy si získaly miliony diváků, avšak nynějším trendem se stala počítačová animace a obzvláště 3D animace. Pokud chce tvůrce diváky zaujmout, je nucen vytvořit vystupujícím postavám, ale i „oživlým“ předmětům charakter, to do jisté míry obstará pohyb jejich těla, jenže jakmile je zapotřebí vyjádření složitější emoce, musí na řadu přijít výraz tváře, očí nebo úst. Vytvoření mimiky postav je velice obtížné a vede k němu několik cest, tato práce se věnuje těm dvěma nejzákladnějším a kromě teorie obsahuje i praktický návod na tvorbu animace mimiky obličeje a řeči.

2. Charakteristika programu Blender

Blender je multiplatformní open source aplikace zaměřená na vytváření 3D modelů, animací, rendering, postprodukční činnost a v neposlední řadě interaktivních aplikací. Multiplatformní znamená, že Blender lze spustit nejen v systému Windows, ale i pod Linuxem, na Mac OS X a mnoha dalších. Open source znamená, že je program nejen zcela zdarma a to i pro komerční využití, ale také, že lze stáhnout kompletní zdrojové kódy, zkompilovat je na vlastní sestavě pro optimalizaci výkonu, libovolně je upravovat a případně se aktivně podílet na dalším vývoji Blenderu.

Nové verze jsou veřejnosti přestavovány většinou v horizontu 3-4 měsíců a kromě řady drobných vylepšení uvádí také nové nástroje a funkce sledující aktuální vývoj potřeb svých uživatelů i uživatelů 3D software obecně. Kromě nástrojů pro modelovaní, animaci a renderování obsahuje Blender také GameEngine, ve kterém je možné vytvářet interaktivní prezentace, průchozí vizualizace např. interiérů domů a počítačové hry, vše přímo v Blenderu pomocí interního grafického editoru s možností doplnění kódem v objektově orientovaném programovacím jazyce Python (www.python.org).

Vedle interního hybridního scanline/raytrace rendereru nabízí Blender také přímý výstup v externím rendereru Yafray, který je rovněž k dispozici zcela zdarma. Blender lze doplnit celou řadou rozšíření ve formě Python skriptů, v nichž existují i velmi složité pluginy např. pro generování stromů, trávy, zvířecí srsti a pod., či importní a exportní filtry pro komunikaci s jinými aplikacemi. Další rozšíření jsou možná použitím materiálových či sekvenčních (postprodukčních) pluginů, dodávaných ve formě knihovních souborů (např. .dll). [1]

3. Teorie animace lidského obličeje

Uveďme si nyní několik základních pojmů pro pochopení tvorby animace mimiky obličeje a animaci lidské řeči.

3.1 Mimika lidského obličeje

Mimika (z řeckého mimeomai, napodobovat, představovat) je vědomé vyjadřování výrazem tváře, způsobené stahy obličejových svalů. Je – vedle gestikulace – důležitou složkou nonverbální komunikace, hereckého umění, pantomimy i živého vyjadřování.

Mimické schopnosti člověka ve srovnání s jinými živočichy silně podporuje plochý obličej bez srsti i bohatá muskulatura. Na výrazu tváře se nejvíce podílejí oči a ústa, proto si je herci zvýrazňují maskováním. Také svraštěné čelo, přimhouřené oko, ohrnutý ret nebo nos jsou jednoduché prostředky, jimiž rychle a úsporně vyjadřujeme své soudy a hodnocení. Mimické výrazy jsou kromě toho většinou nezávislé na kultuře a jazyku, takže mohou sloužit k dorozumívání i tam, kde si lidé jazykově nerozumějí.Lidskou mimikou ve srovnání s primáty se důkladně zabýval Charles Darwin, pokusy s mimikou dělal také Jan Evangelista Purkyně. [2]

3.2 Způsoby animace lidské tváře

Animovat lidskou tvář lze v zásadě dvěma následujícími způsoby:

Přesouvání vertexů a morfing - tato technika spočívá v přesouvání vertexů modelu tak, aby vznikl nový tvar objektu a používá se v kombinaci s morfingem, kde se vytvoří několik tvarů, například výrazů obličeje a mezi nimi se tzv. morfuje. Pokud je však model složitý, je velmi obtížné docílit touto technikou přijatelné výsledky.

Morfing nebo morphing je speciální efekt používaný ve filmu nebo při animaci, při kterém dojde k plynulé záměně jednoho digitálního obrázku na jiný obrázek. Při této proměně dochází k metamorfóze zdrojového obrázku na cílový obrázek podle předem definovaných pravidel. Cílem je vytvoření takové animační sekvence, která by byla interpretována jako plynulá transformace jednoho obrazu na druhý. Analogicky je tomu i pro 3D objekty. [2]

Vytvoření systému kostí ve tváři - tato metoda má výhodu ve veliké variabilitě výrazů, kterých můžeme dosáhnout. Kosti v obličeji zastávají funkci významných svalů a jejich pohybem tvarujeme mash tak, abychom dosáhli cíleného výrazu tváře. Největší úskalí se zde skrývá ve skinningu, neboť je náročné označit skupiny vertexů tak, aby byla deformace co nejlepší. Podle potřebného rozsahu mimiky se přidává počet kostí, čím více propracovaná by měla mimika být, tím více kostí se musí přidat. Základem je mrkání očí, otevírání pusy, pohyb obočí, potažmo čela a samozřejmě rtů. Méně často se pak vyskytuje například možnost krčení nosu.

Srovnání obou metod - ačkoliv obě metody pracují na úplně jiném principu a každá z nich má své výhody a nevýhody, je někdy dobré a v některých případech dokonce nezbytné je kombinovat. Toto vyplývá z výhod a nevýhod každé z metod.

Morfingem lze dosáhnout takřka všech tvaru, které si animátor vymyslí, což je velká výhoda této metody. Nevýhodou však je, že každý výraz musíme modelovat zvlášť a to může být velmi náročné, zejména pokud ještě nevíme co přesně budeme animovat, pokud není animátor moc zdatný v modelování a navíc je model hodně složitý.

Vytvořením systému kostí ve tváři dosáhneme velké variability z hlediska možností výrazů, můžeme jednoduchým pohnutím s několika kostmi vytvořit kterýkoliv výraz, což z této metody dělá uživatelsky příjemnější možnost animace. Nevýhodou jsou však úskalí, která nás mohou potkat při vytváření kostí, respektive při skinningu. Jsou totiž případy, kdy pohyb kostí způsobuje nepřirozené deformace a není žádný způsob jak lépe mesh naskinnovat. Ze zkušeností například při otevírání úst mohou vznikat deformace v koutcích, které nelze jen tak přehlížet.

Abychom odstranily nedostatky obou metod, je vhodné je kombinovat a tím docílit velice dobrého výsledku. Například můžeme využít variability systému kostí ve tváři a nepřirozené deformace odstranit morfingem. Navíc můžeme vylepšit mimiku tím, že například vymodelujeme vrásky na čele hlavy a s posouváním kostí pro krčení čela se tyto vrásky budou objevovat a prohlubovat. Pokud se nám tedy podaří tyto metody dobře skloubit, nestojí nám již nic v cestě k dokonalé animaci lidského obličeje.

3.3 Animace řeči

Animace řeči se provádí řadou způsobů a patří mezi jednu z nejsložitějších animací vůbec. U špičkových animací se modeluje každá hláska zvlášť a poté se na patřičném místě použije. Důležitá je správná synchronizace audio a video stopy tak, aby vymodelovaná hláska přesně seděla s řečí. Existuje jedno výrazné ulehčení práce a to modelovat obecně tvar úst, který je s trochou fantazie podobný více písmenům. Obecně lze použít například sedmi variant tvaru úst a to pro tyto skupiny:

  1. A, E, I, H, L
  2. C, D, G, K, R, S, T
  3. Q, X, Y, Z
  4. F, V
  5. J, N
  6. M, P, B
  7. O, U

Další postup při animaci by se dal shrnout do následujících bodů:

  • Přesně si uvědomit, a následně napsat, co by postava měla říkat
  • Namluvit monolog (dialog)
  • Načíst zvukovou stopu do programu na časovou osu
  • Poznačit si snímky na kterých se mění tvar úst (například na pozicích vytvořit klíče)
  • Na konkrétní snímky přiřadit patřičné tvary úst
  • Animaci vyrenderovat a objektivně zhodnotit
  • Začít s odstraňováním nedostatků a finálními úpravami.

Animace řeči vyžaduje mnoho zkušeností a tak je dobré experimentovat a zkoušet různá vylepšení tak, aby byl výsledek co nejlepší. Nezbytnou součástí je také pozorování ať už někoho nebo sama sebe před zrcadlem.

4. Praktická animace mimiky pomocí systému kostí ve tváři

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 nyní 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. Model použitý v této práci byl exportován z aplikace MakeHuman a upraven pro naše potřeby.

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. Dále z ní vyextrudujeme kost, která bude předešlé kosti podřazená a bude zastupovat funkci čelisti. Poté hlavní kosti přiřadíme mesh celé hlavy, aby jej deformovala.


Obr.1: Pozice základní kosti a nastavení armatury.

Dále vytvoříme kosti v očích, které později rozšíříme a přidáme jim různá omezení, tak, aby nám později usnadnili práci při animaci. Očím přidáme cíl, kost na kterou budou zaměřeny a tudíž budou sledovat její pohyb, jednoduše tak určíme bod, kam se postava dívá a nemusíme pracně nastavovat každé oko zvlášť.


Obr.2: Kosti očí a jejich cíl

Další úprava očí bude spočívat ve vytvoření kostí, jenž budou ovládat víčka, přesuneme je na pozice víček a přidáme jim omezení, které omezí jejich rotaci tak, aby nemohlo docházet k jejich nepřirozeným polohám. Svislá kost slouží k ovládání mrkání a to tak, že při jejím zkracování se víčka k sobě přibližují. Po vytvoření kostí a nastavení všech omezení a vzájemných vztahů následuje skinning, takže víčka budou deformovat červeně vyznačenou část modelu.


Obr.3: Kosti očí a víček a jejich váhy

Kost čelisti jsme 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. Přidáme si tedy pomocnou kost, která bude s čelistí pevně spojená a ta bude sledovat polohu svislé kosti, která je předsunuta před tvář. To umožní otevírání a zavírání úst, ale i pohyb čelisti do strany. Přidáním omezení také znemožníme nepřirozené vychýlení čelisti a to nám pomůže v pozdějším animování. U skinningu musíme dbát zvýšené pozornosti při nanášení vah v oblasti koutků, neboť tam může docházet k nepřirozené deformaci meshe.


Obr.4: Kosti a váhy spodní čelisti

Bylo by možné do obličeje vložit další samostatné kosti a jim přiřadit určitá místa obličeje, které budou deformovat, ale když si uvědomíme jak moc je lidská tvář dohromady provázaná, bylo by nutné okolo každé kosti udělat oblast, kde by šly váhy do ztracena. Jen jeden příklad za všechny, když pozvedneme koutek, pohne se i celá tvář. K dobrému výsledku bychom se tedy měli dostat jednodušeji za pomoci objektu Lattice, u kterého vytvoříme síť a když vhodně zvolíme váhy na meshi, tak bude pohyb jemně rozprostírán do ztracena po částech obličeje. Začneme tedy vložením Lattice.


Obr.5: Lattice obličeje, její umístění a parametry

Jelikož Lattice není jednoduché jen tak animovat, přidáme si na vhodná místa kosti, které pevně svážeme s jednotlivými body sítě a animováním těchto kostí dosáhneme požadované deformace. Aby však byla deformace Lattice patrná i na obličeji, musíme opět provést skinning. Nanášením správných vah se pohyb po obličeji rozprostře do ztracena.


Obr.6: Lattice, kosti a váhy obličeje

Tímto je dokončen obličej jako takový, my ale budeme potřebovat zajistit i pohyb rtů a to provedeme přidáním dalšího objektu Lattice, který bude tentokrát na rozdíl od předchozího trojrozměrný. Obdobně jako u obličeje přidáme kosti, které budou síť deformovat a naneseme příslušné váhy na horní ret. Pokud pohneme s kostmi, měl by se ret hýbat, ale zuby a dásně modelu by měly zůstat na svém místě.


Obr.7: Lattice, kosti a váhy horního rtu

Spodní ret bude vytvořen velice podobně, jako ten horní, vložíme trojrozměrnou síť, přidáme k ní kosti, jenž ji budou deformovat a na konec naneseme na spodní ret váhy tak, aby byl co nerealističtěji deformován. Opět by se při pohybu se spodním rtem neměly pohybovat zuby ani dásně.


Obr.8: Lattice, kosti a váhy spodního rtu

Tímto je celková kostra obličeje hotova, je dobré objekty Lattice vložit do jiné viditelné vrstvy, aby nezavazely při animaci a další práci s modelem. Kostra je opatřena mnohými omezeními, které pomohou při pozdější animaci mimiky, zajistí například to, že není možno modelu otevřít ústa více než je to u člověka možné nebo je naopak zavřít nad úroveň horní čelisti a obdobně zamezí i protáčení očí atd. Na závěr je zde ukázka několika vytvořených výrazů tváře.


Obr.9: Ukázka několika výrazů tváře

5. Závěr

Tento text obsahuje jen malou část obsáhlé práce na téma počítačové animace mimiky lidského obličeje a řeči, je nesmírně těžké shrnout v deseti stránkách takto obsáhlou práci tak, aby odrážela skutečný výsledek a přínos. Práce navíc není zdaleka u konce a především zpracování řeči jsem se zatím věnoval jen z nepatrné části. Částečným úspěchem však je, že části práce uveřejnil největší český server zabývající se 3D grafikou (www.3dscena.cz) a tam již články zhlédly stovky lidí. Nyní bych se chtěl dále věnovat rozšíření vědomostí o animování lidské řeči a poté je předat v rámci dalších prací veřejnosti, ať již laické a nebo odborné.

Literatura

  1. Blender3D.cz [online]. Dostupný z WWW: <http://www.blender3D.cz>
  2. Wikipedie [online]. Dostupný z WWW: <http:// cs.wikipedia.org>

Univerzita Tomáše Bati ve Zlíně, nám. T. G. Masaryka 5555, 760 01 Zlín
Studentská tvůrčí a odborná činnost, STOČ 2010

Napísať príspevok