Masarykova univerzita Fakulta informatiky
ELEKTRONICKÁ SBÍRKA ÚLOH Z PROSTOROVÉHO MODELOVÁNÍ V PROGRAMU CINEMA4D Bakalářská práce Martin Hájek
Brno, jaro 2007
Prohlášení Prohlašuji, že tato práce je mým původním autorským dílem, které jsem vypracoval samostatně. Všechny zdroje, prameny a literaturu, které jsem při vypracování používal a nebo z nich čerpal, v práci řádně cituji s uvedením úplného odkazu na příslušný zdroj.
Poděkování Na tomto místě bych rád poděkoval Mgr. Tomášovi Staudkovi, Ph.D. za cenné připomínky a odborné rady, kterými přispěl k vypracování této bakalářské práce.
Vedoucí práce: Mgr. Tomáš Staudek, Ph.D.
ii
Shrnutí Vytvořená sbírka výukových lekcí slouží k rozšíření teoretických znalostí práce s modelovacím a animačním programem Cinema4D o praktickou složku a to naučení se základům modelování od jednoduchých objektů až po složitější scény a základy tvorby animací.
iii
Klíčová slova Cinema4D, modelování, animace, parametrické modelování, polygonální modelování, tutoriál, výukové lekce, aplikace, program
iv
Obsah Kapitola 1 Úvod................................................................................................................................................... 1
Kapitola 2 Popis vytvořených výukových lekcí..................................................................................................... 2 2.1 Základy práce a modelování jednoduchých objektů ................................................................. 2 2.1.1 Lekce 1 – Primitiva ............................................................................................................ 2 2.1.2 Lekce 2 – Práce s křivkami................................................................................................. 3 2.2 NURBS generátory .................................................................................................................. 4 2.2.1 Lekce 3 – Hyper NURBS................................................................................................... 4 2.2.2 Lekce 4 – Vytažení NURBS............................................................................................... 5 2.2.3 Lekce 5 – Rotace NUBRS ................................................................................................. 5 2.2.4 Lekce 6 – Potažení NURBS............................................................................................... 6 2.2.5 Lekce 7 – Protažení NURBS ............................................................................................. 7 2.3 Základy polygonálního modelování.......................................................................................... 7 2.3.1 Lekce 8 – Základy polygonálního modelování – tvorba hrnku .......................................... 8 2.3.2 Lekce 9 – Polygonální modelování – tvorba hrnku trochu jinak ........................................ 9 2.3.3 Lekce 10 – Polygonální modelování – tvorba čajové konvičky......................................... 10 2.3.4 Lekce 11 – Deformace ..................................................................................................... 10 2.4 Materiály, textury, osvětlení ................................................................................................... 11 2.4.1 Lekce 12 – Tvorba materiálů a textur a práce s nimi 1 ..................................................... 11 2.4.2 Lekce 13 – Tvorba materiálů a textur a práce s nimi 2 ..................................................... 12 2.4.3 Lekce 14 – Osvětlení scény .............................................................................................. 13 2.4.4 Lekce 15 – Venkovní osvětlení......................................................................................... 13 2.5 Základy animace scény a částicový systém ............................................................................. 14 2.5.1 Lekce 16 – Jednoduché animace..................................................................................... 14 2.5.2 Lekce 17 – Pokročilá tvorba animace – časová osa, F-křivky........................................... 14 2.5.3 Lekce 18 – Morphing....................................................................................................... 15 2.5.4 Lekce 19 – Částicový systém............................................................................................ 16
v
Kapitola 3 Aplikace Tutorial – Cinema4D [2.0], změny oproti předchozí verzi................................................. 17 3.1 Popis úprav v aplikaci Tutorial – Cinema4D [2.0] .................................................................. 17 3.2 Popis prostředí aplikace.......................................................................................................... 18 3.2.1 Popis oken programu ...................................................................................................... 19 3.2.2 Ovládání aplikace ............................................................................................................ 19
Kapitola 4 Struktura a popis internetové prezentace věnované výukovým lekcím ............................................. 20 4.1 Popis internetové prezentace.................................................................................................. 20 4.2. Struktura internetové prezentace .......................................................................................... 21
Kapitola 5 Závěr ................................................................................................................................................ 24
Příloha Obsah přiloženého CD ..................................................................................................................... 25 Literatura ......................................................................................................................................... 26
vi
Kapitola 1 Úvod Bakalářskou práci Elektronická sbírka úloh z prostorového modelování v programu Cinema4D jsem si vybral, protože mne velmi zaujal předmět PB009 – Základy počítačové grafiky, vyučovaný na Fakultě informatiky MU, který se v jeho praktické části věnoval práci s programem Cinema4D sloužícím pro tvorbu 3D modelů a animací. I po úspěšném složení zkoušky jsem se o modelování v programu Cinema4D více zajímal. Na internetu existuje mnoho různých návodů a tutoriálů pro práci s tímto programem. Bohužel však jsou informace po síti velmi roztroušené a nepokrývají celou problematiku. Většina z těchto návodů se pak také věnuje pokročilejším formám modelování a předpokládá, že uživatel již nějaké zkušenosti s prací v programu Cinema4D má. Rozhodl jsem se proto navázat na práci Pavla Schneidera, který vytvořil aplikaci sloužící jako interaktivní tutoriál – nápověda k programu Cinema4D. Mým cílem bude doplnit tuto aplikaci vysvětlující funkci jednotlivých nástrojů, generátorů a funkcí programu Cinema4D o praktické výukové lekce, čímž vznikne komplexní e-learningová aplikace určená k výuce modelování a tvorby animací v programu Cinema4D. Tato aplikace by měla posloužit především studentům Fakulty informatiky, kteří si zapíší předmět PB009 – Základy počítačové grafiky. Cílem výukových lekcí bude vytvoření velké scény skládající se z několika modelů vytvořených v průběhu jednotlivých lekcí. Tato scéna bude následně kompletně otexturována a nasvícena. V posledních lekcích pak bude názorně předvedena tvorba jednoduché animace rozpohybováním několika objektů ve scéně. Důraz bude kladen na provázání lekcí v jeden kompletní na sebe navazující celek. Další částí bakalářské práce bude vytvoření internetové prezentace s výukovými lekcemi. Internetová prezentace bude mimo jiné obsahovat odkazy na další stránky použitelné pro hlubší studium dané problematiky.
1
Kapitola 2 Popis vytvořených výukových lekcí V této kapitole se budu věnovat jednotlivým výukovým lekcím, které jsem měl za úkol vypracovat a implementovat do aplikace Tutorial - Cinema4D [2.0]. V rámci mé práce jsem vytvořil 19 lekcí sloužících k praktické výuce modelování krok po kroku. Jejich rozsah by měl kompletně pokrývat praktická cvičení k předmětu PV009 – Základy počítačové grafiky, proto jsem je rozdělil do 5 menších celků, každý s jiným zaměřením. Důraz je pak kladen na postupnou tvorbu modelů vložených do jedné scény, která je následně otexturována, nasvícena a zanimována. Všechny možnosti programu Cinema4D jsou tak postupně vysvětleny na jedné kompletně provázané scéně.
2.1 Základy práce a modelování jednoduchých objektů V prvním cvičení by se měli studenti seznámit se vzhledem, ovládáním a možnostmi, které program Cinema4D nabízí. Této části jsem však nevěnoval pozornost, protože k tomu byla určena už původní verze aplikace Tutorial – Cinema4D [2.0] sloužící k vysvětlení jednotlivých částí a funkce programu Cinema4D. Kromě teoretických znalostí by se měli studenti v prvním cvičení seznámit se základy parametrického modelování a jednoduchými trojrozměrnými objekty – tzv. primitivy. Práce s nimi je vysvětlena v první výukové lekci. Druhá lekce pak seznamuje s využitím křivek a křivkových primitiv, které jsou v programu Cinema4D velmi důležité a slouží především pro tvorbu trojrozměrných objektů generátory NURBS.
2.1.1 Lekce 1 – Primitiva V první výukové lekci se studenti seznámí se základy práce s programem, s přidáváním nových objektů do scény, jejich hierarchií ve správci objektů a s prací s oknem se scénou a přepínáním různých pohledů na scénu. Pomocí jednoduchých trojrozměrných objektů se v několika krocích vytvoří jednoduchý hrad z kostek pro děti. Lekce slouží především k zažití práce s programem, ale současně se zde použijí některé speciální modelovací nástroje jako Booleanovské operace, Pole a nástroj Instance. Znalost těchto nástrojů není pro modelování v programu Cinema4D nezbytně nutná, je možné nahradit je jinými postupy. Přesto jsou užitečné tím, že usnadňují a ulehčují práci při modelování.
2
Obrázek 2.1: 1 – Okno se scénou při modelování hradu z kostek Obrázek 2.1: 2 – Scéna vytvořená v první lekci
2.1.2 Lekce 2 – Práce s křivkami Druhá lekce naváže na první především tím, že pracuje s nejjednoduššími objekty parametrického modelování, a to s křivkami. Na začátku lekce je nejprve názorně ukázána tvorba a vysvětleny vlastnosti různých druhů křivek, se kterými Cinema4D dovoluje pracovat. Ve druhé části je krok za krokem vysvětlena tvorba složitější křivky příčného řezu talířkem pod hrnek, který se vytvoří po aplikaci funkce Rotace NURBS. Studenti se v této lekci seznámí s některými nástroji a postupy pro práci s body, které využijí a rozšíří v pozdějších lekcích.
Obrázek 2.1: 3 – Ukázka tečny Bézierovy křivky Obrázek 2.1: 4 – Scéna vytvořená ve druhé lekci
3
2.2 NURBS generátory Ve druhém cvičení se studenti podrobně seznámí s generátory NURBS, které vytváří prostorovou geometrii objektu. Jednotlivé lekce pokryjí všechny generátory NURBS, které program Cinema4D obsahuje. Jmenovitě jsou to Vytažení NURBS, Rotace NURBS, Potažení NURBS a Protažení NURBS. Tyto generátory používají klasické 2D objekty, jako například křivky, pro generování 3D objektů. Dále se v první lekci ukáže práce s generátorem Hyper NURBS, který na rozdíl od předchozích generátorů používá k práci 3D objekty a polygonální objekty. U všech lekcí se pak krok po kroku vytvoří model, který práci s daným NURBS generátorem přesně vystihuje.
2.2.1 Lekce 3 – Hyper NURBS V první lekci druhé kapitoly se studenti podrobně seznámí s modelováním pomocí generátoru Hyper NURBS. Ten na rozdíl od ostatních generátorů nepoužívá pro modelování 2D objekty, ale pracuje s 3D objekty a polygonálními objekty, u kterých se nastavuje tzv. váha Hyper NURBS, přitahující požadované body, hrany či samotné polygony k mřížce okolo zvoleného objektu. V této lekci se krok po kroku vytvoří model flash disku. Jelikož generátor Hyper NURBS pracuje s polygonálními objekty, bude v této lekci ukázáno použití tří nástrojů pro práci s polygony. Jmenovitě to budou nástroje Vytažení, Vytažení uvnitř a Přemostění. Jedná se o jedny z nejpoužívanějších nástrojů pro práci s polygony, proto budou znovu použity v dalších lekcích na složitějších příkladech.
Obrázek 2.2: 1 – Nastavení váhy Hyper NURBS u vybraného bodu Obrázek 2.2: 2 – Scéna vytvořená ve třetí lekci
4
2.2.2 Lekce 4 – Vytažení NURBS Čtvrtá výuková lekce pokrývá modelování prostorových objektů generátorem Vytažení NURBS. Tento generátor, jak už sám název napovídá, vytáhne objekt daný křivkou do prostoru. Vytažení NURBS vytvoří 3D objekt pouze z uzavřené křivky. V případě, že je křivka neuzavřená, vytvoří generátor polygonový plát ve tvaru vložené křivky. Prakticky je tato lekce velmi krátká. Generátor Vytažení NURBS má použití především pro objekty, které jsou součástí většího modelu. Na příkladu je krok po kroku ukázáno vytvoření jednoduchého prostorového nápisu se zakulacenými hranami.
Obrázek 2.2: 3 – Křivka s textem po vložení křivkového primitiva Text Obrázek 2.2: 4 – Model nápisu vytvořený ve čtvrté lekci
2.2.3 Lekce 5 – Rotace NUBRS Pátá výuková lekce je na rozdíl od té předchozí více obsáhlá. Pomocí generátoru Rotace NURBS, který vytváří 3D objekt rotací křivky kolem osy Y, je vytvořena scéna obsahující 2 skleničky a láhev na víno. V lekci věnující se práci s materiály a aplikaci textur bude tato scéna opět využita při názorné ukázce tvorby reálně vypadajících materiálů skla a aplikaci etikety na láhev. V této lekci si studenti kromě zažití práce s generátorem Rotace NURBS dále prohloubí znalost práce s křivkami a jejich úpravou. Při tvorbě skleniček se pracuje s Lomenou, B-spline a Bézierovou křivkou, přičemž je názorně vysvětlen rozdíl mezi nimi. Nemalá část je věnována názorné ukázce použití generátoru Hyper NURBS. Ten zde slouží především k „vyhlazení“ povrchu skleniček. Dále je na tomto místě také vysvětlena funkce segmentace objektu při tvorbě hladkého povrchu skleničky bez použití generátoru NURBS.
5
Obrázek 2.2: 5 – Vyhlazení okraje sklenky nástrojem Nůž Obrázek 2.2: 6 – Scéna vytvořená v páté lekci
2.2.4 Lekce 6 – Potažení NURBS Šestá výuková lekce je podobně jako lekce předchozí více obsáhlá a věnuje se generátoru Potažení NURBS. Tento generátor vytvoří 3D objekt potažením povrchu na dvě a více křivek. Studenti si v této lekci osvojí práci s generátorem Potažení NURBS na tvorbě čajové lžičky. Ten je zde použit pro vytvoření placatého povrchu lžičky potažením plochy mezi dvěma křivkami, který je následně několika nástroji upravován do požadovaného tvaru lžíce. Dále jsou zde opět prohlubovány znalosti práce s křivkami a vysvětlen princip nástrojů Symetrie a Magnet.
Obrázek 2.2: 7 – Vyklenutí nálevky lžičky nástrojem Magnet Obrázek 2.2: 8 – Scéna vytvořená v šesté lekci
6
2.2.5 Lekce 7 – Protažení NURBS V poslední lekci týkající se generátorů NURBS je názorně vysvětlen princip generátoru Protažení NURBS. Ten má jako parametr 2 křivky. První z nich je kontura, která definuje profil vytvořeného 3D objektu. Druhou křivkou je cesta, která jak už název napovídá vytváří cestu protažení. Po aplikaci generátoru Protažení NURBS vznikne 3D objekt vytvořený z těchto dvou křivek. Podobně jako generátor Vytažení NURBS se i Protažení NURBS používá pro modelování objektů použitých zpravidla v celku většího modelu. Studenti se proto dozví, jak vytvořit realistický model stolní lampy za použití dvou generátorů NURBS: Rotace a Protažení. Tvorbě částí lampy vytvořených generátorem Rotace NURBS však není věnován prostor, protože je princip totožný s pátou lekcí. Naopak je ukázáno využití generátoru Protažení NURBS při tvorbě menších celků modelu.
Obrázek 2.2: 9 – Využití generátoru Protažení NURBS při tvorbě stolní lampy Obrázek 2.2: 10 – Scéna vytvořená v sedmé lekci
2.3 Základy polygonálního modelování Ve třetím cvičení k předmětu Základy počítačové grafiky by se měli studenti seznámit se základy polygonálního modelování a jeho nástroji. Stejně je to také u výukových lekcí, které jsou součástí aplikace Tutorial – Cinema4D [2.0]. Parametrické modelování, kterému byly věnovány předchozí lekce, pracuje s objekty, které mají určité vlastnosti. Vlastnosti těchto objektů vložených ve scéně lze změnit a tím vytvořit jiný objekt (např. krychli o rozměru 1×1×1 m zvětšíme třetí rozměr na 1×1×2 m a tím dostaneme úplně jiný objekt). Naproti tomu polygonální modelování pracuje s objekty složenými z nejzákladnějších stavebních částí – z bodů, hran a polygonů. Tyto části lze do daného objektu přidávat, mazat nebo měnit jejich polohu, čímž se změní struktura povrchu objektu jako celku.
7
Následující tři lekce se proto věnují základům polygonálního modelování. Jejich úkolem je poukázat na rozdílný přístup oproti modelování parametrickému. Modely v jednotlivých lekcích jsou tvořeny pomocí několika základních nástrojů pro práci s polygony, hranami a body. Důležité je především pochopit jejich princip a zažít si odlišný způsob modelování, ne zahltit studenty mnoha informacemi o nástrojích, jejichž princip se mohou dozvědět v jiné části programu Tutorial – Cinema4D [2.0]. Vysvětlení práce s několika dalšími nástroji pro polygonální modelování se však vyskytuje i v dalších lekcích. Poslední lekce této kapitoly se pak vrací zpět k modelování parametrickému a seznamuje s deformačními nástroji a jejich využití při modelování.
Obrázek 2.3: 1 – Ukázka k vysvětlení rozdílů mezi parametrickým a polygonálním modelováním Krychle vlevo modelovaná parametricky má rozměry 1×1×1 m. Ve správci atributů můžeme její rozměry změnit na 1×1×2 m a dostaneme druhou krychli zleva. Třetí krychle zleva se skládá z polygonů, hran a bodů. Celkem se skládá z 6 polygonů. Pokud chceme změnit její tvar na tvar druhé krychle, musíme nástrojem Vytažení vytáhnout do prostoru polygon na přední straně krychle tak, jak je znázorněno na obrázku.
2.3.1 Lekce 8 – Základy polygonálního modelování – tvorba hrnku V první lekci zabývající se polygonálním modelováním je krok po kroku vysvětlena tvorba jednoduchého keramického hrnku. Hrnek je vymodelován z jednoho kusu válce převedeného do polygonálního tvaru. Jeho povrch je dále upravován několika nástroji až k finální podobě.
8
Tento příklad je velmi snadný na pochopení a zažití práce s polygony, ale v porovnání se složitějším postupem ukázaným v následující lekci, je především v místě spoje ucha s tělem model hrnku málo podrobný a realistický.
Obrázek 2.3: 2 – Modelování ucha hrnku nástrojem Parametrické vytažení Obrázek 2.3: 3 – Scéna vytvořená v osmé lekci
2.3.2 Lekce 9 – Polygonální modelování – tvorba hrnku trochu jinak Tvorbě hrnku se bude věnovat i lekce devátá. Princip jeho tvorby je však zcela odlišný. Nejprve je hrubý obrys těla a ucha hrnku vymodelován nástrojem Rotace NURBS. Tyto dvě části jsou k sobě připojeny a poté je jeho tvar upravován pomocí nástrojů pro práci s polygony, body a hranami. Tím se dosáhne větších detailů a realističtějšího vzhledu hrnku především v oblasti spojení těla hrnku s uchem. Při porovnání s předchozím příkladem je pak rozdíl zcela zřejmý.
Obrázek 2.3: 4 – Spojování ucha hrnku s tělem Obrázek 2.3: 5 – Scéna vytvořená v deváté lekci
9
2.3.3 Lekce 10 – Polygonální modelování – tvorba čajové konvičky V poslední lekci k polygonálnímu modelování je ukázána tvorba čajové konvičky. Ta je modelována opět odlišným způsobem oproti předchozím lekcím. Nejprve je generátorem Rotace NURBS vytvořen vnější plášť konvice, kterému je posléze vytažením vytvořeno hrdlo. Vnější plášť je nástrojem Přemostění spojen s pláštěm vnitřním. Ucho konvičky je pak vytvořeno a připojeno k plášti podobně jako v předchozí lekci. Na konci lekce je pro zopakování vytvořena poklička na konvičku pomocí křivky a generátoru Rotace NURBS.
Obrázek 2.3: 6 – Vytažení hrdla konvičky nástrojem Magnet Obrázek 2.3: 7 – Scéna vytvořená v desáté lekci
2.3.4 Lekce 11 – Deformace Jedenáctá lekce, přestože je zahrnuta ve třetím cvičení, se vrací zpět k parametrickému modelování. Je zaměřena na funkce deformace, jimiž Cinema4D také oplývá. Deformátory jsou funkce deformující geometrii jiného objektu. Aplikací na určitý objekt lze jednoduše zdeformovat jeho tvar a velmi rychle vytvořit složitější objekt, jehož samotné modelování by jinak zabralo mnoho času a bylo by velmi pracné. Funkce deformace lze aplikovat na primitiva, křivky, NURBS objekty a polygonální objekty. Na rozdíl od generátorů NURBS se však ve správci objektů vkládají pod nadřazený objekt. Mnoho z nich je použitelných pro modelování i animaci (např. Zkroucení, Zúžení, Ohnutí). Jiné jsou však použitelné pouze při animaci (např. Exploze, Roztavení). S pomocí několika deformátorů a jednoduchých 3D objektů je v této lekci krok po kroku vysvětlen postup při tvorbě svícnu. Během několika minut se tak z obyčejné krychle, jehlanu a válce vytvoří na pohled složitý model. V devatenácté lekci se tento model opět použije při tvorbě reálně vypadajícího plamene svíčky s použitím částicového systému.
10
Obrázek 2.3: 8 – Modelování střední části svícnu deformátorem Zkroucení Obrázek 2.3: 9 – Scéna vytvořená v jedenácté lekci
2.4 Materiály, textury, osvětlení V předchozích lekcích byly vysvětleny základní nástroje a funkce určené pro modelování. Bylo v nich vytvořeno několik netriviálních modelů, jako například čajový servis, lžička, lampa a svícen. Jedná se však pouze o modely, které nejsou nijak povrchově upravené a tudíž zatím nevypadají příliš realisticky. Toto cvičení se proto bude zabývat tvorbou reálně vypadajících materiálů, aplikací textur a nasvícením scény. Pro tuto práci pak budou použity scény složené z modelů vytvořených v předchozích lekcích. V dalším cvičení se s těmito již otexturovanými a nasvícenými scénami bude dále pracovat při tvorbě animací.
2.4.1 Lekce 12 – Tvorba materiálů a textur a práce s nimi 1 Jelikož je problematika tvorby materiálů a jejich aplikací na modely velmi obsáhlá, jsou tyto výukové lekce rozloženy do dvou částí. První lekce slouží k zažití práce se správcem materiálů a vysvětluje postupně krok po kroku tvorbu reálně vypadajícího materiálu dvou druhů skla. Tyto materiály jsou aplikovány na skleničky a láhev vína vytvořené v lekci věnující se generátoru Rotace NURBS. Při tvorbě materiálu skla jsou postupně vysvětleny všechny jeho parametry a vliv na výsledný vzhled. Na konci lekce je pak vysvětlena tvorba textury etikety a princip její aplikace na láhev vína pomocí nástrojů pro aplikaci textur na objekty.
11
Obrázek 2.4: 1 – Původní neotexturovaná scéna Obrázek 2.4: 2 – Scéna vytvořená ve dvanácté lekci
2.4.2 Lekce 13 – Tvorba materiálů a textur a práce s nimi 2 Následující lekce zabývající se materiály a texturami se věnuje tvorbě materiálů více do hloubky. Je zde využita scéna složená z objektů vytvořených v předchozích lekcích. Na praktických příkladech je pak názorně vysvětlen princip tvorby složitějších materiálů, jako je dřevo a kov. Podobně jako v předchozí lekci je pak důraz kladen na vysvětlení vztahu jednotlivých parametrů materiálů s výsledným vzhledem. Dále je více do hloubky zpracováno téma aplikace reálně vypadajících textur na objekty. Okrajově je také v lekci vysvětlena funkce nástroje, který náhodně pomačká vybrané polygony. Této vlastnosti je využito při tvorbě pomačkaného ubrusu na stole.
Obrázek 2.4: 3 – Aplikace textury na přebal knihy Obrázek 2.4: 4 – Scéna vytvořená ve třinácté lekci
12
2.4.3 Lekce 14 – Osvětlení scény Ve čtrnácté lekci je vysvětlena tvorba reálně vypadajícího osvětlení a tím je model scény se stolkem vytvářený postupně v předchozích výukových lekcích dokončen. Krok po kroku je zde vysvětlen princip tříbodového osvětlení a vytvoření viditelné záře světla lampy. Modelování plamene svíčky a jeho světla je pak vysvětleno v lekci k částicovému systému.
Obrázek 2.4: 5 – Tvorba viditelného osvětlení žárovky lampy Obrázek 2.4: 6 – Scéna vytvořená ve čtrnácté lekci
2.4.4 Lekce 15 – Venkovní osvětlení Poslední lekce tohoto cvičení je věnována venkovnímu osvětlení, které se využívá především při tvorbě architektury, kde je nutné mít osvětlení odpovídající přesně skutečnému místu na zemi. Studenti jsou krok po kroku provedeni tvorbou jednoduché scény s oblohou a sluncem, kterému je věnována většina této lekce. Názorně je zde předvedeno jeho nastavení na přesnou zeměpisnou souřadnici, určitý čas a vytvoření efektu slunce na obloze pomocí čočkových odrazů.
Obrázek 2.4: 7 – Přesné nastavení polohy slunce na obloze Obrázek 2.4: 8 – Scéna vytvořená v patnácté lekci 13
2.5 Základy animace scény a částicový systém V posledním cvičení předmětu Základy počítačové grafiky jsou studenti seznámeni s tvorbou animací v programu Cinema4D a částicovým systémem. Nejinak je tomu u výukových lekcí aplikace Tutorial – Cinema4D [2.0], jejíž poslední čtyři lekce se věnují především animaci. Téměř všechny parametry objektů lze v programu Cinema4D animovat. Základy animace jsou pak založeny na ukládání stavů objektů v čase. Tyto záznamy se nazývají Klíčové snímky. Předpokládejme, že chceme vytvořit animaci nějakého objektu pohybujícího se po dráze tvaru trojúhelníku. Na počátku animace uložíme Klíčový snímek pozice objektu na vrcholku pomyslného trojúhelníku. Poté uložíme další dva Klíčové snímky se záznamem polohy objektu na dalších vrcholcích trojúhelníku. Po spuštění animace se bude objekt pohybovat přesně po trojúhelníkové dráze, přestože stačilo použít pouze tři záznamy Klíčových snímků. Poloha objektu mezi nimi je totiž dopočítávána interpolací. V poslední lekci tohoto cvičení se studenti také seznámí s částicovým systémem programu Cinema4D sloužícím ke generování skupiny objektů generátorem v čase.
2.5.1 Lekce 16 – Jednoduché animace V šestnácté lekci je krok za krokem vysvětlen postup při tvorbě jednoduché animace vytvořené pomocí Klíčových snímků a časové osy pod oknem se scénou. V již známé scéně s dřevěným stolem je rozpohybováno několik objektů. Plamen hořící svíčky je sfoukáván větrem. Hrnek položený na kraji stolu spadne na zem a roztříští se na kousky a mezi tím vším prolétá kamera sledující aktuální dění. Animace je vytvářena přímo v okně scény s ručním ukládáním klíčových snímků a posunem po jednoduché časové ose nacházející se pod modelačním oknem. Tato animace je vytvořena záměrně špatně. Je v ní mnoho zbytečných Klíčových snímků a hodnoty skoků objektů v čase jsou zadávány náhodně. Průlet kamery scénou tak obsahuje několik trhavých pohybů a naopak hrnek padá ze stolu konstantní rychlostí, jakoby neexistovalo gravitační zrychlení. Tyto neduhy však budou napraveny v další lekci, která se věnuje časové ose a F-křivkám. V této lekci je také ukázáno použití další deformační funkce. Pro efekt rozbití hrnku o zem je využita funkce Exploze. Její použití je možné pouze při tvorbě animací.
2.5.2 Lekce 17 – Pokročilá tvorba animace – časová osa, F-křivky Ve druhé lekci věnující se rozpohybování známé scény je dokončeno animování jednotlivých objektů upravením jejich animačních stop. V předchozí lekci byla animace vytvořena úmyslně tak, aby obsahovala chyby v podobě trhavých pohybů a mnoha Klíčových snímků. Tyto neduhy jsou odstraněny s využitím časové osy a F-křivek.
14
Na názorných příkladech je vysvětlen princip F-křivek a práce s nimi. Nejprve je ukázáno jak upravit pohyb kamery scénou tak, aby byl více plynulý a neobsahoval moc Klíčových snímků. Na druhém příkladu je pak podrobně vysvětlena tvorba gravitačního zrychlení při pádu hrnku.
Obrázek 2.5: 1 – Animování pádu hrnku ze stolu Obrázek 2.5: 2 – Úprava pádu hrnku pomocí F-křivek
2.5.3 Lekce 18 – Morphing V osmnácté lekci je vysvětlen princip morphingu. Jedná se o přeměnu tvaru a materiálu určitého objektu v čase na jiný objekt. To lze realizovat díky tomu, že program Cinema4D dovoluje animovat téměř všechny parametry objektů včetně změny materiálu. V lekci je názorně ukázána tvorba animace rozpuštění červené krychle v louži tekutého skla. Animace je založena na postupné změně parametrů materiálu a ukládání Klíčových snímků. Efekt rozpuštění krychle je pak vytvořen deformátorem Roztavení.
Obrázek 2.5: 3 – Animování tavení krychle Obrázek 2.5: 4 – Snímek vytvořené animace přeměny krychle na tekuté sklo
15
2.5.4 Lekce 19 – Částicový systém Poslední lekce této sbírky se zabývá částicovým systémem programu Cinema4D. Ten slouží k modelování skupiny určitých objektů, které se mohou pohybovat v čase. To je vhodné například pro vytváření hejna ryb, kouře nebo ohně. Základním prvkem částicového systému je Generátor, což je emitor, ze kterého vyletuje proud částic. Tyto částice mohou být ovlivněny dalšími funkcemi (např. Tření, Vítr, Gravitace) nebo mohou být postupně zrušeny Destruktorem. Cinema4D umožňuje použít jako emitovaný objekt prakticky cokoliv – od primitivních objektů po složitý model ryby s vlastní strukturou. V této lekci je krok po kroku vysvětlen postup tvorby reálně vypadajícího plamene svíčky. Ve druhé části je pak vytvořena jednoduchá animace hořícího plamene, který je sfoukáván větrem. Pro scénu byl použit svícen z lekce zabývající se deformačními funkcemi. Efekt plamene je vytvořený generováním částic všesměrového světla.
Obrázek 2.5: 5 – Vytváření efektu větru Obrázek 2.5: 6 – Scéna vytvořená v devatenácté lekci
16
Kapitola 3 Aplikace Tutorial – Cinema4D [2.0], změny oproti předchozí verzi 3.1 Popis úprav v aplikaci Tutorial – Cinema4D [2.0] Jak jsem již naznačil v úvodu práce, mým úkolem bylo především vytvořit výukové lekce a implementovat je do původní aplikace Tutorial - Cinema4D. Pro větší přehlednost v jednotlivých verzích jsem program Tutorial – Cinema4D s vloženými výukovými lekcemi přejmenoval na jeho druhou verzi, neboli Tutorial – Cinema4D [2.0]. Přístup k jednotlivým lekcím jsem zvolil přes nabídku pěti cvičení, které sdružují podobně zaměřené lekce. Ty jsou samostatně popsány ve druhé kapitole této práce. Nabídka s lekcemi se nachází v hlavním menu na pravé straně vedle položek Nápověda a Rejstřík, které jsem pro větší přehlednost odsadil od ostatních nabídek, vyvolávajících nápovědu k jednotlivým funkcím programu Cinema4D. Struktura menu Výukové lekce je následující: Výukové lekce
-----| --| | | | --| | | --| | | ---
Cvičení 1 ----Cvičení 2 ----------Cvičení 3 --------Cvičení 4 --------Cvičení 5 ---------
Primitiva Křivky Hyper NURBS Vytažení NURBS Rotace NURBS Potažení NURBS Protažení NURBS Práce s polygony 1 Práce s polygony 2 Práce s polygony 3 Deformace Materiály a textury 1 Materiály a textury 2 Osvětlení scény Venkovní osvětlení Animace 1 Animace 2 Morphing Částice
Nabídka menu byla vytvořena v Delphi nástrojem Menu Designer. Jednotlivé položky pak reagují na událost OnClick vyvoláním požadovaného okna s nápovědou, případně i okna úpravy materiálů a načtením obrázků do jednotlivých oken programu.
17
Zde je ukázka kódu, který otevře okno s první stránkou nápovědy ke třetí lekci, do jednotlivých oken programu načte aktuální obrázky a ve správci atributů zakroužkuje pro zvýraznění volbu segmentace krychle : pole[stranka].text:=('lekce/text/hyper_lekce_1.txt'); pole[stranka].sprAtributu:=('lekce/pictures/hyper_atributy_lekce_1.bmp'); pole[stranka].sprObjekt:=('lekce/pictures/hyper_objekt_lekce_1.jpg'); pole[stranka].sprMatNast:=('lekce/pictures/hyper_material_lekce_1.jpg'); pole[stranka].scena1:=('lekce/pictures/hyper_scena_lekce_1.jpg'); pole[stranka].panel2:=true; pole[stranka].krouzek2.x1:=(210); pole[stranka].krouzek2.y1:=(105); pole[stranka].krouzek2.x2:=(295); pole[stranka].krouzek2.y2:=(170);
3.2 Popis prostředí aplikace V této podkapitole stručně popíši prostředí programu Tutorial – Cinema4D [2.0], jeho ovládání a význam samostatně zobrazovaných oken.
Obrázek 3.2: 1 – Okno aplikace se zobrazenou výukovou lekcí ke tvorbě materiálů
18
3.2.1 Popis oken programu Rozhraní aplikace Tutorial – Cinema4D [2.0] vypadá stejně jako Cinema4D v defaultním nastavení vzhledu. Význam jednotlivých oken je pak identický. V aplikaci se dále mohou samostatně zobrazit další okna, mající tento význam: Okno nápovědy – zobrazuje textovou nápovědu ke zvolenému nástroji, nebo zobrazuje text k jednotlivým krokům výukové lekce. Nachází se v levém dolním rohu obrazovky. Okno rejstříku – zobrazí se přes položku Rejstřík v hlavní nabídce. Slouží pro rychlé vyhledání požadovaného nástroje dle názvu. Okno materiálu – v případě potřeby se zobrazí v novém okně a slouží jako doplňková nápověda pro vysvětlení tvorby a úpravy materiálů. Toto okno je použito ve výukových lekcích zabývajících se tvorbou materiálů a prací s texturami.
3.2.2 Ovládání aplikace Po spuštění aplikace Tutorial – Cinema4D [2.0] se otevře okno mající stejný vzhled jako program Cinema4D. Jeho ovládání je pak velmi intuitivní. Po kliknutí na příslušnou ikonu, nástroj, atribut nástroje či zmáčknutí klávesové zkratky se do jednotlivých oken virtuální Cinemy4D načtou aktuální obrázky a v novém okně se otevře textová nápověda vysvětlující jeho funkci. Nápověda může být dále doprovázena jednoduchou animací spustitelnou v okně se scénou a pro zvýraznění atributů nástrojů se pak ve správci atributů používá červené zakroužkování. U některých příkladů lze také spustit vysvětlující videosekvenci přes tlačítko Přehrát ukázku. Práce s výukovými lekcemi je pak podobná zobrazování nápovědy k jednotlivým nástrojům. Přes hlavní nabídku si lze vybrat danou lekci a kliknutím na její název se načte startovní konfigurace obrázků virtuální Cinemy4D. Dále se v okně nápovědy zobrazí text, který studenty krok po kroku vede při modelování scény. Pohyb mezi jednotlivými obrazovkami se pak realizuje tlačítky >> a <<. V případě nejasností se tak lze jednoduše vrátit zpět k nepochopenému postupu.
19
Kapitola 4 Struktura a popis internetové prezentace věnované výukovým lekcím 4.1 Popis internetové prezentace Nedílnou součástí mé bakalářské práce bylo vytvoření internetové prezentace zabývající se výukovými lekcemi implementovanými do programu Tutorial – Cinema4D. Prezentace je veřejně přístupná na adrese http://www.fi.muni.cz/~xhajek6/cinema4d/. Tato internetová prezentace slouží jako doplněk k výše uvedené aplikaci. Kromě jednotlivých lekcí v textové formě s vysvětlujícími obrázky se dále na stránkách nachází odkazy na jiné internetové stránky věnující se modelování a tvorbě animací v programu Cinema4D. Tyto odkazy mají posloužit pro případné zájemce o tuto tematiku k rozšíření a prohloubení získaných znalostí.
Obrázek 4.1: 1 – Startovní stránka internetové prezentace Internetová prezentace je vytvořena jednoduchou a přehlednou formou. Stránky jsou optimalizovány pro rozlišení monitoru 1024×768. Toto rozlišení jsem zvolil proto, že mnoho notebooků a starších počítačů nedovoluje zvolit vyšší rozlišení. Díky použití XHTML kódu a CSS stylů je její načítání velmi rychlé i na pomalejším připojení.
20
Vzhled stránky je pak rozdělen na dva celky. Na levé straně se nachází nabídka položek. Po zvolení dané položky se do hlavního okna na pravé straně načtou požadované informace.
Obrázek 4.1: 2 – Výuková lekce k Hyper NURBS načtená v hlavním okně
4.2. Struktura internetové prezentace Internetová prezentace je napsána za použití XHTML kódu. Dále je využito CSS stylů pro nadefinování vzhledu stránky. Na dvou místech prezentace jsem také použil PHP kód. Celá prezentace je psána s ohledem na rychlost a přehlednost a všechny stránky prezentace jsou XHTML 1.0 Transitional validní. Nejdůležitější částí této internetové prezentace je soubor styl.css, který v sobě obsahuje nadefinované styly pro vzhled celé prezentace. Tento soubor se styly je také úspěšně zvalidován a společně s XHTML validními stránkami je internetová prezentace zobrazovaná správně na všech počítačích nezávisle na zvoleném prohlížeči. Na ukázce níže je část souboru styl.css definující vzhled hlavního okna prezentace: #menu {position: absolute; /* nabídka položek */ width: 220px; height: 640px; top: 10px; left: 5px; color: white; background-color: rgb(70,130,180); border: 3px solid; border-color: white; padding: 5px;}
21
Dále jsou v souboru styl.css nadefinovány všechny styly nadpisů, základního bloku textu, odrážek v nabídce položek a také vzhled obrázků a jejich rámů. Na další ukázce je obsah souboru styl.css definující nadpis první úrovně a základní blok textu společně s jeho variantou zarovnanou do bloku: h1 {color: white; background-color: rgb(70,130,180); text-align: center; font-weight: bold; font-family: Verdana, Sans-serif; font-size: 18pt;} p {color: white; background-color: rgb(70,130,180); font-family: Verdana, Sans-serif;} .textblok {color: white; background-color: rgb(70,130,180); font-family: Verdana, Sans-serif; text-align: justify;}
Za použití CSS stylů lze také nadefinovat vzhled odkazů v HTML stránce. Toho jsem využil pro efekt inverzního zobrazení při volbě odkazu. To je nadefinované v souboru styl.css následovně: a a:link
{text-decoration: none;} /* odkazy - nepodtržený */ {color: white; /* odkaz */ background-color: rgb(70,130,180);} a:visited {color: white; /* odkaz - navštívený */ background-color: rgb(70,130,180);} a:active {color: white; /* odkaz - aktivní TAB/myš */ background-color: rgb(70,130,180);} a:hover {color: rgb(70,130,180); /* odkaz nad kterým je kurzor */ background-color: white;}
Po nadefinování stylů v souboru styl.css lze psát vlastní HTML kód stránky. Na ukázce je kód startovní stránky prezentace (pro zkrácení však bez zobrazených textů):
[VÝUKOVÉ LEKCE - CINEMA4D]
/* tady je přivítání */
/* tady je text stránky */