Mendelova zemědělská a lesnická univerzita v Brně Provozně ekonomická fakulta
Návrh animační techniky pomocí víceúhlového záznamu Diplomová práce
Vedoucí práce: Ing. Mgr. Jana Andrýsková, Ph. D.
Brno 2008
Bc. Jiří Hegar
Rád bych poděkoval vedoučí diplomové práce Ing. Mgr. Janě Andrýskové, Ph. D., za umožnění tvorby této diplomové práce. Dále bych rád poděkoval doc. Ing. Dr. Jiřímu Rybičkovi za vytvoření sazebního stylu pro diplomové práce.
Prohlašuji, že jsem tuto práci vyřešil samostatně s použitím literatury, kterou uvádím v seznamu.
Brno 5. 5. 2008
....................................................
4
Abstract Hegar, J., A design of the technique using multi angular videorecording. Thesis. Brno, 2008. This thesis is focused on an technique of picturing movements of a 3D object by using multi angular videorecording. It includes an theoretic part which describes current systems Motion Capture and basic principles in computer animation. In next part there is described a program 3ds Max and his modelling and animation tools used for this thesis. In the following part there is illustrated the technique of multi angular recording on a concrete example and a confrontation with its alternatives.
Abstrakt Hegar, J., Návrh animační techniky pomocí víceúhlového záznamu. Diplomová práce. Brno, 2008. Tento text pojednává o technice zachycování pohybu 3D objektu využitím víceúhlového videozáznamu. Obsahuje teoretickou část pojednávající o současných systémech Motion Capture a základních principech v počítačové animaci. V dalším textu je popsán program 3ds Max a jeho modelovací a animační nástroje, které jsou v této práci využívány. V následující části je popsaná technika víceúhlového záznamu na praktickém příkladu a srovnání s jejími alternativami.
5
OBSAH
Obsah 1 Úvod a cíl práce 1.1 Úvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Cíl práce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6 6 6
2 Současný stav 2.1 Současný stav vývoje . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Počítačová grafika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3 Oblast použití 3D animace . . . . . . . . . . . . . . . . . . . . . . . .
7 7 7 7
3 Srovnání systémů Motion Capture 3.1 Princip Motion Capture . . . . . . . . . . . 3.2 Využití Motion Capturingu a jejich rozdělení 3.3 Optické systémy . . . . . . . . . . . . . . . . 3.4 Neoptické systémy . . . . . . . . . . . . . . 4 Počítačová grafika 4.1 Počítačová animace . . . . . . . . . . 4.2 Klíčování . . . . . . . . . . . . . . . . 4.3 Vysokoúrovňová počítačová animace 4.4 Přímá a inverzní kinematika . . . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
9 9 10 10 14
. . . .
16 16 17 17 20
5 Aplikace 3ds Max 25 5.1 Aplikace 3ds Max . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 5.2 Vlastnosti programu pro animace postav . . . . . . . . . . . . . . . . 25 5.3 Řešitelé IK Solvers v aplikaci 3ds Max . . . . . . . . . . . . . . . . . 32 6 Metodický postup 34 6.1 Postup práce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 6.2 Použitý SW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 6.3 Technické vybavení . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 7 Vlastní řešení 7.1 Princip využití videozáznamu v animaci . . . . . . . . . . . . . . . . 7.2 Vytvoření videozáznamu . . . . . . . . . . . . . . . . . . . . . . . . . 7.3 Rozložení videozáznamu na obrázky a jejich synchronizace . . . . . . 7.4 Vytvoření podkladových rovin a umístění v 3D prostoru . . . . . . . 7.5 Vytvoření zaměřovacích bodů a určení jejich pozic na snímaném objektu 7.6 Úprava podkladových rovin v čase za pomocí zaměřovacích bodů . . . 7.7 Zajištění referenčních dat anatomie živého objektu . . . . . . . . . . . 7.8 Tvorba 3D modelů a definování jeho modifikátorů . . . . . . . . . . . 7.9 Definování modifikátorů . . . . . . . . . . . . . . . . . . . . . . . . . 7.10 Tvorba kosterní struktury modelů a vytvoření inverzní kinematiky . .
36 36 37 38 38 38 39 40 40 41 43
6
OBSAH
7.11 7.12 7.13 7.14 7.15 7.16
Tvorba základních vodících bodů a přiřazení hierarchie . . . . . . . . Tvorba doplňkových vodících bodů a přiřazení hierarchie . . . . . . . Aplikace modifikátoru Skin a úprava deformace objektů pomocí skeletu Vlastní animace za použití podkladového videozáznamu . . . . . . . . Využití Gizmo deformátoru pro úpravu animace ohybu . . . . . . . . Získání a úprava animačních křivek objektu . . . . . . . . . . . . . .
45 46 47 48 49 49
8 Diskuse 51 8.1 Shrnutí výsledků a jejich přínosů . . . . . . . . . . . . . . . . . . . . 51 8.2 Možnosti dalšího pokračování této práce . . . . . . . . . . . . . . . . 52 8.3 Ekonomické zhodnocení . . . . . . . . . . . . . . . . . . . . . . . . . 52 9 Závěr
54
10 Literatura
55
Přílohy
56
A Animace lidského těla
57
B Animace zvířecího těla
59
1
ÚVOD A CÍL PRÁCE
1 1.1
7
Úvod a cíl práce Úvod
Využití počítačové animace má v dnešní době velmi široké uplatnění. Snad každý z nás se už setkal s počítačovou animací ať už ve formě filmového triku, počítačové hry nebo architektonické vizualizace. Využití počítačem vytvořené animace nachází uplatnění i mimo zábavní průmysl. To se týká například výukových animací určených pro lékařské účely či pro soudní rekonstrukce. Jak se software stává více výkonnějším a komplexnějším, tak stoupá neustále vzhůru i úroveň detailů a realismu v počítačových hrách a animovaných filmech. Současně s rozvojem výpočetního výkonu počítačů dochází i k jejich většímu zpřístupnění běžným uživatelům. A za zmínku stojí i neustálé zlepšování úrovně animace pohybu za pomocí speciálních systémů Motion Capture. Většina 3D animačních programů umožňuje zobrazit v pracovním prostředí obrázek či video jako pozadí nebo jako texturu na objektu. Tato možnost je plně využita i v této práci, kdy je objekt filmován současně z více úhlů a následně přenesen do pracovního prostředí programu. Videozáznam je dále rozložen na jednotlivé snímky, které jsou texturovány na jednotlivé podkladové roviny odpovídající orientaci úhlu jednotlivých videozáznamů.
1.2
Cíl práce
Cílem této práce je popsat a rozvinout vlastní způsob zachycení pohybu živého objektu za použití víceúhlového videozáznamu. Tento způsob zachycování pohybu je levným alternativním řešením oproti běžným finančně nákladným systémům zachycujícím pohyb. Součástí práce bude i realizace vlastních animací na příkladových 3D modelech a posouzení vhodnosti této techniky pro běžné využití a srovnání s ostatními systémy. Na kostry ukázkových modelů bude aplikována inverzní kinematika, kterou bude manipulováno pomocí vytvořených ovládacích bodů. Dále se práce zaměří na popis nejrozšířenějších systémů na zachycení pohybu a srovnání jejich vlastností. V teoretické části budou rozepsány principy počítačové animace s důrazem na inverzní kinematiku.
2
SOUČASNÝ STAV
2
8
Současný stav
2.1
Současný stav vývoje
Současný stav vývoje v čistě počítačové animaci se pohybuje směrem k fotorealismu. Příkladem na poli sci-fi filmů je Final Fantasy či fantasy filmů Pán prstenů (Lord of the Rings). Tam jsou skuteční herci „smíchániÿ s realistickými počítačově vytvořenými zvířaty či přízraky. Dynamická srst a vlasy vytvořené na fyzikálních základech vypadají reálně a reagují na vlivy okolního prostředí jako je závan větru apod. Po stránce vizuálních efektů, počítač z velké části odstranil způsob tvorby efektů pomocí modelů miniatur a stavění mnoha budov. Velké množství virtuálních ulic ve městech je generována z naskenovaných digitálních dat Lidaru (laserový radiolokátor) a přesné virtuální budovy jsou použity jako pozadí namísto řady skutečných budov (Derakhshani, 2006).
2.2
Počítačová grafika
CG, známé také jako CGI, je zkratkou pro počítačovou grafiku (Computer Graphics Imagery). CG se vztahuje k libovolnému obrázku nebo obrázkům, které jsou vytvořeny počítačem. CG a CGI se obecně vztahují k 3D grafice a nikoli k obrázkům vytvořených pomocí 2D grafiky nebo malovacích programů, jakými jsou Adobe Photoshop nebo Adobe Illustrator. Většina 2D grafického softwaru je založena na bitmapách, naproti tomu veškerý 3D software je vektorový. Bitmapový software vytváří výsledný obraz jako mozaiku jednotlivých pixelů vykreslovaných najednou a vektorový software vytváří svůj výsledný obraz jako posloupnost matematických instrukcí zobrazených nebo vypočítaných bod po bodu. Také 2D grafický software jako je Macromedia Flash používá vektory, ale čím se 3D grafické nástroje odlišují, jsou výpočty hloubky prostoru. Na místo toho, aby byly objekty kresleny na plochou rovinu, jsou definovány v trojrozměrném prostoru (Derakhshani, 2006).
2.3
Oblast použití 3D animace
• Kreslené příběhy nebo filmy – mezi jedny z nejčastěji využívaných oblasti použití 3D tvorby patří animované příběhy jako je Život Brouka, Příběh hraček nebo například Shrek. Další významnou oblastí v 3D tvorbě je vytváření fotorealistických elementů pro filmy nebo video. Speciální efekty (výbuchy, různé kulisy na pozadí, vesmírné souboje apod.) by totiž jinak nebyly realizovatelné, neboť by byly příliš nebezpečné a nákladné. Ve filmu Final Fantasy (tvůrcem je společnost SquareSoft s využitím softwaru Maya) se objevila nová možnost využití 3D softwaru – tvorba zcela syntetických ale naprosto realistických filmů. • Počítačové hry – v průběhu stále rostoucího rozšíření osobních počítačů v domácnostech společně s nárůstem jejich výkonu díky silným grafickým kartám,
2.3
•
• • •
•
Oblast použití 3D animace
9
začali vývojáři her více spoléhat na 3D aplikace jako 3ds Max či Maya. Starší hry využívaly 3D software pouze pro vytváření statických obrázku nebo filmů mezi jednotlivými úrovněmi hry. Většina současných počítačových her je plně v 3D prostředí, přičemž všechny objekty a textury použité v herním engine jsou vytvořené ve 3D aplikacích. Reklamy – televizní reklamy a znělky televizních stanic jsou velice často vytvořeny v 3D aplikacích. Prvotní použití animací v reklamách a televizi byly upoutávky s velkými zkosenými písmeny poletujícími vzduchem. Počítačová grafika je pro použití v reklamách vynikající, protože dokáže vytvořit stejně přesvědčivé scény jako by to byly klasické upoutávky, ale za mnohem nižší finanční prostředky. Upoutávky – animace lze použít pro různé propagační záměry. Architektonické animace – 3D grafika je používána k prezentaci nabízených architektonických řešení. Soudní animace – počítačové grafiky bývá použito při soudních procesech ať už při zobrazení možného průběhu autonehody nebo různých technických vysvětlení. Průmyslový design – tento druh využití se hodně podobá architektonické animaci. Tvorba virtuálního modelu je rychlejší a levnější než vytvoření prototypu. Průmyslový design se týká všeho, co je masově vytvářeno nebo nejdříve modelováno – automobily, flakóny na parfémy, spotřebiče (Lammers, 2002).
3
SROVNÁNÍ SYSTÉMŮ MOTION CAPTURE
3
10
Srovnání systémů Motion Capture
Tato kapitola stručně popisuje nejrozšířenější systémy Motion Capture a princip na kterém pracují.
3.1
Princip Motion Capture
Snímání pohybu pomocí Motion Capturingu, znamená zaznamenávat pohyby jednoho nebo více herců. Tedy vytvářet klíčové snímky pohybu několikrát za sekundu. Optické Motion Capture systémy s vysokým rozlišením mohou vytvářet záznamy pohybu těla, obličeje a prstů v reálném čase. Motion Capturing nezaznamenává vzhled herce, ale pouze jeho pohyb. Tyto pohyby jsou zaznamenány jako animační data. Tyto data jsou dále použita u animace 3D modelu (postava, robot apod.), který vytvořil 3D grafik a je rozpohybován pomocí těchto dat. Tato technika je porovnatelná s rotoskopickou technikou, kdy se využívá zfilmovaného pohybu herce a jeho následné využití pro ruční animaci. Je-li to požadováno, může se kamera nachýlit či jinak nastavit na snímanou plochu. Motion Capture systém může snímat i rekvizity (různé zbraně apod.) a umožňuje zaznamenat pohyb objektů se stejnou perspektivou jako videokamera. Počítač zpracuje data a zobrazí pohyb 3D objektu podle pozice každé značky. Související technika Match Moving, jež pomocí sekvence 2D obrázků může odvozovat 3D kamerový pohyb bez použití fotogrammetrie, je často nejednoznačná kvůli neschopnosti rozlišovat polohu objektu. Snad v budoucnu vzniknou systémy umožňující využití snímání pomocí více kamer, které zaznamenají přesnou pozici každé části hereckého těla (Wikipedia, 2008). Po zpracování získaných dat se 3D model propojí s těmito daty pomocí softwarového vybavení, které umožňuje pracovat s těmito daty (3ds Max, Maya atd.). Výhody: Nabízí několik výhod oproti tradiční 3D počítačové animaci: • Větší rychlost. Někdy lze dokonce sledovat skutečné výsledky v reálném čase. • Množství práce nekolísá se složitostí nebo délkou pohybu ve stejné míře, jako při používání tradičních technik. • Komplexní pohyb a realistická interakce, váhy a výměna sil mohou být snadno upraveny, aby odpovídaly fyzicky přesnému pohybu postavy. • Motion Capture technologie dovoluje využívat zachycené pohyby herce vícenásobně v jednom filmu. Výhody při živé akci: • Režisér si vybere kamerový úhel požadovaný ze scény, včetně úhlů, které jsou obtížné nebo nemožné natáčet naživo. • Neomezené možnosti rotace scény.
3.2
Využití Motion Capturingu a jejich rozdělení
11
• Kostýmy, vzhled i velikost postav mohou být jakkoliv změněny podle požadavků produkce a režiséra. • Postavy dokonale zapadají do prostředí. • Při snímání pohybu není třeba brát zřetel na světlo, filtry či barvu. Vše může být upraveno digitálně. Nevýhody: • Specifický hardware a software jsou nutností, aby se mohly získat a zpracovat data. • Vysoká cena funkčního vybavení a nedostatek kvalifikovaného personálu pro menší projekty. • Snímací systémy mají specifické požadavky pro práci s nimi. • Ne všechny systémy umožňují sledovat získaná data v reálném čase. Většinou je třeba před použitím vyfiltrovat či jinak upravit získaná data. • Použití těchto systémů pro zachycení pohybu zvířat je obtížné. • Technologie se může stát zastaralou již za pár let. • V případě úpravy modelu se mohou vyskytnout problémy, například se mohou zvětšené ruce protínat s jinou části těla.
3.2
Využití Motion Capturingu a jejich rozdělení
Nejvíce se využívá Motion Capturingu při tvorbě počítačových her, například pro oživení atletů, válečníku apod. Ve filmech využívajících Motion Capturing pro počítačové efekty jsou v některých případech nahrazeni skuteční herci počítačem vytvořenými postavami (Gollum, King Kong a Mumie).
3.3
Optické systémy
Optické systémy pracují na principu rozestavení obrazových snímačů do trojúhelníkové pozice, kamery jsou kalibrovány tak, aby zabíraly celou snímanou oblast. Data se získávají pomocí speciálních markerů (značek), které jsou umístěny na snímaném herci. Při snímání velkého počtu herců nebo při velké snímací oblasti je řešením přidání dalších snímacích kamer. Tyto systémy tvoří data se třemi stupni volnosti pro každý marker. Informace o rotaci markeru musí být odvozena z relativní orientace tří nebo více markerů (Wikipedia, 2008). Optický systém: Pasivní markery Pasivní optický systém využívá markery, jež jsou vyrobeny z reflexního materiálu, který odráží instalované světlo u každé snímací kamery. Citlivost kamery muže být nastavena v úzkém rozsahu citlivosti na světlo tak, aby byl zaznamenán odraz markeru a nikoliv odraz oděvu či kůže. Pozice markeru je odhadována jako střed ve dvourozměrném snímku. Každý pixel zachyceného snímku má přiřazenu hodnotu
3.3
Optické systémy
12
Obrázek 1: Optický Motion Capture systém (Wikipedia, 2008)
přesnosti ve stupnici šedi. Pomocí objektu s markery, který má v systému zadanou velikost, je dosaženo kalibrace všech kamer a jejich pozice a distorze obrazu. Software redukuje problémy ze zachycených dat, kde se markery zdají identické. Velikost markerů je volitelná podle rozlišení systému, které závisí na rozlišení kamer, velikosti pracovního prostoru, použité optice, dosvitu strobu atd. Velkou výhodou tohoto přístupu je fakt, že markery mohou být měkké, nepotřebují žádné napájení a kromě výkonnostních limitů v podstatě není omezen jejich počet. Systém většinou obsahuje kolem 6 až 24 kamer. Existují i systémy s více než 300 kamerami (Wikipedia, 2008).
Obrázek 2: Markery umístěné na tváři herce (Wikipedia, 2008)
Optický systém: Aktivní markery Aktivní optický systém tvoří trojúhelníkové pozice pomocí svítící jedné či více diod LED. Sofistikovaný software určí jejich relativní pozice v prostoru, jenž trochu napodobují navigaci pomocí hvězd. Markery jsou napájeny a vyzařují vlastní světlo, protože je výhodnější snímat vyzařované světlo, než odrážené dopadající světlo. To
3.3
Optické systémy
13
umožňuje zvýšit vzdálenosti mezi markery pro získávání potřebných dat. Tato technologie byla použita ve filmu Van Helsing, což umožnilo zachycovat Harpie ve velmi rozlehlých oblastech snímaní. Napájení každého markeru je prováděno v čase, kdy Motion Capture systém provádí snímání každého markeru pro získání dat jeho vlastní pozice podle nastavení snímků za vteřinu. Schopnost snímat každý marker touto metodou je užitečné v realtimových aplikacích. Alternativní metodou je identifikace markerů pomocí algoritmu (Hovora, 2008). Optický systém: Časová modulace aktivního markeru Aktivní systémy umožňují očistit snímaný impuls v čase, nebo sledovat více markerů současně a pomocí modulace aplitudy, nebo šířky impulsu poskytuje markerům vlastní ID. Režisér muže sledovat herce na scéně (snímací prostor) a zároveň sledovat výsledek pohybu 3D postavy na monitoru. Jedinečnost ID markeru snižuje jeho vyřazení při pohybu a nabízí čistější (není potřeba tolik filtrovat získaná data) data než ostatní technologie, které musí být před dalším použitím očištěny či filtrovány. Větší přesnost a rozlišení požaduje větší náročnost na zpracování než pasivní technologie.
Obrázek 3: Optický Motion Capture systém s aktivními markery (Wikipedia, 2008)
Optický systém: Polo pasivní nepostřehnutelné markery Tyto systémy fungují na principu nenákladných multi-LED vysokorychlostních projektorů. Speciálně vytvořené multi-LED IR projektory opticky zašifrují vzdálenost markeru. Namísto odrazových markerů nebo aktivních světelných diodových (LED) markerů, tyto systémy využívají připevněný fotocitlivý marker k rozluštění optických signálů. Pomocí těchto bodů lze kromě jejich pozice zjistit jejich vlastní orientaci, dopadající světlo a odrazivost. Tyto markery jsou provozuschopné v běžném přírodním osvětlení a mohou být nepozorovaně umístěny na oděvu (nebo pod ním). Není omezen počet těchto markerů ve scéně a každý je jednoznačně rozpoznatelný. Markery taktéž umožňují získat data o aktuálním osvětlení, která mohou být využity pro srovnání scénového a počítačově vytvořeného osvětlení. Tato technika je proto ideální pro realtimové vysílání (Wikipedia, 2008).
3.3
Optické systémy
14
Obrázek 4: Optický Motion Capture systém s IR senzory (Wikipedia, 2008)
Optický systém: Bez markerů Optické systémy bez markerů nepotřebují herce nosící speciální vybavení pro snímání pohybu, a proto snižují rozsáhlou přípravu uživatele na kalibraci objektu. Speciální počítačové algoritmy jsou navrženy tak, aby systém analyzoval hromadný proud optického vstupu a identifikoval lidské pohyby, které dál rozděluje na základní části sledování. Některé systémy potřebují zvláštní barvy pro identifikaci končetin snímaného herce (Wikipedia, 2008).
3.4
3.4
Neoptické systémy
15
Neoptické systémy
Inerciální sourřadnicový systém Inerciální Motion Capture technologie je založena na miniaturních inerčních čidlech, biomechanickém modelu a algoritmu spojující obě časti. Je to cenově dostupný způsob snímání pohybu lidského těla. Data získaná z inerciálních čidel jsou bezdrátově zaslána do PC, kde je tento pohyb zaznamenán či zobrazen. Není potřeba žádných kamer, markerů nebo emitorů. Inerciální Motion Capture systém má šest stupňů volnosti pohybu v reálném čase. Výhody inerciálního systému jsou – data mohou být získávána mimo studio, systém je snadno přenositelný a možnost velké snímací oblasti. Tyto systémy jsou velmi citlivé a poskytují vysoké rozlišení a rychlost, ale mohou změřit pouze směr od základního bodu (Wikipedia, 2008). Mechanický systém Mechanické Motion Capture systémy přesně sledují úhly kloubů těla, často jsou nazývány jako exoskeletové systémy. Herec má připevněnou skeletovou strukturu (ta obsahuje senzory v ohybech) na těle, systém získává data při pohybu herce ze senzoru připevněných na skeletu. Tyto systémy jsou realtime, relativně levné a bezdrátové. Skelet je většinou tvořen plastovými či kovovými tyčemi, které jsou navzájem spojeny s potenciometry v kloubech skeletu (Wikipedia, 2008).
Obrázek 5: Mechanický Motion Capture systém (Hovora, 2008)
Magnetický systém Tyto systémy zjišťují pozici a orientaci markerů podle změn magnetického pole. Tento systém vyžaduje speciální prostory, protože je velmi náchylný na magnetické
3.4
Neoptické systémy
16
tak elektrické rušení. Mezi nevýhody patří omezená velikost pole (daleko menší než u optických systémů), horší kalibrace, kdy je potřeba mnoho měření, než je systém kalibrován a získaná data je nezbytné filtrovat před použitím. Velkou nevýhodou tohoto systému je spojení markerů s centrální jednotkou (většinou bývá uchycena na zádech herce), kdy dochází k častému vypojení markerů z centrální jednotky. Maximální počet markerů připojených k centrální jednotce je 20. Další nevýhodou je velmi obtížné snímání více herců najednou (Hovora, 2008).
Obrázek 6: Magnetický Motion Capture systém (Hovora, 2008)
4
POČÍTAČOVÁ GRAFIKA
4
17
Počítačová grafika
Kapitola pojednává o teoretickém principu počítačové animace, na kterém pracují 3D orientované aplikace.
4.1
Počítačová animace
Nejjednodušším příkladem počítačové animace je prosté zobrazování dynamické scény, nejčastěji metodou sledování paprsku. Objekty, které jsou součástí zobrazené scény, se stejně jako kamery pohybují. V diskrétních časových okamžicích sestavíme model scény a ten je následně zobrazen. Tento jednoduchý příklad je věrnou kopií toho, jak pracuje klasická animace, kde je dynamická scéna rovněž snímána (vzorkována) v diskrétních časových krocích kamerou. Výhodou počítačové animace je, že nemusíme mít žádnou scénu fyzicky k dispozici. Nemusí se stavět žádné kulisy ani chodit do exteriérů (Žára, 1998). Logickým krokem v počítačové animaci je „oživeníÿ pohybujících se objektů tím, že se určí jistá míra jejich autonomie. Bylo by nelogické přiřazovat všechny parametry ručně, když některé je možno vypočítat. Například pohybující se míč není potřeba popisovat v každém snímku úhlem otočení a polohou, ale stačí určit jeho počáteční polohu a směr pohybu. Na základě této úvahy pak lze za počítačovou animaci označit libovolnou časově závislou scénu, kterou zobrazujeme. Z tohoto důvodu bývá často počítačová animace spojována s počítačovou simulací. Simulací se v tomto kontextu rozumí tvorba vysoce realistických animací. Příkladem simulací může být kolize pružných těles, chůze syntetické figurky po nerovném terénu, růst rostlin s uvážením vnějších vlivů (nejčastěji světla), simulace hejna ptáků či ryb, dynamika ohně, simulace pohybujících se větví ve větru apod. Pokud hovoříme o počítačové animaci, myslíme tím většinou pohyb. Pohyb však může mít mnoho zcela odlišných forem, od prostého posouvání objektu po stole, přes plápolání vlajky ve větru, až po tekoucí vodu. V počítačové animaci nemáme k dispozici jednotný popis všech forem existujících pohybů. Proto existuje velké množství algoritmů, které řeší svým způsobem dílčí úlohy počítačové animace (Žára, 1998). Počítačovou animaci můžeme rozlišovat podle rozličných kritérií. Z pohledu reprezentace pohybu lze animaci rozdělit na nízkoúrovňovou a vysokoúrovňovou. Nízkoúrovňová počítačová animace má velmi blízko k teorii křivek, neboť se v ní zabýváme reprezentací pohybu, jeho rychlostí, orientací a směru. Vysokoúrovňová počítačová animace naproti tomu pracuje s pojmy jako kolize, jde po, dívá se na, jede směrem apod. Tyto vyšší operace můžeme skládat z operací, které pracují na nižší úrovni. Například chůzi můžeme popsat jako posloupnost kroků, zjednodušeně řečeno stačí popsat přesně jediný krok. Pro simulaci pohybu koulí na kulečníkovém stole stačí popis několika základních kolizí apod. Výhodou rozdělení operací na vyšší a nižší je schopnost vytvářet nízkoúrovňová makra, která v přeložené podobě slouží jako stavební kameny vyšší úrovně animace. Lze například vytvořit knihovnu gest,
4.2
Klíčování
18
kroků či kolizí. Výhodou je, jsou-li základní funkce parametrizovatelné. Pak můžeme používat funkce jako utíká rychle, utíká ladně apod. Jedním z cílů počítačové animace je popis pohybu lidí a zvířat. Tyto snahy směřují k realizaci myšlenky syntetických herců, modelů lidí, kteří budou hrát ve filmu. První vlaštovky jsou již dávno na světě. V některých nebezpečných scénách již syntetičtí herci a počítačová animace nahrazují kaskadéry. Většina těchto záběrů je však v současnosti produkována ručně, v lepším případě pomocí snímačů. Známé algoritmy jsou nedokonalé, málo obecné a časově náročné. Snaha o pronikání počítačů do této oblasti filmového průmyslu způsobuje poměrně silný rozvoj souvisejících oblastí počítačové animace. Některé teorie používané v počítačové animaci syntetických herců byly převzaty z fyziky, některé z robotiky (Žára, 1998).
4.2
Klíčování
Pojem klíčování pochází z dílen Walta Disneye, kde označoval pracovní postup. Při tvorbě animovaného filmu má nejdůležitější úlohu hlavní animátor neboli choreograf. Ten udával tón celého filmu tím, že vymyslel postavičky a maloval jejich pohyby. Protože malování celé sekvence je velice zdlouhavé a jedná se v podstatě o rutinní práci, bylo úkolem choreografa vytvořit pouze nejdůležitější klíčové snímky (keyframes). Zbývající mezisnímky (inbetween) malovali průměrní animátoři určení pro tuto práci. Přirozeně, že první snaha tvůrců programů pro dvojrozměrnou počítačovou animaci vedla k odstranění ručního malování mezisnímků. Tato úloha je v současné době poměrně dobře zvládnutá (Žára, 1998). Postup, kdy animátor vytváří klíčové body a program dodělává zbývající práci, se postupem času začal používat i ve trojrozměrné počítačové animaci. Hlavní rozdíl oproti dvojrozměrnému případu je v tom, že animátor zadává klíčové pozice všech objektů – poloh objektů, úhlů, barev, textur, průhlednosti aj. Úkolem programu je automatické vytváření mezipoloh. Výsledkem je popis scény, který slouží jako vstup nějakého rendereru, protože tato metoda není ničím jiným nežli zadáváním klíčových parametrů. Největší díl práce při vytváření počítačové animace spočívá v úpravě tzv. animačních křivek. Animátor nejprve zadá jednotlivé klíčové polohy (lze i zadat přímo animační křivku) a program tyto polohy interpoluje animační křivkou. Způsob interpolace – spojitost křivek, jejich chování mezi interpolovanými body, hladkost, změna rychlosti podél křivky, určuje tvář celé animace. Tímto způsobem se neurčuje pouze pohyb, ale změna libovolného parametru, například barvy. Animační program by měl nabízet širokou škálu možností pro editaci animačních křivek (Žára, 1998).
4.3
Vysokoúrovňová počítačová animace
Část počítačové grafiky patří do oblasti kinematiky. Kinematika je část fyziky studující pohyb nezávisle na silách, které ho způsobují. V kinematice se tedy zabýváme
4.3
Vysokoúrovňová počítačová animace
19
pouze polohou, rychlostí a zrychlením. Naproti tomu dynamika se zabývá studiem vzájemného působení sil a objektů. Segmentová struktura a stavový prostor Nejsilnější proud vysokoúrovňové animace směřuje k animaci syntetických herců. Postava člověka je dobrým příkladem toho, čemu budeme říkat segmentová struktura (articulated structure). Takovéto objekty jsou složeny z posloupností pevných částí, které jsou mezi sebou spojeny a v každém spojení (link) lze s oběma segmenty otáčet. O posuvném (prismatickém) spojení se v počítačové grafice obyčejně neuvažuje (Žára, 1998). Segmentová struktura bývá na jednom z konců pevně zakotvená. Je-li její druhý konec volný, nazývá se taková struktura otevřená segmentová struktura a bodu, který je na jejím volném konci, se říká koncový efektor (end effector). Jako příklad segmentové struktury je lidská paže. Na jednom konci je paže pevně svázána s tělem, koncovými efektory jsou prsty paže. Schematický příklad otevřené segmentové struktury je uveden na obrázku č. 7.
Obrázek 7: Jednoduchá otevřená segmentová struktura se dvěma segmenty (Žára, 1998)
Struktura je pevně zakotvena na podložce a skládá se ze dvou částí. Jak v zakotvení, tak ve spojovacím uzlu se může struktura otáčet. Jiným příkladem segmentové struktury je model figury člověka v počítači, koncovými efektory jsou body představující zakončení nohou a rukou modelu figury (Žára, 1998). Pokud chceme přesně určit polohu pevného tělesa v prostoru, potřebujeme k tomu zvolený souřadnicový systém a celkem šest čísel. Tři hodnoty určují souřadnice tělesa v prostoru a tři jeho natočení tělesa vzhledem k souřadnicovým osám. Tyto veličiny se nazývají stupně volnosti (degree of freedom) a jednoznačně charakterizují libovolný systém. Přidáme-li do takového systému nové těleso, zvýší se počet stupňů volnosti. Pokud budeme tělesa svazovat pevnými linkami, tedy vytvářet segmentovou strukturu, bude se naopak počet stupňů volnosti snižovat. Segmentová struktura je složena ze dvou prvků. První je pevně ukotveno na podložce, ale může
4.3
Vysokoúrovňová počítačová animace
20
se otáčet, druhý se může otáčet ve spojovacím kloubu. Tato struktura má pouze dva stupně volnosti, úhly α a β. Pokud nalezneme všechny možné stavy, ve kterých může zvolená segmentová struktura být, získáme tzv. stavový prostor struktury. Okamžitý stav lze jednoznačně popsat tzv. stavovým vektorem. Délka stavového vektoru je stejná jako počet stupňů volnosti segmentové struktury (taková je i dimenze stavového prostoru). Tímto stavovým vektorem je jednoznačně určena poloha koncového efektoru P. V případě, že by segmentová struktura nebyla na konci pevně ukotvena, museli bychom stavový vektor zvětšit o tři souřadnice udávající polohu prvního segmentu v prostoru. Vzhledem k zavedené notaci stavového prostoru lze říci, že animace pohybu segmentové struktury je pouze hledání cesty (postupné procházení jednotlivých stavů) v jejím stavovém prostoru (Žára, 1998). Reprezentace animovaného objektu Zatímco při modelování například pomocí ploch, objemů, či v procedurálním modelování, se zabýváme tím, jaký je tvar tělesa. Snahou je používat takovou reprezentaci, která uchovává co nejméně parametrů a která umožňuje snadnou manipulaci s nimi. K tomu se v počítačové animaci užívá tzv. DH-notace, jenž se jmenuje podle Denavita a Hartenberga, kteří ji pro používání v robotice popsali již v roce 1995. V DH-notaci je každý kloub reprezentován svým souřadnicovým systémem a čtyřmi parametry, které určují, jakou transformací přejdeme k následujícímu segmentu. Souřadnicový systém prvního segmentu je vyjádřen ve světových souřadnicích a souřadnicový systém následujícího segmentu je vyjádřen v souřadnicovém systému segmentu předchozího. K výpočtu souřadnic koncového efektoru musíme tedy postupně projít všechny segmenty (Žára, 1998). Význam jednotlivých parametrů, které se DH-notaci používají, je následující. Všechny souřadnice se vyjadřují v souřadnicovém systému segmentu prvního. • a označuje vzdálenost mezi počátky lokálních souřadnicových systémů sousedních segmentů měřenou v ose x prvního segmentu, • d označuje vzdálenost mezi počátky souřadnicových systémů sousedních segmentů měřenou v ose z, • α je úhel určující odchylku mezi dvěma sousedními segmenty měřený vzhledem k ose x lokálního souřadnicového systému prvního segmentu, • Θ je úhel určující odchylku mezi souřadnicovými systémy dvou následujících segmentů měřený vzhledem k ose z prvního z nich. Z těchto deseti čísel můžeme sestavit transformační matici, která určuje, jak se přejde od souřadnicového systému jednoho segmentu k souřadnicovému systému segmentu následujícího (Žára, 1998).
4.4
Přímá a inverzní kinematika
21
Obrázek 8: Vztah mezi souřadnicovými systémy dvou sousedních segmentů (Žára, 1998)
4.4
Přímá a inverzní kinematika
Naším cílem je určit polohu koncového efektoru a hodnoty stavového vektoru segmentové struktury, tj. úhly natočení všech segmentů, případně polohu zakotvení prvního segmentu. K tomu se v počítačové animaci používají dvě metody, přímá kinematika a dnes častěji inverzní kinematika. Přímá kinematika Výpočet polohy koncového efektoru za použití přímé kinematiky spočívá v postupném určení jednotlivých stavů stavového vektoru pro všechny segmenty struktury. Příklad virtuální figurka, která má za úkol položit sklenici na stůl. Nejdříve stanovíme úhel natočení v rameni, poté v lokti a nakonec v zápěstí. Výsledkem tohoto postupu bude poloha sklenice (koncového efektoru) na stole. Pokud bude figura působit nepřirozeně a budeme muset například změnit úhel natočení ramene, změníme tím i tvar celé ruky a musíme postupovat znovu od posledního změněného místa. To je nevětší nevýhodou přímé kinematiky. Formálně lze slovně vyjádřený postup napsat jako P = f (Θ). Poloha koncového efektoru P je určena působením f na stavový vektor Θ. Algoritmy využívající přímé kinematiky jsou obecně jednodušší z pohledu implementace. Využívání tohoto způsobu řízení modelu je však neintuitivní a pro animátora je zadávání jednotlivých parametrů pro každý segment často zdlouhavé. Z těchto důvodů je přímá kinematika používána spíše v případech, kdy je animace řízena nějakým vnějším popisem. Pro interaktivní vyjádření pohybu je výhodnější tzv. inverzní kinematika (Žára, 1998).
4.4
Přímá a inverzní kinematika
22
Inverzní kinematika V případě řízení modelu pomocí inverzní kinematiky jde o opačný postup nežli v případě přímé kinematiky. Cílem je nalezení stavového vektoru Θ na základě informace o poloze koncového efektoru P. Příkladem takového postupu je stanovení úhlů natočení kloubů při jízdě na kole. Koncový efektor (poloha nohy) stejně jako „zakotveníÿ jezdce na sedadle jsou známy a algoritmus inverzní kinematiky určí stavový vektor, tj. úhly ohnutí kloubů. Tento krok můžeme formálně zapsat jako Θ = f −1 (P ). Poloha koncového efektoru P je známa, pomocí inverzní funkce f −1 určíme stavový vektor Θ. Inverzní kinematice se také nazývá cílem řízený pohyb (goal directed motion). Může nastat několik nepříjemných stavů. Inverzní funkce f −1 nemusí pro některé polohy koncového efektoru P vůbec existovat. Můžeme například požadovat natažení struktury tak, že požadavek překročí celkovou délku segmentů. Jiný případ je uveden na obrázku č. 9. Zde je poloha koncového efektoru určena tak, že existují dvě možná řešení pro danou segmentovou strukturu, existují tedy dva stavy ve stavovém prostoru, které mohou této polohy dosáhnout. Takovéto případy musí samozřejmě algoritmus umět včas odhalit a systém, který inverzní kinematiku používá, by na ně měl přiměřeně reagovat (Žára, 1998).
Obrázek 9: Nejednoznačné řešení pro danou strukturu (Žára, 1998)
Řešením tohoto problému je omezení stavového prostoru. Omezení stavového prostoru a tedy i snížení počtu duplicit můžeme docílit přirozenou cestou tak, že se do systému zavedou určitá omezení (constraints). Příkladem takového omezení je zákaz otáčení kloubu za určitou mez. Tímto způsobem nezamezíme všem nejednoznačnostem řešení (Žára, 1998).
4.4
Přímá a inverzní kinematika
23
Detekce kolizí Algoritmy výpočtu kolizí se v počítačové grafice využívají i v počítačové animaci, ale zejména ve virtuální realitě. V obou těchto oblastech jsou však jiné důvody proč se kolize vypočítávají. V případě počítačové animace jde především o přesnost výpočtu a nezáleží ani moc na čase, který je výpočtu věnován. Výpočty kolizí se uplatňují v inverzní kinematice, kde můžeme například polohu koncového efektoru (např. chodidlo figury) určit jako výsledek s libovolně hrbolatým terénem. Výsledkem je pak postava jdoucí po hrbolatém podkladu. Jiným příkladem je výpočet kolizí při animaci oděvu syntetického herce. Látka bývá reprezentována jako hustá síť trojúhelníků a vypočítávají se kolize každého trojúhelníku s každým a navíc i s tělem syntetického herce tak, aby byla výsledná animace co nejrealističtější. Ve virtuální realitě jsou požadavky jiné. Spokojíme se i s drobnými nepřesnostmi ve výpočtu, jen když je rychlost výpočtu co nejvyšší. Při kolizi nám například nezáleží, zda postava herce naprosto přesně sedí na podložce. Může sedět kousek nad ní či dokonce v ní, podstatné je, aby nedocházelo vlivem výpočetní náročnosti ke snížení snímkové frekvence pod 25 snímků za vteřinu (fps = frames per sekond) a tím i k nežádoucímu „loudáníÿ (lagging). Výpočet kolize lze rozdělit do dvou kroků. Prvním je detekce kolize a druhým je generování odezvy na kolizi. V dalším textu uvedeme dva algoritmy pro detekci kolizí. Obě metody jsou založeny na hierarchické struktuře okolních těles – obálek. V prvním případě jsou těmito obálkami koule, ve druhém případě kvádry. U obou těchto algoritmů není podstatná reprezentace těles, jejichž kolize detekujeme. V dalším textu budeme předpokládat výpočet kolizí pouze mezi dvěma objekty (Žára, 1998). Hierarchie koulí Podstatou této metody je vytvoření hierarchie kulových obálek obklopujících se kolem objektu. Výhodou koule je, že je invariantní k otáčení, naproti tomu nevýhodou je, že těleso nemusí obklopovat příliš kvalitně. Mezi vnitřní stranou koule a obklopeným objektem může existovat velká vzdálenost vedoucí ke zbytečným výpočtům. Před vlastním výpočtem detekce kolizí se pro každý vyšetřovaný objekt vytvoří hierarchická datová struktura – strom koulí. Ten se vytvoří tak, že se vyšetřované těleso nejprve obklopí min-maxovým kvádrem a k němu vytvoří obklopující koule. Tato koule představuje nejhrubší aproximaci tělesa a je kořenem hierarchie. V dalším kroku se obklopující kvádr rozdělí na oktanty a pro každý obsazený oktant se provede rekurzívně předcházející krok. Rekurzívní dělení končí buď v neobsazeném oktantu, nebo když je v oktantu méně plošek, nežli je určitý, pevně stanovený počet (Žára, 1998). Detekce kolizí probíhá mezi dvěma objekty, které mají každý svou hierarchii obálek, jenž je obklopují. V prvním kroku algoritmu se nejprve detekuje kolize koulí, které jsou v kořenu obou hierarchií. Tento test potřebuje porovnání vzdáleností
4.4
Přímá a inverzní kinematika
24
Obrázek 10: Strom koulí (Žára, 1998)
středů a poloměrů obou koulí. Algoritmus se v naprosté většině případů skončí neúspěchem právě v tomto kroku. Pokud ke kolizi došlo, zjistí se ve druhém kroku, zda náhodou jedna z koulí není listem stromu. Pokud tomu tak je, musí se algoritmus provést druhou hierarchií rovněž do uzlu a poté následuje přesný výpočet kolize na úrovni trojúhelníků. V případě, že algoritmus nedosáhl listu jednoho ze dvou stromů, postoupí se v jednom ze stromů o jednu úroveň níže a povede se detekce kolize všech koulí v této úrovni s vyšetřovaným uzlem stromu hierarchie druhého objektu. Toto je docíleno ve třetím kroku prohozením parametrů u rekurzívního volání procedury pro výpočet kolize. Algoritmus může skončit buď v listech obou hierarchií, kde se musí spustit výpočet kolize, nebo vyloučením kolize. Druhý případ vyloučení kolize nastává v praktických aplikacích ve více nežli 90 % případů a proto je tento algoritmus velice efektivní. Jiná varianta tohoto algoritmu se využívá pro generování časově závislých kolizí ve virtuální realitě. Podstatou tohoto problému je, že na výpočet kolize je pouze omezený čas. Algoritmus prochází oba stromy tak dlouho, dokud mu nedojde stanovený čas. Potom je využit dosavadní výsledek operace. V praktických aplikacích se takto násilně pozastavený výpočet může projevit jako zastavení objektu ještě před dosažením překážky nebo jako částečný průchod překážkou. Ukazuje se však, že pro získání kvalitního výsledku ve virtuální realitě nejsou tyto chyby tak závažné ve srovnání se zpomalováním snímkové frekvence a následným „loudánímÿ zobrazováním scény (Žára, 1998). OBB stromy Tento algoritmus se od předcházejícího liší pouze v tom, že využívá jiné obklopující obálky. Tento algoritmus je efektivnější, protože obálky obklopují těleso daleko lépe nežli koule a protože test průsečíku mezi obálkami je prováděn efektivněji. V algoritmu je použita hierarchie tzv. OBB-stromů (oriented bounding box). OBB je kvádr, který může být v prostoru libovolně natočený. Objekt je nejprve
4.4
Přímá a inverzní kinematika
25
obklopen obálkou jako celek a tato obálka představuje kořen hierarchie. Pak je těleso rozděleno na dvě části (nejčastěji ve svém těžišti). Ke dvěma získaným objektům jsou vytvořeny jejich OBB stromy. Tyto dva OBB stromy jsou zároveň následníky kořene. Algoritmus se aplikuje rekurzívně na nově stvořené objekty. Podmínkou ukončení rekurze může být příliš velký počet obálek, příliš malý počet objektů v jedné obálce nebo stanovení hloubky stromu. Hlavní příčinou k efektivitě tohoto algoritmu je test průniku (kolize) dvou OBB. Pro příklad můžeme zvolit kolizi dvou OBB. V prvním kroku promítneme oba OBB stromy na přímku. Promítnutí docílíme například tak, že přímku OBB otočíme takovým způsobem, aby byla totožná s osou x souřadnicového systému a poté nalezneme největší a nejmenší x -ovou souřadnici OBB. Provedením výpočtu pro oba testované OBB získáme na této přímce dva intervaly. Pokud nedošlo k jejich překrytí, nemohou se oba OBB protínat a test se ukončí. Pokud dojde k jejich překrytí, musí se provést jiný test. Pro úplný test kolize dvou OBB stromů stačí provést tento test pouze s patnácti přesně určenými přímkami v prostoru. Pokud je jedna z těchto přímek oddělující osa, k průsečíku nedošlo a test se ukončí. V nejhorším případě je nezbytné provést test se všemi patnácti osami. V praktické implementaci se provede v průměru sto instrukcí procesoru na testování průsečíku dvou OBB a tento algoritmus je tedy velice efektivní (Žára, 1998).
Obrázek 11: OBB strom (Žára, 1998)
5
APLIKACE 3DS MAX
5 5.1
26
Aplikace 3ds Max Aplikace 3ds Max
3ds Max je navržen jako software založený na pluginech (přídavné moduly s různým zaměřením), který může být rozšířen podle potřeb a přání uživatele. Existují stovky MAXscriptů a dodatečných freewarových programových pluginů výrobců třetích stran, které jsou volně dostupné pro 3ds Max pro spoustu různorodých oblastí působnosti. Tyto oblasti zahrnují výrobu filmů, her, vizuálních efektů, komerčních reklam, animací pro průmyslové výroby, kreslené animace, průletové animace, architektonického designu. Každá nová verze 3ds Max se zaměřuje na zlepšování kvality nástrojů pro animaci a renderovacích schopností programu. Obě tyto oblasti jsou velmi důležité pro profesionální produkční práci (Kennedy, 2004). V nové verzi 3ds Max jsou nejvýznamnějšími oblastmi zlepšení částicové systémy řízené událostmi, renderovací nástroje, schopnosti simulace dynamiky u animací vozidel nebo kaskadérů a pracovní proces v nástroji Schematic View (schématický pohled). Nástroje pro animaci postav v 3ds Max jsou velmi podobná jiným nástrojům v tomto oboru. Pro příklad kosti (Bones) v 3ds Max a systém inverzní kinematiky se schopnostmi FK IK (přepínaní dopředné a a inverzní kinematiky) a spline IK (inverzní kinematika řízena pomocí křivek) pracuje na stejném principu jako kosterní systém IK v aplikaci Maya. Práce s nastavením ovládání postav (rigging) a propojování parametrů bylo vylepšeno pomocí nástroje Schematic View, který je založen na uzlech. Schematic View umožňuje zobrazení všech objektových hierarchií, propojení použitých modifikátorů a spojení parametrů v grafické podobě (Kennedy, 2004). Vylepšení bylo též dosaženo v oblasti renderování a osvětlení za pomocí integrace profesionálního rendereru Mental Ray s vlastní radiozitou a globálním osvětlením. Tento renderer je daleko výkonnější než existující řešení Light Tracer. Mezi další vylepšení se řadí efektivnější systém vrstev v rámci výřezů. Lokální i síťový texture baking (zapečení textur). Modifikátor UVW Unwrap, který umožňuje automatické mapování textury a dokáže pro mapování rozdělit objektovou síť a bez zkreslení jí rozložit. Nástroje Vertex Paint a mapovací kanály umožňují tvorbu vrstvené texturové mapy přímo ve výřezu 3ds Max. Dále pak Backburner, síťový manažer pro renderování až s 9999 počítačů bez dalších nákladů. Všechna tato vylepšení činí 3ds Max spolehlivým, profesionálním, modelovacím a animačním nástrojem, který byl použit pro vizuální efekty v mnoha filmech jako The Core, Minority Report a X-Men 2. Dále je využíván pro výrobu her na platformě Microsoft Xbox, Sony Playstation 2 a Nintendo GameCube (Kennedy, 2004).
5.2
Vlastnosti programu pro animace postav
V 3ds Max existují tři běžně používané nástroje k nastavení či manipulaci modelu postavy pro animaci. Prvním je systém kostí, pomocí kterého se vytváří kostra
5.2
Vlastnosti programu pro animace postav
27
postavy. Druhým je kombinace řetězců inverzní kinematiky (IK) a dopředné kinematiky (DK), pomocí kterých může animátor společně řídit pohyb kostí. Posledním je nástroj pro tvorbu pokožky neboli Skin, který uživatelům umožňuje ovládání deformace postavy podle pohybu kostí. Tyto tři nástroje se obecně používají k nastavení základní manipulace s postavou a k ní připojeného modelu. Dále je také často nezbytné vytvořit vlastní ovládací prvky postavy, což usnadní zacházení i s velice složitou manipulací. Tyto ovládací prvky mohou být nastaveny pro cokoliv od výrazů obličeje až po pohyb prstů. Umožňují to prvky Wire Parameter a Reactor. Podle typu animace mohou existovat další jevy vyžadující tvorbu sekundární animace, například pohyb oděvu postavy. K tomu slouží nástroje Flex Modifiker, ovladač spring a přídavný modul Reactor (Kim, 2002). Animované postavy se skládají z kostry s pomocnými prostředky pro její ovládání (rigging), a to s posuvnými ovladači (sliders) nebo uživatelskými atributy pro kontrolu rukou. Model stvořený z polygonové sítě kůže je svázán s kostrou za použití modifikátoru Skin. Obličejové výrazy jsou ovládány tzv. morph targets (modelovací technika, kdy dochází k přeměně cílového objektu za jiné vzory) pomocí modifikátoru Morpher a také pomocí dalších obličejových kostí, které pomáhají v animaci čelisti apod. (Kennedy, 2004). V počítačové animaci je skelet (kostra) prostředkem vyztužující 3D model, který pohybuje touto geometrii. Kostra se vkládá do 3D modelu a připojuje se nebo svazuje s jeho geometrií. Kosterní kosti jsou animovány (typicky pomocí otáčení), což střídavě hýbe částmi geometrie, ke které jsou připojeny. Použití kostry dovoluje ohyb a deformaci geometrie připojené ke kostře prostřednictvím kloubů. Kostra je samozřejmě užitečná při práci s postavou, avšak kostry mají mnoho dalších použití (animace stromu ohybujícího se ve větru apod.) (Derakhshani, 2006). Pro usnadnění svázání polygonové kůže s kostrou, program umožňuje využití tzv. bone fins (směrovky či žebra u kostí). Směrovky kostí spolupracují s modifikátorem Skin pro přednastavení velikosti obálek vlivu kosti na kůži, která deformuje kůži při animaci kostí. Obálka kůže je složena ze čtyř částí – vnější hnědá obálka, vnitřní červená obálka, obálka pro kontrolu délky a úchyt pro změnu velikosti obálky. Program umožňuje animovat délku libovolné kosti pomocí stlačení nebo roztažení kosti. Tím lze dosáhnout animačního principu známého jako squash and stretch (Steed, 2004). Uživatelské rozhraní pro animaci Interface programu 3ds Max prošel značným přepracováním s cílem zjednodušit a zvýšit efektivitu pracovního postupu. Správce vrstev (Layer manager) byl vylepšen a zefektivněn. Vrstvy pomáhají řídit komplexní scény, v nichž se mnohé objekty vzájemně překrývají a jsou obtížně viditelné, což znesnadňuje pracovní postup. Vrstvy umožňují skrývání, mražení nebo částečnou průhlednost různých objektů ve scéně,
5.2
Vlastnosti programu pro animace postav
28
což znamená, že lze pracovat na jedné vrstvě a mít jinou vrstvu zmraženou, ale stále viditelnou (Kennedy, 2004). Definování kostí Kost je běžný termín v oblasti 3D animace. Podobně jako lidské kosti definuje objekt kost v aplikaci 3ds Max spojení mezi klouby (hierarchií) a otáčení kloubů postavy. Systém kostí není nic jiného než sada otočných bodů s různým stupněm nadřízenosti a s určitým typem vizuálního spojení mezi nimi. V aplikaci 3ds Max může být toto vizuální znázornění libovolné – standardní objekty kostí, světla, kvádry, prostě cokoliv. Každý objekt v aplikaci 3ds Max nese v sobě vlastnost kostí, která může být zapnuta nebo vypnuta, a která má zvláštní schopnosti stlačení a natažení (Lee, 2002). Objekt kostí v aplikaci má parametry, kterými jsou šířka, výška, zúžení a vlastnosti stabilizátoru. Tyto parametry umožňují tvorbu takového tvaru kosti, který přesně vyhovuje jednotlivým údům, které tvoří objem postavy. To je důležité, protože zobrazení povrchu postavy při vytváření animace většinou zpomaluje počítač až do stavu, kdy postava nereaguje v reálném čase. Práce pouze s kostmi je velmi rychlá, ale bez volumetrického zobrazení kostí (bez zobrazení kostí jako 3D objekty) si lze stěží představit velikost a tvar postavy. Použití stabilizátorů rovněž umožňuje zobrazit otáčení kostí a odstraňovat problémy s tím spojené (Lee, 2002). Skelety a hierarchie Kosti se vytvářejí hierarchickým způsobem, vycházejí z kořenového kloubu (root joint), který je rodičem všech podřízených kloubů hierarchie. Například kyčelní kloub může být kořenovým kloubem kosterního systému nohy, v kterém kolenní kloub je dítětem tohoto systému, kotníkový kloub náleží ke kolenu a pět prstových kloubů je dětmi kotníku. Kosti se pohybují se svými rodičovskými klouby a otáčejí se kolem těchto rotačních bodů, nikoliv kolem svých vlastních. Skelet je právě onou sadou sdružených a správně umístěných rotačních bodů, jež se nazývají klouby a používají se k vytváření pohybu geometrie bez ohledu na to, zda už bude deformována či nikoliv. Kost je délka mezi dvěma klouby, kosti pouze vyznačují kosterní systém (Derakhshani, 2006) a (Steed, 2004). Obličejová animace Nedílnou součástí animace postav je animace obličeje. Ta musí být synchronizována s pohybem úst (lip-sync). Animaci obličeje z jednoho výrazu k druhému lze provést dvěma způsoby (Kennedy, 2004): • Nejjednodušší metodou animace obličeje je použití modifikátoru Morpher, kterému jsou přiřazeny kopie obličeje s různými emocionálními výrazy. Podmínkou je pouze stejný počet vrcholu morfovaného objektu s ostatními vzory.
5.2
Vlastnosti programu pro animace postav
29
• Důmyslnější metodou obličejové animace je kombinace cílových objektů morfování s kosterním systémem uvnitř obličeje, který pomáhá v pohybu čelistí, rtů a lícních kostí pomocí posuvných ovladačů. Každému emocionální projevu může být přiřazen jiný ovladač. Kromě kostí mohou být použity pro ovládání animace obličeje Free Form Deformation (volná deformace objektu pomocí manipulace vrcholů mřížky). Editor křivek Curve Editor a Dope Sheet Curve Editor a Dope Sheet nabízejí dva různé způsoby prohlížení a úpravy klíčových snímků animace. Curve Editor (editor křivek) zobrazuje klíče pro rotaci, posun a změnu měřítka pomocí křivek upravitelných Bézierovými úchyty. Dope Sheet zobrazuje stejné informace jako bloky klíčových snímků a je vhodnější pro další úpravu parametrů ovladačů objektu a rozmezí klíčových snímků, nastavení klíčů typu mimo dosah, přidávání klíčů, změnu načasování, výběr objektů nebo celých skupin klíčů. Nástroj pro kreslení křivek umožňuje kreslit novou křivku bezprostředně na grafu funkční křivky pro aktuální změnu křivky animace. Editor křivek rovněž obsahuje časový posuvník, který je propojen s časovým posuvníkem na liště pro přehrávání stop, což umožní pohybovat se v animaci přímo z okna editoru křivek (Lee, 2002). Tyto křivky lze konvertovat do Bézierových křivek s úchyty, se kterými lze manipulovat a měnit tvar křivky. Program umožňuje volbu přechodu mezi jednotlivými klíči jako je linear, fast, slow, step a uživatelské tangenty Bézierových úchytů. Výrazným rysem je možnost tzv. soft selection (měkkého výběru) rozsahu klíčů, čímž lze roztahovat a posunovat nebo naopak stlačovat úseky vybrané animace a měnit tak způsob animace postavy (Lee, 2002).
Obrázek 12: Curve editor v programu 3ds Max
Dope Sheet umožňuje upravovat časová rozpětí, vybírat klíče a vytvářet bloky klíčů, které lze kontrolovat ovladačem Master Block. Tak lze kopírovat a vkládat klíče animace. V Dope Sheet lze použít Audio Controller (ovladač hudby) u stop transformací objektů a tím lze změnit způsob jejich pohybu.
5.2
Vlastnosti programu pro animace postav
30
Obrázek 13: Dope Sheet v programu 3ds Max
Modifikátor Skin Je nezbytné nějakým způsobem spojit model postavy s kostrou IK (inverzní kinematika) a zařídit, aby se deformoval podle pohybu kostry. Tento proces se obecně nazývá jako obalování nebo tvorba kůže a lze ho provést pomocí modifikátoru Skin. Ačkoliv není novinka, získal oproti předchozí verzi aplikace Max modifikátor Skin mnoho vylepšení. Je nezbytné provést srovnání s řešením pomocí dostupných přídavných modulů – jmenovitě modifikátor character studia Physique, který je tradičně používaným nástrojem v aplikaci Max. Ačkoliv tento přídavný modul nabízí animátorům kvalitnější nástroje s nejvyšší pružností, nová rozšíření modifikátoru Skin dobře poslouží i v těch nejnáročnějších úlohách. Mezi výhody modifikátoru Skin patří i možnost vidět vlivy obálek ve stínovaných výřezech, dále prvky Bone Exclusion Lists, nové prvky Angle Deformers a možnost načíst a uložit obaly. Rychlost interaktivity modifikátoru Skin je velmi vysoká (Lee, 2002). Deformátory Joint a Bulge Angle Deformátory úhlů jsou významným animačním prostředkem, vezmeme-li v potaz složitost obalovaných postav. Výtvarníci musí vytvořit dobré nastavení obalování, které umožňuje animátorům umístit postavu do nekonečného počtu extrémních poloh, což je časově a pracně velmi náročné. Pokud má však projekt šibeniční termín, je někdy řešením mít několik kopií téže postavy s různými použitými řešeními obalení. To se častou použije s ohledem na to, že většinu šotů ve vysílání či filmech je relativně krátká, což omezuje rozmanitost pohybů, které potřebuje postava mezi střihy provést. Tímto způsobem lze řešení obalení optimalizovat na nezbytné akce. Stálým dilematem jsou adresy deformátorů úhlů. Místo předcházení všech možných lidských výtvorů při obalování postav poskytují deformátory úhlů uživateli selektivně odstranit chybné deformace a nalézt místa, kde vznikají. Například pokud má postava špatný deformační artefakt pouze pokud se její paže natočí o 120 stupňů, může animátor pomocí deformátoru úhlů podchytit každou situaci, kdy se paže natočí do tohoto úhlu. Deformátory Joint a Bulge Deformers vytvářejí deformovatelnou
5.2
Vlastnosti programu pro animace postav
31
mříž, se kterou uživatel manipuluje. Body této mříže nejsou animovány v závislosti na čase, ale spíše na stavu rotace dané kosti (Lee, 2002). Tři typy deformátorů úhlů • Deformátor Joint Angle Deformer lze použít k ovlivnění vrcholů, které jsou ovlivněny dceřinými i rodičovskými obaly daného spoje. Typické použití je pro úpravu způsobu ohybu modelu v určitém spoji. Tento deformátor vytváří pomocnou mřížku kolem vybraných vrcholů. • Deformátor Bulge Angle Deformer lze využít k ovlivnění pouze těch vrcholů, které jsou ovlivněny pouze rodičovskými obaly daného spoje. Typické použití je pro tvorbu efektu svalového zvětšení na rodičovské straně daného spoje. Podobně jako deformátor Joint Angle Deformer vytváří pomocnou mřížku vybraných vrcholů. • Deformátor Morph Angle Deformer je podobný, jako deformátor Joint Angle Deformer v tom, že dokáže ovlivnit vrcholy příslušející k dceřiným i rodičovským stranám daného spoje. To je užitečné, když pomocné mřížky deformátorů Joint and Bulge Deformers neposkytují uživateli dostatečnou kontrolu k tvorbě požadované deformace. Tento deformátor používá vlastní cíle deformace a pomocí toho definuje, k jakým deformacím dojde. To znamená vytvořit cílový tvar pomocí úpravy původního modelu do požadovaného tvaru v novém dočasném modifikátoru. Dočasný modifikátor je nutné po zanesení cíle odstranit, aby se předešlo výsledku dvojité transfomace ovlivněných vrcholů. Jiným způsobem je získání cílové deformace ze samostatného uzlu. Je nutné použít nástroj Snapshot, který vytvoří Mesh Snapshot modelu v pozici problémové polohy. Pak uživatel vytvoří příslušný cíl deformace pomocí obvyklých technik pro editaci (Lee, 2002). Ačkoliv se jedná o složitější pracovní postup, deformátor Morph Angle Deformer představuje ze všech tří typů deformátorů nevyšší pružnost pro animaci. Je zde však jedno omezení. Nelze editovat křivky Ease, které ovládají transformace deformací, které jsou implicitně lineární. To snižuje uživatelovu možnost ovládat rychlost, jakou různé cíle deformace přecházejí v jiné. Nástroje Wire Parameter Jedná se o jeden z nejsilnějších nástrojů v aplikaci 3ds Max a může přinést výhody uživatelům z mnoha odvětví. Nástroje Wire Parameter umožňují uživateli přivázat nebo připojit hodnotu jakéhokoliv animovatelného parametru libovolného objektu k jiným parametrům dalšího zvoleného objektu. Toho se využívá ve spojení s novými pomocnými objekty Manipulator a prvkem Add Custom Attribute k vytvoření vlastních ovládacích prvků animace, ale použitelnost je neomezená. Je možnost využít jednosměrných i obou směrných spojení, což umožňuje uživateli vytvořit složitá provázání mezi mnoha parametry (Lee, 2002).
5.2
Vlastnosti programu pro animace postav
32
Dopředná kinematika Při sestavování dopředné kinematiky (dále v textu DK) je základním pravidlem to, že rodičovský uzel ovládá pohyb libovolného dceřiného uzlu. Například při pohybu předloktí (rodičovského), zápěstí (dceřiné) opíše kruhovou trajektorii danou poloměrem. V případě pohybu uzlu zápěstí, zůstane předloktí ve své původní poloze. Animace pomocí metody DK připomíná pohyby akčních postav. Při nastavení pozice končetin postavy (dceřiné), lze pohybovat trupem postavy (rodičovské) a poloha všech končetin zůstane zachována vzhledem k rodičovskému objektu. Je to snadný a intuitivní způsob například pro animování paží chodící postavy, protože stačí pouze nastavit relativní pohyb paží vzhledem k pohybu rodičovskému, nikoliv vzhledem k prostoru ve smyslu absolutního pohybu. Při animaci pomocí DK jsou nastaveny klíče rotace pro každý spoj orotovaný do své polohy. Když je však třeba, aby se paže postavy dotýkaly nějakého nehybného objektu, například aby se držely zábradlí, je zřejmé, že pro tento účel není DK tou nejlepší metodou (Steed, 2004). Inverzní kinematika Metoda inverzní kinematiky (dále v textu IK) je oproti DK způsobem animace, kde dceřiný uzel řídí pohyb rodičovského uzlu. V případě pohybu zápěstí pomocí IK počítač spočítá pohyb a natočení ostatních rodičovských uzlů paže, aby se dostaly do požadované polohy. Tento proces se označuje jako řešení IK. K práci s řetězcem IK je potřeba některých dalších prvků. Poloha zápěstí představuje koncový efektor. Koncový efektor je uzel IK, který představuje konečný výsledek řešení IK. Dalším objektem je cíl, který představuje požadovanou polohu koncového efektoru. Animátoři obecně manipulují pouze s cílem, tím se definitivně umístí zápěstí, protože řešitel IK Solver se vždy pokouší nastavit polohu koncového efektoru na cíl. V některých případech však může uživatel nastavit cíl do takové polohy, že je nemožné, aby koncový efektor dosáhnul cíle, protože existují určitá omezení, například natočení loketního kloubu nebo příliš krátká paže. Z velkých výhod práce s metodou IK je fakt, že koncové efektory mohu být pevně ukotveny. To znamená, že při posunutí cíle zápěstí do polohy na zábradlí schodiště a následném posunu trupu postavy, zápěstí zůstane nehybně na zábradlí, zatímco klouby paže automaticky mění svou polohu, čímž ulehčí modelování polohy zápěstí a nové polohy těla. Dosáhnout něčeho podobného pomocí metody DK by bylo podstatně pracnější a náročnější na čas animátora. Oproti DK také animování cílů v řetězci IK se klíče poloh nastavují implicitně a nenastavují se rotační klíče spojů v řetězci IK. Je tedy zřejmé, že podle dané animační úlohy mají obě metody své výhody a nevýhody. Typická řešení byla v minulosti realizována pomocí metody DK pro horní část trupu postavy a metodou IK pro nohy postavy. V jiných produktech pro tvorbu 3D byly použity ještě složitější nastavení, například vytvoření jedné kostry jenom metodou DK, druhé zcela metodou IK a třetí kostry animované přechody mezi nimi.
5.3
Řešitelé IK Solvers v aplikaci 3ds Max
33
Ideálním řešením je systém, ve kterém lze přepínat mezi DK a IK podle potřeby (Steed, 2004).
5.3
Řešitelé IK Solvers v aplikaci 3ds Max
V aplikaci 3ds Max jsou řešitelé IK Solvers implementovány jako nový typ ovladače animací a mohou tedy být použity na libovolnou hierarchii objektů, nikoliv pouze na objekty kostí. Tito řešitelé jsou modulární v tom smyslu, že vývojáři třetích stran mohou vytvářet své vlastní řešitele pro použití v aplikaci 3ds Max. Řešitelé IK Solvers • Řešitel History Independent (HI) – tento řešitel IK Solver překonává spoustu problémů systému IK v předchozích verzích. Nezávislost na historii znamená, že řešitel se nemusí spoléhat na to, co se dělo v předchozích snímcích, aby spočítal řešení IK. Proto se při práci na předcházejících snímcích dlouhé animace nesnižuje interaktivita. Tento řešitel lze použít na libovolný počet kostí v řetězci IK. Je to obecně nejlepší volba řešitele IK Solver pro práci se složitými postavami nebo dlouhými animačními sekvencemi. • Řešitel History Dependent (HD) – kvůli jeho povaze závislosti na historii předchozích snímků není dobrou volbou pro dlouhé sekvence animací, protože s postupem animace se interaktivita snižuje. Dovoluje však posun spojů podobně jako spoje hydraulických pístů. Řešitel HI Solver umožňuje posun spojů pouze v režimu DK. Při použití řešitele HD Solver manipulace s koncovými efektory probíhá přímo, protože zde neexistuje cíl. • Řešitel IK Limb Solver – tento řešitel je podobný řešiteli HI Solver. Je nezávislý na historii, ale je určený k práci na dvou řetězcích kostí. Sdílí tytéž parametry a ukojitelné panely jako řešitelé HI a IK Solver. Byl vytvořen specificky pro lidské údy, například paže, ve kterých je ramenní kloub první kostí, loketní kloub druhou kostí a zápěstí kloub bude místem konvového efektoru. Ačkoliv lze předpokládat, že se jedná o tři kosti, řešitel IK Limb Solver řeší pouze rotace v ramenních a loketních spojích. Dalším významným rozdílem je to, že první spoj řetězce (rameno) musí mít tři stupně volnosti (X, Y, Z), zatímco druhý spoj (loket) má pouze jeden stupeň volnosti. Řešitel IK Limb Solver je zahrnutý jako součást nástroje Open Source Initiative a je určený k přímému exportu do herního jádra (Lee, 2002). Character studio Character studio je sofistikovaný plugin pro animaci postav ve 3ds Max. Má velmi široké spektrum profesionálních animačních schopností, které jdou ještě dále než vestavěný animační systém Inverzní Kinematiky (IK) v 3ds Max. Největší schopnost Character studia spočívá v možnosti použít soubory Motion Capture, jejich následnou úpravu a kombinaci dle potřeb animátora. Společně s nástrojem Motion Mixer
5.3
Řešitelé IK Solvers v aplikaci 3ds Max
34
Obrázek 14: Řešitelé inverzní kinematiky v programu 3ds Max
pro animaci postav tvoří velmi flexibilní systém, který umí spojit mnoho různých bipedů a souborů Motion Capture v proměnlivé intenzitě. Motion Capture technologie se velmi používá v herním průmyslu a stává se nejpřijatelnější metodou animace postav ve filmu (Kennedy, 2004).
6
METODICKÝ POSTUP
6
35
Metodický postup
6.1
Postup práce
K posouzení použitelnosti této animační techniky vytvořím dva základní 3D modely, na kterých bude tato technika aplikována. Prvním modelem bude kočka domácí a druhým model lidské postavy. Modely budou jednoduché, protože cílem je tvorba animačních křivek. Pro vytvoření modelů jsem si vytyčil následující pracovní kroky: • • • • • • • • • • • • • •
6.2
Prostudování problematiky animace postav. Vytvoření videozáznamů a jejich následná úprava a synchronizace. Vytvoření podkladových rovin a rozložení v 3D prostoru. Vytvoření zaměřovacích bodů a určení jejich pozic na snímaném objektu. Úprava podkladových rovin v čase za pomocí zaměřovacích bodů a rovin. Zajištění dalších referenčních dat týkajících se anatomie živého objektu. Tvorba 3D modelů a definování jeho modifikátorů. Tvorba kosterní struktury modelů a přiřazení inverzní kinematiky jednotlivých končetin. Tvorba základních vodících bodů a přiřazení hierarchie. Tvorba doplňkových vodících bodů a přiřazení hierarchie. Aplikace modifikátoru Skin na 3D objekty a úprava deformace objektů pomocí kosterní struktury. Využití Gizmo deformátoru pro úpravu animace ohybu. Vlastní animace za použití videozáznamu. Získání a úprava animačních křivek objektu.
Použitý SW
Pro praktické příklady animace jsem využil program 3ds Max 9. Tento postup je ale možné použít i na jiný 3D software. Nezbytnou podmínkou pro použití jiného 3D softwaru je schopnost programu práce s inverzní kinematikou a možnost sekvenční texturace. Jako kvalitní alternativu 3ds Max mohu uvést například programy Maya, nebo a XSI a z levnějších programů Cinema 4D. Pro převedení typu video záznamu jsem použil freeware program Any Video Converter.
6.3
Technické vybavení
Pro ověření této metody jsem použil dva běžné kompaktní digitální fotoaparáty s možností vytváření videozáznamu 30 snímku za vteřinu (dále v textu fps: frame per second), v rozlišení 640 × 480. Jeden digitální fotoaparát s rozlišením 320 × 240 pixelů a 15 fps. Pro synchronizaci společného začátku záběrů jsem použil běžného diodového blikajícího světla.
6.3
Technické vybavení
36
Během práce jsem zjistil, že rozlišení 320 × 240 není optimální. Abych mohl sledovat na záznamu všechen pohyb objektu, musel jsem ho sledovat s určitým odstupem. Při větší vzdálenosti se ale objekt obtížněji sledoval a ani synchronizační světlo nebylo příznivé. Proto bylo nezbytné převést videozáznam na požadovanou frekvenci pomocí programu Any Video Convertor. Lze však využít i jakéhokoliv libovolného konvertujícího programu.
7
VLASTNÍ ŘEŠENÍ
7
37
Vlastní řešení
Vlastní řešení této práce spočívá v tvorbě několika animací a získání potřebných animačních křivek. Ukázkové animace budou provedeny na dvou 3D objektech, na lidské postavě a na kočce domácí. Modelování lidské a kočičí kostry jsem si vybral pro jejich rozdílnou stavbu. Celý postup práce jsem podrobně popsal tak, aby mohl sloužit jako návod pro další rozvíjení zvolené metody.
7.1
Princip využití videozáznamu v animaci
Většina 3D animačních programů umožňuje zobrazit v pracovním prostředí obrázek, nebo video jako pozadí, případně jako texturu na objektu. Této možnosti jsem naplno využil i v této práci, kdy jsem objekt filmoval současně z více úhlů. Videzáznam jsem pak rozložil na jednotlivé snímky (30 snímků za vteřinu), a tyto snímky jsem texturoval na jednotlivé podkladové roviny odpovídající orientaci úhlu jednotlivých videozáznamů (zpředu, zboku apod.). Program 3ds Max umožňuje sekvenční texturaci objektu, tedy změnu texturovaného obrázku v každém dalším snímku. Z toho důvodu je nutné videozáznam nejdříve rozložit na jednotlivé obrázky a nastavit počet snímků za vteřinu v programu, tak aby odpovídala rychlosti získaných videozáznamů (tj. 30 snímků za vteřinu). 3ds Max také umí částečně zprůhlednit animovaný objekt, tak aby přes něj bylo vidět na podkladovou rovinu umístěnou za objektem. Výhoda této vlastnosti spočívá v přesnější animaci pohybu ovládacích bodů inverzní kinematiky.
Obrázek 15: Použití částečné průhlednosti objektu
7.2
Vytvoření videozáznamu
7.2
38
Vytvoření videozáznamu
Základním požadavkem pro vytvoření videozáznamů je zachycení objektu ze dvou základních stran, aby mohly by být sledovány klíčové body sledovaného objektu. Pro lepší identifikaci klíčových bodů je vhodné snímat objekt ještě z dalších úhlů. Tyto kamery je potřeba nastavit tak, aby zachycovaly objekt co nepřesněji z jednoho úhlu (zpředu, z boku atd.). Cílem je zachytit pohyb páteře sledovaného objektu. Hlavní záznam se určí podle pohybu objektu vzhledem ke kameře. Nejvhodnější umístění kamery pro hlavní záznam je z boku, či z vrchního pohledu, kdy se objekt nepřibližuje ani nevzdaluje přímo ke kameře. Lidská postava V případě lidské postavy jsem hlavní záznam vytvořil snímáním objektu z bočního pohledu, přičemž druhá kamera zabírala objekt zpředu a třetí ze zadního pohledu. Snažil jsem se o vytvoření 90ti stupňového úhlu mezi kamerou pro hlavní záznam a kamerou ze zadního a z předního pohledu. Všechny kamery jsem také umístil v přibližně stejné výšce od povrchu země. Zvíře U zvířecího modelu jsem umístil dvě kamery z bočních pohledů a další kamery byly nastaveny z předního a vrchního pohledu. Kamery jsem nastavil tak, abych docílil co nejpřesnějšího snímání všech důležitých klíčových bodů objektu. U všech kamer jsem nezbytně na scénu umístil diodové světlo, tak aby bylo v záběru. To pomáhalo při synchronizaci všech získaných videozáznamů. Pro snímání zvířete z vrchního pohledu jsem musel vytvořit pevný stojan.
Obrázek 16: Umístění kamer na scéně
7.3
7.3
Rozložení videozáznamu na obrázky a jejich synchronizace
39
Rozložení videozáznamu na obrázky a jejich synchronizace
Získané videozáznamy jsem nejdříve převedl na videozáznam s 30 snímkovou frekvencí za vteřinu a následně pomocí programu 3ds Max rozložil na jednotlivé snímky. 3ds Max umožňuje pro texturaci použít i určité typy videozáznamů. Kvůli náročnosti na paměť počítače jsem však nemohl použít více jak dvou videozáznamů. Omezení lze vyřešit pomocí využití sekvenční texturace obrázků. Ta spočívá v nastavení počátečního snímku, který je texturován na podkladovou rovinu. V každém dalším snímku je ten předchozí nahrazen dalším následujícím obrázkem. Pro synchronizaci snímků jsem využil blikající diodové světla, která pomáhají přesně určit společný počáteční snímek pro všechny videozáznamy na scéně. Synchronizační světla jsem musel nastavit tak, aby každé světlo bylo viditelné nejméně ze dvou záběrů. V případě, že se na scéně vyskytlo více synchronizačních světel, musel jsem umístit kamery tak, aby alespoň v jednom záběru bylo vidět obě světla. Díky tomu jsem pak mohl najít společný začátek všech získaných záběrů. Společný počáteční snímek lze snadno určit podle rozsvícení diodového světla a postavení snímaného objektu. Ve chvíli, kdy jsem použil kamer, která měla jinou než 30 snímkovou frekvenci za vteřinu, docházelo k určitým nežádoucím nepřesnostem při převodu na požadovanou frekvenci. Proto bylo nejvhodnější používat jen kamer se stejnou snímkovou frekvencí videozáznamu.
7.4
Vytvoření podkladových rovin a umístění v 3D prostoru
Ke každému videozáznamu jsem vytvořil podkladovou rovinu, na kterou je texturován počáteční snímek videozáznamu. Přiřazená textura musí mít nastaveno sekvenční změnu, což znamená, že v každém dalším snímku se tato textura obmění následujícím obrázkem sekvence. Tyto vytvořené podkladové roviny bylo nezbytné rozložit a upravit v 3D prostoru, aby snímaný objekt měl na všech rovinách stejnou velikost. Toho jsem dosáhl za použití vytvoření nových zaměřovacích rovin ve scéně, které se nastaví v určitých výškách objektu (např. ve výšce očí, kolen apod.). Zaměřovacích rovin mohl být vytvořen libovolný počet, který záleží jen na obtížnosti postavení snímaného objektu. Při zaměření jsem musel brát zřetel i na perspektivní distorzi.
7.5
Vytvoření zaměřovacích bodů a určení jejich pozic na snímaném objektu
Podkladové roviny, které zabírají objekt z bočního, či vrchního pohledu a tudíž snímaný objekt má relativně stejnou velikost, jsou brány jako hlavní. V případě podkladové roviny, která snímá objekt z předního (případně zadního) pohledu, se snímaný objekt přibližuje (tedy zvětšuje) směrem ke kameře. Z toho důvodu je nezbytné upravovat velikost této podkladové roviny v čase pomocí animace. Před vlastní animací podkladové roviny je vhodné upravit pozici pivot bodu na střed. Tím se
7.6
Úprava podkladových rovin v čase za pomocí zaměřovacích bodů
40
dosáhne snadnější úpravy velikosti podkladové roviny. Bez ohledu na typ má každý objekt svůj vlastní pivot. Pivot může být umístěn kdekoliv na scéně a nemusí ležet ve středu objektu. Může ležet dokonce i mimo objekt. Tento fakt je třeba brát na zřetel při animaci, protože animace otáčení a změna měřítka používá pivot jako střed. V prvním snímku jsem vytvořil zaměřovací body a roviny. Zaměřovací body jsem umístil v oblasti očí a úst, a roviny ve výšce postavy a jejího středu. Zaměřovacích bodů může být vytvořen libovolný počet, záleží jen na typu snímaného objektu a jeho momentální pozici. Tyto pomocné prostředky umožňují snadnější zmenšení (zvětšení) podkladové roviny tak, aby velikost zobrazené postavy odpovídala velikosti postavy na boční podkladové rovině.
Obrázek 17: Zaměřovací roviny a mřížky na scéně
7.6
Úprava podkladových rovin v čase za pomocí zaměřovacích bodů
Pro změnu velikosti a pozice podkladové roviny se vytváří animace pomocí klíčování. To znamená, vždy po určitém počtu snímku se upraví velikost podkladové roviny. Velikost roviny se upraví podle vytvořených zaměřovacích bodů a rovin. Roviny se vždy umístí ve výšce postavy a dalších snadno identifikovatelných bodů ze všech záběrů jako je ohyb končetiny apod. Dalším prostředkem pro přesnější úpravu velikosti jsou zaměřovací body. Zaměřovací body jsem vytvořil v počátečním snímku ve výšce očí, úst a uší a svázal pevně s podkladovou rovinou, kterou jsem velikostně upravoval. Poté jsem vytvořil vzorové body, které jsou kopií bodů zaměřovacích a nejsou svázány s jiným objektem
7.7
Zajištění referenčních dat anatomie živého objektu
41
na scéně. Počet těchto zaměřovacích bodů může být libovolný, ale musí mít alespoň 3 body pro úpravu sklonu. Vždy když se upravuje velikost roviny pomocí srovnání zaměřovacích bodů s body vzorovými, je rovněž nezbytné upravit sklon vzorových bodů podle aktuálního náklonu hlavy na snímku. Posledním prostředkem pro úpravu velikosti jsou zaměřovací mřížky a kopie podkladových rovin. Zaměřovací mřížky jsou rovinné objekty, které jsou umístěny před každou podkladovou rovinou. Těmto mřížkám je přiřazena částečná průhlednost a všechny mají stejnou velikost. Nastavení hustoty mřížky může být měněno v průběhu práce. Kopií podkladových rovin může být vytvořen libovolný počet. Jejich účelem je určení pozic klíčových bodů objektu. Protože kvalita videozáznamů z běžných fotoaparátů není valná, je vhodné mít nezastíněný pohled z každého záběru. Díky tomu není potřeba stále skrývat animovaný objekt, který stíní hlavní podkladové roviny. Tato část by měla být vykonána s co největší pečlivostí, jelikož přímo ovlivňuje další animační tvorbu. Velikost podkladové roviny musí být animována dříve než započne vlastní animace objektu.
7.7
Zajištění referenčních dat anatomie živého objektu
Před každou tvorbou živých objektů je nezbytné studium anatomie objektu. A to jak z pohledu stavby kostry a tak z pohledu svalové struktury objektu. Vzhledem k hlavnímu cíli této práce, tj. získání animačních křivek, je dostačující objekt s nízkým počtem polygonů. V případě lidské postavy, která bude animována jako oblečená, bude podstatné především studium kosterní struktury.
7.8
Tvorba 3D modelů a definování jeho modifikátorů
Jako základní testované modely jsem použil model kočky a model lidského těla. V případě lidského těla jsem vytvořil postavu i s oblečením a obuví. Oba dva objekty jsem vymodeloval pomocí box modelingu. V něm se nejprve vytvoří primitivní model krychle, který se dále upravuje pomocí dalších modelačních nástrojům do konečné podoby. Každý 3D objekt je složen z polygonů, které jsou složeny z vrcholů a hran. Hranou se rozumí spojnice mezi dvěma vrcholy a polygonem zase plocha, která je tvořena minimálně třemi vrcholy (a tedy i třemi hranami), ale může být tvořena i větším počtem vrcholů (záleží na konkrétním 3D programu). Při aplikování modifikátoru Meshsmooth je pro vyhlazení objektu nezbytné, aby polygony neměly více jak čtyři vrcholy. Při větším počtu vrcholů jak čtyři totiž dochází k nežádoucím výsledkům modifikátoru Meshsmooth ve výsledném vyhlazování objektu.
7.9
7.9
Definování modifikátorů
42
Definování modifikátorů
Program 3ds Max nabízí celou řadu modifikátorů, které jsou určeny k úpravě 3D objektů, nebo úpravu ostatních prvků v programu jako jsou kamery apod. Každému 3D objektu lze přiřadit více modifikátorů, které se navzájem ovlivňují. Správa nad modifikatory je vedena v tzv. stack baru, kde lze měnit jejich pořadí, případně zapínat/vypínat činnost jednotlivých modifikátorů. Tyto funkce jsou velmi důležité z hlediska další polygonové úpravy 3D objektu či z hlediska úpravy vlastností texturace, či deformace objetu. Modifikátory mohou být kopírovány na další 3D objekty ve scéně ať už jako jeho instance (změna vlastnosti u jednoho modifikátoru se projeví stejně i u jeho instance), nebo jako kopie modifikátoru. Ne vždy lze, ale přecházet z vyšších modifikátorů do nižších bez ztráty nastavení.
Obrázek 18: Stack bar (vpravo) v programu 3ds Max
Použité modifikátory • Editable Poly – je prvním ve stack baru a je v podstatě základním modifikátorem, umožňujícím tvorbu a úpravu modelu na úrovni základních prvků (vrchol, hran, hranic, polygonů a elementů). Nelze vypínat jeho výsledky, protože ty tvoří základní strukturu objektu. • Symmetry – tento modifikátor zajišťuje symetrické kopírování objektu, které usnadňuje tvorbu modelu, kdy stačí vytvořit pouze jednu polovinu a druhá je zrcadlena tímto modifikátorem. Další důležitou vlastností je svaření hraničních bodů, kdy je odstraněn spojovací šev mezi zrcadlenými půlkami 3D objektu. • Edit Poly – stejný modifikátor jako Editable Poly je použit až po Symmetry kvůli možnosti úpravy celého 3D objektu. Zrcadlená půlka modifikátorem Sy-
7.9
Definování modifikátorů
43
mmetry i zrcadleny objekt jsou převedeny na základní prvky, které lze dále upravovat. Tím lze dosáhnout asymetrického vzhledu objektu, či jej dodatečně upravit. Hlavním důvodem je převést celý objekt do základních prvků, kvůli jejich další animaci pomocí modifikátoru Skin. • Skin – dokáže svázat polygonovou síťovinu, trojúhelníkovou síťovinu, NURBS plochu nebo plátovou povrchovou geometrii s kostrou. Ovládání každého vrcholu síťoviny je přiřazeno k nejbližší kosti. Kůže vytvoří nad kostrou tzv. zónu ovlivňování, která se v 3ds Maxu nazývá obálka vlivu (influence envelope). Tato obálka se může protínat s ostatními obálkami a umožňuje tak přilehlým kostem sdílet vliv na okolní kůži. To je proto, aby kůže mohla klouzat po kloubech tam a zpět, když se loket nebo jiný kloub otáčí. Další možností modifikátoru Skin je přesné ovládání kůže v oblasti kloubů, pod rameny nebo pro nabytí svalových oblastí pomocí tři metod – Joint Angle Deformer (deformátor ohybu kloubů), Bulge Angle Deformer (deformátor nabytí kůže), Morph Angle Deformer (deformátor využívající morfování). Joint Angle Deformer je vhodný při opravě menších problémů, jako je například vyrovnání loktu při ohybu paže. Použitím mřížky Joint Angle deformátoru na vrcholy paže může být změněn tvar paží podle jejich úhlů ohybu. • MeshSmooth – a konečně poslední modifikátor, který vyhlazuje 3D objekt tím, že vytvoří nové hrany mezi již existující. Zvětší celkovou výpočetní náročnost scény, a proto je aplikován jako poslední.
Obrázek 19: Účinek modifikátoru Meshsmooth na polygonovou síť
7.10
Tvorba kosterní struktury modelů a vytvoření inverzní kinematiky
7.10
44
Tvorba kosterní struktury modelů a vytvoření inverzní kinematiky
Každý kvalitnější 3D program umožňuje animaci pomocí kostry 3D objektu. Tato kostra napodobuje reálnou anatomii kostry těla zvířete, či člověka. Každé jednotlivé kosti je přiřazen vliv na 3D objekt, ale jen na určitou část vrcholu síťoviny objektu. Např. loketní kost nesmí mít vliv na jinou část než ruku, aby nedocházelo k nežádoucím deformacím objektu. Tato práce je velmi náročná na čas, protože je potřeba správně nastavit problematické oblasti jako jsou místa ohybu, např. v kolenech, v loketech apod. Někdy je i potřeba úprava polygonální sítě objektu, to znamená úprava modelu v Editable Poly modifikátoru. Program 3ds Max je schopen tyto časti lépe zvládat pomocí speciálních deformátorů, které jsou k dispozici v modifikátoru Skin. Jejich princip spočívá ve vytvoření kopie objektu (modifikátor Edit Poly), který je v určitých snímcích animace upraven do požadovaného tvaru. Tato technika se nazývá Morphing, kdy po deformaci objektu pomocí kosti se může objekt upravit pomocí editace na úrovní stavby modelu (vrcholy, hrany, polygony). V případě animace ohnutí paže se nejdříve 3D paže ohne pomocí pohybu kostí, které jsou svázány pomocí modifikátoru Skin. Takto animovaná paže se může dále upravit pomocí Morph deformátoru, tím že se upraví tvar modelu při ohnutí paže (lze upravit místo ohybu, nebo vypnutí svalu apod.). Morph deformátor pracuje na základě přiřazení konkrétní kosti a jejího pohybu v určitém směru. Při tvorbě kosterní struktury jsou podstatné pouze kosti, které ovlivňují tvar objektu při pohybu. To znamená, že se nevytváříme přesně stejnou kostru jako ve skutečnosti, ale pouze zjednodušenou verzi. Pro příklad lze uvést kostru v oblasti trupu lidského těla. Žebra, či jednotlivé obratle páteře nejsou vytvářeny, ale místo páteře je vytvořen systém o čtyřech kostech. Musí být ale zachována proporční velikost kostí končetin. K této základní kosterní struktuře se ještě vytvářejí další pomocné kosti, které ovládají polygonovou síť v sekundární animaci. Pro příklad lze uvést ovládání natočení uší u modelu kočky nebo ovládání houpavého pohybu břicha. V případě člověka lze těmito kostmi ovládat pohyb oblečení apod. Tyto kosti mohou být jakékoliv geometrická tělesa, která jsou přiřazena v modifikátoru Skin. Inverzní kinematika Program 3ds Max umožňuje využívání inverzní kinematiky pro animaci. Inverzní kinematika spočívá v určení skupiny kostí (např. paže, noha), které budou ovládány pomocí cílového bodu (manipulátor). To znamená, že animátor umístí koncový manipulátor v prostoru a program vypočte správnou pozici a orientaci kloubů, které tomu IK řetězci (paže, noha) náležejí. Konečné umístění prvků po všech kalkulacích se nazývá řešení inverzní kinematiky. Na rozdíl od klasické přímé kinematiky, kdy se animuje pohyb každé kostí zvlášť, je inverzní kinematika ovládána pouze jedním bodem, program dále vypočítá pohyb všech kostí. U inverzní kinematiky je
7.10
Tvorba kosterní struktury modelů a vytvoření inverzní kinematiky
45
nejdůležitější správně nastavení parametrů s ní spojených, jako je maximální ohyb jednotlivých kostí v úhlu, či úplného zákazu otáčení v určitém úhlu, lze i nastavit tuhost ohybu jednotlivých kostí. Inverzní kinematika velmi usnadňuje práci animátora, ale jsou i případy kdy inverzní kinematika není ideální řešení animace. Tento problém 3ds Max řeší možností vypínání inverzní kinematiky a animování klasickou metodou. Inverzní kinematika u testovaných modelů Základem animace je vytvoření inverzní kinematiky u testovaných 3D objektů tak jejich směrovacích vodičů. Inverzní kinematika může být nastavena i pouze u jedné kosti. V následujícím textu jsou uvedeny jednotlivé oblasti postavy a uveden počet kostí, které jsou ovládány inverzní kinematikou. Inverzní kinematika u lidské postavy • • • • • • • • • • •
Hlava: jedna kost. Mimika obličeje je ovládána pomocí nástroje Morpher. Krk: dvě kosti, Směr je ovládán pomocným bodem. Rameno: jedna kost. Hrudník: jedna kost. Břicho: dvě kost. Směr je ovládán pomocným bodem. Kyčel: jedna kost. Noha: dvě kosti. Směr je ovládán pomocným bodem. Chodidlo: jedna kost. Směr je ovládán pomocným bodem. Prsty na nohou: jedna kost. Paže: dvě kosti. Směr je ovládán pomocným bodem. Ruka: ovládán pouze palec pomocí 3 kostí. Zbývající prsty jsou ovládány pomocí nástroje Wire parameter, kdy jednotlivé články prstů se otáčejí stejně jako přidělený ovládací bod.
Inverzní kinematika u zvířecí postavy • • • • • • •
Hlava: jedna kost. Krk: dvě kosti. Směr je ovládán pomocným bodem. Lopatka: jedna kost. Přední noha: šest kostí rozděleno čtyřmi IK. Páteř: tři kosti. Páteř je rozdělena na dvě IK. Ocas: ovládáno pomocí Spline IK. Pět ovládacích bodů. Zadní noha: šest kostí rozděleno čtyřmi IK.
7.11
Tvorba základních vodících bodů a přiřazení hierarchie
46
Obrázek 20: Kosterní skelet a ovladače lidské postavy
7.11
Tvorba základních vodících bodů a přiřazení hierarchie
Základní vodící body Při tvorbě inverzní kinematiky u kostí se jako první určí rodičovská kost a kost koncová. Tím vznikne mezi touto skupinou kostí inverzní kinematika, která je zobrazena spojnicí a koncovým efektorem u poslední kosti. Koncový efektor ovládá inverzní kinematiku a je zobrazen křížovým symbolem. Pro lepší ovladatelnost inverzní kinematiky byly vytvořeny vodící body (point), což jsou obyčejné pomocné objekty zobrazené hranovou krychlí s křížem. K těmto vodícím bodům byly svázány koncové efektory, tak aby sledovaly pozici těchto bodů v prostoru. Hierarchie vodících bodů Velmi důležitou částí je správná hierarchie vodících bodů. V případě rotace kyčelního vodícího bodu je tak ovlivňována pouze určitá skupina dalších vodících bodů. Kromě vodicích bodů končetin jsou všechny body svázány s hlavním pozičním vodícím bodem, který slouží pro posun objektu v prostoru. 3ds Max nabízí pro práci s hierarchiemi objektů silný nástroj Schematic View, který přehledně zobrazuje objekty a jejich vzájemnou svázanost. Velkou výhodou je logické pojmenování jednotlivých vodicích bodů a jejich rozlišení pomocí vhodně přiřazené velikosti a barvy.
7.12
Tvorba doplňkových vodících bodů a přiřazení hierarchie
47
Obrázek 21: Kosterní skelet a ovladače kočičí postavy
7.12
Tvorba doplňkových vodících bodů a přiřazení hierarchie
Doplňkové vodící body slouží pro přesnější směr ohybu inverzní kinematiky. Každá inverzní kinematika má ohyb jedním určitým směrem. V případě rukou se může tento směr měnit a je nezbytné mít možnost jeho kontroly. Pro určení směru je potřeba vytvořit doplňkové vodící body a přiřadit je každé inverzní kinematice jako cíl zaměření, který bude vždy inverzní kinematika sledovat při ohybu. Druhou variantou je zobrazení tzv. manipulátorů což je obdoba těchto vodících bodů v podobě směrových značek. Díky lepšímu přiřazení k hierarchii vodících bodů byla zvolena první varianta, tj. vytvoření doplňkových vodících bodů určujících směr ohybu inverzní kinematiky. Tyto doplňkové body jsou svázány s vhodnou kostí, aby nedocházelo
Obrázek 22: Schematic View v programu 3ds Max
7.13
Aplikace modifikátoru Skin a úprava deformace objektů pomocí skeletu
48
ke vzdálení těchto bodů od kosterní struktury.
7.13
Aplikace modifikátoru Skin a úprava deformace objektů pomocí skeletu
Modifikátor Skin umožňuje deformaci 3D objektů za pomocí kosterní struktury. Kostra by měla být před přiřazením umístěna uvnitř objektu, který bude následně ovlivňovat. Po přiřazení modifikátoru k 3D objektu je nutné určit kosti a objekty (může být libovolný objekt) jež budou považovány za deformační kosti. Tyto kosti mají vliv na vrcholy polygonové síťoviny. Na jeden vrchol může mít vliv i více kosti, především v oblastech ohybu. To je nutné správně upravit tak, aby nedocházelo ke špatným deformacím při pohybu kostry. Tato část práce je velmi náročná na čas a někdy je nutná úprava modelu na základní úrovni. To znamená, že po vypnutí modifikátoru Skin se 3D objekt upravuje změnou pozic vrcholů na modelu, nebo vytvořením nových hran u objektů. Tím lze dosáhnout lepších deformací v nejproblémovějších oblastech ohybu, nebo zlepšit tvarovou přesnost modelu. Program 3ds Max nabízí několik řešení, jak lze přiřadit vliv jednotlivých kostí na vrcholy objektu. Tím základním je upravením obálek vlivu kostí. Kdy jednoduchým přesunem ovládacích bodů obálky, lze měnit její velikost a tím i měnit vliv jednotlivých kostí na okolní vrcholy. Další možností je použít nástroje Paint Weights, nebo Weight Table. Weight Table v podstatě tabulka, která zobrazuje vliv kostí na jednotlivé vrcholy. Vše lze interaktivně měnit, či kopírovat. Paint Weights je nástroj, který umožňuje nanášení vlivu jednotlivých kostí v pracovním prostředí pomocí upravitelného štětce. Poslední možností je prosté vybrání vrcholů a jejich editace vlivu kostí. Tato možnost je nejvhodnější v místech ohybu.
Obrázek 23: Vliv jednotlivých kostí u kočičí postavy
7.14
Vlastní animace za použití podkladového videozáznamu
7.14
49
Vlastní animace za použití podkladového videozáznamu
Animace pohybu může začít až po předchozí přípravě podkladových rovin a dostatečné úpravě modelu a jeho kosterní struktury. Všechny podkladové roviny by měly zobrazovat snímaný objekt ve stejné velikosti a prostoru během celé animované činnosti (chůze, běh, hod apod.). Všechna animační práce spočívá pohybu vodících bodů, které ovládají inverzní kinematiku (koncové efektor, nebo směr natočení kostí). Animace spočívá ve vytvoření klíčových snímků pro tyto vodící body. Počet klíčových snímků záleží na druhu činnosti, která bude animována. V prvním snímku se objekt připraví do výchozího postavení. Nejprve se upraví postavení těla, ať už se jedná o lidskou, či zvířecí postavu. Prvním vodícím bodem, který musí být přemístěn je hlavní vodící bod. Tento bod je nadřízeným ostatním vodícím bodům, kromě vodících bodů končetin. Další vodicí body páteře, kyčlí a ramen se upraví tak, aby odpovídaly předloze na podkladových rovinách. K tomu slouží tzv. řídící vodící body v oblasti ramen a pánve, ty jsou nadřízeny vodícím bodům v těchto oblastech. Pomocí nastavení rotace řídících bodů, lze rychle nastavit požadovanou polohu trupu těla. Poloha těla musí nejprve souhlasit s hlavní podkladovou rovinou. Hlavní podkladovou rovinou se rozumí boční pohled, který je preferován kvůli snadnější úpravě vodících bodů. Po úpravě vodících bodů s hlavní podkladovou rovinou nastává úprava pozic vodících bodů z dalších pohledů (zpředu, z vrchu apod.). Před úpravou vodicích bodů končetin je třeba nastavit tělo do požadované pozice, protože úprava vodících bodů ovlivňuje natočení končetin. Úprava vodících bodů u končetin probíhá stejně jako u těla. Začíná se hlavním pohledem a přechází se na další pohledy, které jsou k dispozici. Avšak ne vždy je nutná úprava směrových vodících bodů tak, aby ohyb či natočení končetiny byly v požadovaném směru. Po ukončení nastavení pozic všech vodících bodů tak, aby 3D objekt polohou odpovídal podkladovým rovinám ze všech úhlů, je nezbytné vytvořit klíčový snímek všem vodícím bodům. Tím se předchází problémům, které mohou vzniknout při tvorbě dalších klíčových snímků, protože ne vždy je nutné upravovat pozici všech vodících bodů v každém klíčovém snímku. Další klíčové snímky se vytváří po několika snímcích – záleží jen na rychlosti pohybu, který je animován. Například při vytváření animace běhu je vhodná tvorba klíčového snímku v každém pátém snímku animace. To znamená šest klíčových snímků v jedné vteřině animace. Model, který je animován lze částečně zprůhlednit a tím přes něj vidět podkladovou rovinu a dosáhnout co nejpřesnějšího výsledku. Když nelze přesně určit polohu vodících bodů, z důvodů špatné kvality podkladových obrázků a stíněním poloprůhledného modelu, lze využít vytvořené kopie podkladových rovin a zaměřovacích mřížek. Tyto kopie jsou vytvořeny vedle, nebo nad svým originálem a umožňují nezastíněny pohled na podkladovou rovinu. Kopie musí být svázány tak, aby kopírovaly úpravu velikosti a pozice v čase s kopírovanou rovinou. Zaměřovací mřížky zase pomáhají v přesném určení pozice bodů v prostoru. V průběhu animace se lze stále vracet k úpravě vlivu kostí na jednotlivé vrcholy
7.15
Využití Gizmo deformátoru pro úpravu animace ohybu
50
pomocí modifikátoru Skin. Je možné vytvořit pro různé animační pohyby různý vliv modifikátoru Skin, a tím docílit co nejvhodnější deformace objektu při tomto pohybu. Dále je možné upravit samotnou polygonovou stavbu modelu a zpřesnit tak jeho tvar, nebo tím dosáhnout jeho lepší deformace.
Obrázek 24: Klíčové snímky pohybu člověka
7.15
Využití Gizmo deformátoru pro úpravu animace ohybu
Program 3ds Max nabízí pro další úpravu deformace silný nástroj Morph Angle Deformer, který je obsažen v modifikátoru Skin. Tento deformátor dokáže ovlivnit vrcholy polygonů v závislosti na úhlu kosti vůči kosti rodičovské. Tento deformátor používá vlastní cíle deformace a pomocí toho definuje, k jakým deformacím a v jakém rozsahu dojde. To znamená vytvoření konečného tvaru pomocí úpravy původního modelu do požadovaného tvaru v novém dočasném modifikátoru Editable Poly. Dočasný modifikátor je nezbytné po zanesení cíle odstranit (nebo vypnout jeho vliv), aby se předešlo výsledku dvojité transformace ovlivněných vrcholů. Tento způsob je velmi vhodný pro úpravu deformace v místech kde to nelze učinit pomocí prostého přiřazení vlivu jednotlivých kostí. Tento způsob deformace lze i použit pro tvorbu pohybu oblečení postavy. Model je nejdříve upraven na polygonové úrovni, tak jak je naplánován pohyb oblečení a poté se přiřadí Gizmo deformátor kostem, které ovlivňují pohyb oblečení a určí se jejich vrcholy. Pomocí dočasných modifikátorů je tak určen způsob pohybu oblečeni v závislosti na pohybu kosterní struktury. Po přiřazení Gizmo deformátorů už není možná další polygonová úprava modelu.
7.16
Získání a úprava animačních křivek objektu
Animační křivky jsou v podstatě trajektorie, které sledují vodící body. Po vytvoření klíčových snímků animace lze dále upravovat vzniklé animační křivky. Ty lze
7.16
Získání a úprava animačních křivek objektu
51
Obrázek 25: Úprava deformace pomocí Gizma (vlevo), bez použití Gizma (vpravo)
sledovat a upravit pomocí zobrazení trajektorie animovaného vodícího bodu. Pro podrobnější úpravu animačních křivek slouží nástroj Curve Editor. Každou animační křivku lze převést na křivkový objekt. Tím se umožní práce s ním jako s běžnou křivkou, kterou lze spojovat s dalšími křivkami, či měnit velikost, polohu apod. Zpětná konverze upravené křivky na animační trajektorii je možná dvěma způsoby. První možností je načtení křivky jako trajektorie po nastavení parametrů a druhou je přiřazení křivky vodícímu bodu jako cesty, kterou je sledována pomocí funkce Path Follow. V případě vytvoření cyklického pohybu jako je chůze, či běh je nezbytné, aby první a poslední klíčový snímek byly totožné. To lze udělat jednoduchým vytvořením kopie prvního klíčového snímku a další úpravou v nástroji Curve Editor, aby byla vytvořena hladkost přechodu mezi jednotlivými opakujícími se cykly.
8
DISKUSE
8
52
Diskuse
Porovnávat výsledky techniky získávání animačních křivek pomocí víceúhlového video záznamu s ostatními na trhu dostupnými Motion Capture systémy je velmi obtížné. Hlavní problém je nákladnost a nedostupnost těchto systémů. Cena těchto systémů je velmi vysoká a tudíž i možnost zapůjčení systému pro jeho otestování není levnou záležitostí, proto mohu vlastnosti těchto systémů hodnotit pouze srovnáním údajů z odborné literatury, či internetu. Nejvhodnějším srovnáním by bylo vytvoření stejné animace pomocí různých Motion Capture systémů a srovnání časové náročnosti a kvality získaných dat. Největší výhodou této vlastní techniky je její finanční nenákladnost. Nejnákladnější položkou je 3D software, který umožňuje inverzní kinematiku a sekvenční zobrazení textur. Tyto požadované vlastnosti nejsou neobvykle u většiny současného 3D softwaru. Z hlediska technického vybavení jsou potřeba alespoň tři digitální fotoaparáty umožňující snímání videozáznamů. Nejvhodnější jsou digitální fotoaparáty s možností vytvoření videozáznamu 640 × 480 s 30 snímkovou frekvencí za vteřinu. V dnešní době je to běžná vlastnost většiny i těch nejlevnějších fotoaparátů.
8.1
Shrnutí výsledků a jejich přínosů
Pro srovnání použitelnosti této techniky při tvorbu animačních křivek bylo vybráno modelování lidského a zvířecího pohybu. V případě tvorby animačních křivek lidského pohybu pomocí této alternativní techniky je hlavní výhodou dostupnost z finančního hlediska. Z pohledu času a přesnosti, nemůže tento způsob konkurovat nejnovějším Motion Capture systémům. V současné době jsou nejlepším, ale také nejnákladnějším řešením pro získávání animačních dat lidského pohybu optické Motion Capture systémy. Kvalita získaných dat optickým systémem přímo ovlivňuje počet kamer. Počet kamer rovněž ovlivňuje i nutnost dalších úprav získaných dat a celkovou cenu systému. Větší možnosti nabízí tato technika u tvorby animačních křivek zvířecího pohybu. V tomto případě jsou možnosti použití běžných Motion Capture systémů značně omezeny. Zcela lze vyloučit použití magnetických, nebo exoskeletových systémů. Tyto systémy vyžadují speciální vybavení, které musí být připevněno na snímaném objektu. Jakékoliv připevnění těchto zařízení na zvíře by velmi negativně ovlivnilo jeho přirozený pohyb, nebo není vůbec použitelné pro velikost zvířete. Při použití optických Motion Capture systémů nelze vyloučit problémy s připevněním potřebných značek na tělo zvířete, nebo nemožnost přesunu určitých zvířat do ateliéru s nainstalovaným systémem. Tady lze tuto techniku úspěšně použít na libovolné zvíře, jedinou podmínkou je vytvoření kvalitních videozáznamů z více úhlů.
8.2
8.2
Možnosti dalšího pokračování této práce
53
Možnosti dalšího pokračování této práce
Možností jak pokračovat a vylepšit tuto práci je více. K těm nejzákladnějším patři úprava kosterní struktury, změna hierarchie vodících bodů, nebo úprava polygonové sítě modelu. Hlavní možností zlepšení výsledků této techniky je tvorba přesnější skeletální kostry a jejího deformačního vlivu na polygonovou síť objektu. To znamená zpřesnění limitů pohybu jednotlivých kostí, případně vytvoření většího počtu kostí např. v oblasti páteře. Kostra a její deformační vliv by se tak měl co nejvíce přiblížit reálné předloze. Úprava a zpřesnění polygonové sítě objektu umožňuje vytvoření nového požadovaného 3D modelu. To lze učinit částečnou, nebo kompletní změnou 3D objektu, jako je změna hlavy, úprava končetin, nebo přiřazení jiného 3D objektu na kosterní strukturu. Tyto modely by mohly být dále upraveny vytvořením textur objektů. V případě kočky by se jednalo vytvoření srstí. Změna počtu vodících bodů, či jejich hierarchie ovlivňuje inverzní kinematiku. Během práce na ukázkových modelech jsem byl nucen několikrát upravovat počet i hierarchii vodících bodů a inverzní kinematiky. Nelze tvrdit, že tato podoba je optimální. Vodící body a jejich hierarchie by se daly ještě dále upravovat. Zda-li tyto úpravy jsou nutné lze zjistit z další možné úpravy vodících bodů, tedy vytvářením různorodých pohybů, a tím odhalit slabiny současného nastavení.
8.3
Ekonomické zhodnocení
V případě navrženého pracovního postupu je finančně nejnákladnější nákup 3D softwaru. Trh s 3D grafickým softwarem nabízí poměrně široký výběr produktů např. Maya, Softimage XSI, LightWave 3D, Cinema 4D, 3ds Max nebo Blender. Pro ukázkové animace byl použit program 3d studio Max 9 od společnosti Autodesk. Cena programu se pohybuje kolem 141 000 Kč, ale lze využít i měsíční trial verzi programu. Levnější alternativou 3d studia Max je program Cinema 4D od společnosti Maxon jehož cena se pohybuje kolem 20 000 Kč. Výběr programu záleží na náročnosti uživatele a jeho finančních možnostech. Většina firem vytvářející 3D software nabízí studijní či zkušební verze s určitými omezeními, nebo za sníženou cenu. Po technické stránce jsou nezbytné alespoň tři digitální fotoaparáty. Hlavní podmínkou je schopnost fotoaparátu zaznamenat video v dostatečně velkém rozlišení (nejméně 640 × 480). Cena fotoaparátů s požadovanou vlastností začíná již na 2000 Kč. Nákup Motion Capture systémů je velmi nákladnou záležitostí, kterou si mohou dovolit jen filmová a herní studia. Existuje několik možných Motion Capture systémů pro snímání pohybů. Nejlepších výsledků dosahuje optický Motion Capture systém. Kvalita získaných dat a tím i cena systému závisí na počtu kamer, které optický systém používá. Ostatní Motion Capture systémy jsou levnější než optické systémy, ale tato cena se odráží v kvalitě získaných dat a dalších důležitých vlastnostech (omezený rozsah snímání pohybu apod.). Cena optického Motion Capture systému začíná přibližně na 100 000 amerických dolarech.
8.3
Ekonomické zhodnocení
54
Z hlediska finanční nákladnosti a možnosti použití pro běžného uživatele je optimální navrhovaný pracovní postup. Z pohledu rychlosti tvorby animace a její přesnosti jsou lepším řešením použití Motion Capture systémů (zejména se to týká optických systémů).
9
9
ZÁVĚR
55
Závěr
V dnešní době nachází počítačová animace stále větší uplatnění v mnoha různých oborech. Grafické programy se stávají stále intuitivnější na ovládání, uživatelsky přístupnější a i dostupnější co se týče ceny. Díky zvyšujícímu se výkonu současných procesorů a grafických karet, se tato oblast zpřístupňuje běžným uživatelům. V diplomové práci jsem zhodnotil alternativní přístup tvorby animačních křivek. Pro posouzení a ověření této techniky jsem vytvořil dva modely, které byly na základě tohoto přístupu rozpohybovány na příkladových animacích. V teoretické části jsem se věnoval popisu principů základních typů Motion Capture systémů a jejich vlastností, a dále také popsání principů počítačové animace a inverzní kinematiky. Použitý pracovní postup je vhodný zejména pro získání animačních dat pohybu zvířat, kde běžné Motion Capture systémy nelze použít bez problémů. Pracovat tímto způsobem je sice časově náročnější na přípravu a nutnost nastavení vhodné kosterní struktury a jejího deformačního vlivu na polygonální síť objektu, její výhodu však spatřuji v nižší finanční náročnosti oproti klasickým Motion Capture systémům a také v možnosti použití popsaného pracovního postupu i v jiných 3D softwarových programech než je 3ds Max.
10
10
LITERATURA
56
Literatura
Boardman, Ted 3ds Max 5: Podrobná příručka . Praha: SoftPress, 2004. 424 s. ISBN 80-722-6798-1. Chismar, John Kurz animace v 3ds max 4 . Praha: SoftPress, 2002. 652 s. ISBN 80-86497-23-2. Derakhshani, Dariush Maya: průvodce 3d grafikou . Praha: Grada Publishing, 2006. 436 s. ISBN 80-247-1253-9. Hovora, Jan Motion Capture: teorie a praxe . Pixel: 2D/3D grafika a animace, digitální video a zvuk, 2008, č. 3, s. 4. Kennedy, Sanford 3ds max 6: Animace a vizuální efekty. Brno: Computer Press, 2004. 560 s. ISBN 80-251-0328-5. Kulagin, Boris 3ds Max 8: Průvodce modelováním a animací . Praha: SoftPress, 2007. 392 s. ISBN 978-80-251-1463-6. Kříž, J. 3ds max: Hotová řešení. Brno: Computer Press, 2005. 246 s. ISBN 80-2510885-6. Lammers, J., Lee, G. Maya 4: Kompletní průvodce . Praha: SoftPress, 2002. 544 s. ISBN 80-86497-30-5. Lee, Kim Mistrovství v 3ds max 4 . Praha: SoftPress, 2002. 546 s. ISBN 80-8649719-4. Steed, Paul Animace postav: v 3ds max a charakter studiu. Brno: Computer Press, 2004. 333 s. ISBN 80-251-0030-8. Szunyoghy, András Anatomie pro výtvarníky: Člověk / Zvířata / Srovnávací studie. Bratislava: Slovart, 2006. 602 s. ISBN 80-7209-773-3. Wikipedia The free Encyclopedia. [online]. 2001, 20 March 2008, [cit. 2008-01-10]. Dostupné na
. Žára, J., Beneš, B., Felkel, P. Moderní počítačová grafika. Praha: Computer Press, 1998. 609 s. ISBN 80-7226-049-9.
Přílohy
A
A
ANIMACE LIDSKÉHO TĚLA
Animace lidského těla
Obrázek 26: Klíčové snímky pohybu
58
A
ANIMACE LIDSKÉHO TĚLA
Obrázek 27: Klíčové snímky v Dope Sheet
Obrázek 28: Animační křivky v Curve Editoru
Obrázek 29: Animační křivky pohybu pracovním prostředí programu 3ds Max
59
B
B
ANIMACE ZVÍŘECÍHO TĚLA
Animace zvířecího těla
Obrázek 30: Klíčové snímky pohybu
60
B
ANIMACE ZVÍŘECÍHO TĚLA
Obrázek 31: Klíčové snímky v Dope Sheet
Obrázek 32: Animační křivky v Curve Editoru
Obrázek 33: Animační křivky pohybu v pracovním prostředí programu 3ds Max
61