Animace tankového pásu, od píky a na díly (1) - Grafika.cz - vše o počítačové grafice

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:



3D grafika

Animace tankového pásu, od píky a na díly (1)

30. července 2009, 00.00 | Jsem občas kritizován za to, že se více, alespoň poslední dobou, věnuji recenzím a méně návodům. Dnes to snad alespoň částečně napravím a podíváme se na jedno populární téma, animaci tankového pásu v CINEMĚ 4D a to ze všech stran. Návod je určen zejména začínajícím uživatelům.

Je to asi slabina recenzenta, že dříve či později, po několika stovkách článků prostě začne více sledovat zajímavé nástroje a nemá sil již vymýšlet nová témata. Stáří je hrozná věc a opotřebování je asi jeho znakem. Proto jsem občas vděčný samotným uživatelům, že se ptají a sem tam dají i dobrý námět na horor, vlastně článek. Dnešní bude určen opravdu jen začátečníkům a tak jen doufám, že pokročilí na mne nezanevřou...

Animace po křivce, ohlédnutí co je zapotřebí než skutečně začneme

Animace objektu po křivce je v zásadě elementární znalostí, která je podstatná pro velké množství situací. Ono nemusí jít jen o animaci nějakého objektu ve scéně, který sleduje kamera, ale také o kameru samotnou, a pak můžeme s takřka 100% jistotou říci, že animace po křivce je asi nejvyužívanější animační vlastností (neříkám animací, záměrně tvrdím vlastností) vůbec.

Než se dostaneme k uvedenému tankovému pásu, musíme se podívat na tuto „rodičovskou“ vlastnost. Tato vlastnost nám umožňuje animovat po křivce jakýkoliv objekt a také nám umožňuje velmi precizně řídit množství dalších vlastností.

Než si ale rozanimujeme náš první objekt po křivce, musíme si tuto křivku připravit. Křivka je vlastně cestou, trajektorií, a tak je velmi důležitá.

Za cestu můžeme použít jakoukoliv křivku, je ale podstatné jedno nastavení. A to nastavení tzv. interpolačních mezilehlých bodů. Všechny křivky ve 3D jsou sice matematicky „oblé“, nejsou segmentované, ale v okamžiku, kdy nějak vstupují do scény, již segmentované jsou. Jedná se o vnitřní segmentaci, která určuje, jak se například rozdělí polygony ve funkci VytaženíNURBS, když vytáhneme logo – křivku – do prostoru. K dispozici máme v nastavení křivky hned několik režimů, ale z pohledu animací je nejdůležitější režim „jednotný“.

Jednotný režim interpolace mezilehlých bodů vlastně není vůbec moc vhodný v případě modelování plošných útvarů (například onoho loga) a to proto, že tento režim pravidelně segmentuje křivku (interně) na stejně velké segmenty. To ale znamená, že v případě dynamické změny tvaru je detail křivky nedostatečně segmentovaný, což se může projevit malou kvalitou takového tvaru. Naopak v případě dlouhých táhlých rovinek vzniká zbytečná segmentace, která jen a pouze zvyšuje počet polygonů a nemá vliv na tvar. Jenže tento režim, jehož nevýhodou je pravidelná segmentace, má také jednu výhodu, a tou je, s podivem, pravidelná segmentace. Otázka není co je výhoda a co nevýhoda, ale kdy je výhodné a kdy nevýhodné tuto interpolaci, a také interpolace ostatní, použít.

01

02

03

04

Vezměme tedy pro tento okamžik za fakt, že pro animaci po křivce je vhodné použít interpolaci mezilehlých bodů nastavenou na volbu „jednotná“. Musíme se nyní na chvilinku soustředit na vlastnost, kterou budeme animovat objektem, například kamerou, po křivce.  

Máme tedy ve scéně vytvořený objekt a tento objekt si vybereme ve Správci objektů. Klikneme na něj pravým tlačítkem myši a vybereme Vlastnosti > CINEMA 4D vlastnosti > Natáčet ke křivce.

Pokud si vybereme tuto vlastnost a přejdeme do jejího nastavení ve Správci nastavení uvidíme, že zde máme k dispozici dvě odkazová pole a několik dalších parametrů. V této chvíli nás bude zajímat jen pole „Cesta ke křivce“, do kterého můžeme zadat křivku, kterou jsme si vytvořili dříve. Z důvodu testování a také pochopení vlivu mezilehlých interpolačních bodů doporučuji použít křivku s divokými přechody zatáček a dlouhých rovinek.

Abychom si mohli animaci otestovat, musíme si nahrát klíčové snímky pozice objektu na křivce. Ujistíme se, že máme nastavený posuvník časové osy na snímku 0 a stiskneme tlačítko Ctrl (CMD) a klikneme na kroužek, který je v nastavení vlastnosti Natáčet ke křivce, parametru Pozice. Tím nahrajeme klíčový snímek v pozici objektu na křivce, v místě délky křivky „0“. Přejdeme do dalšího snímku animace, například snímku 90 (případně si animaci prodlužte v nastavení ve spodní části okna programu) a napíšeme do hodnoty pozice 100%, načež opět stejným postupem nahrajeme kl. snímek. Můžeme si vše pustit a voila, máme jednoduchou animaci...

05

Jenže, naše animace je tak trochu „neřízená střela“. Zatím jsme vůbec nemohli kontrolovat, jak rychle a také kam (i to lze) se objekt pohybuje. Je tomu tak proto, že jsme nahráli koncové stavy animace, ale průběh jako takový jsme nenastavovali. Ten se definuje zadáním tzv. funkční křivky, což je křivka průběhu nějakého parametru v čase animace. Výhodou této křivky je, že můžeme poměrně kvalitně definovat průběh aniž bychom museli zadávat nové kl. snímky.   

Zkratkou Shift+F3 si spustíme okno správce animací – časové osy. V tomto okně si najdeme vpravo tři ikonky, z nichž první bude aktivní. To je totiž ikona režimu kl. snímků. Aktivujeme si druhou ikonu, ikonu křivky. To je ikona funkčních křivek.

Na pravé straně časové osy je seznam objektů a také případně vlastností, prostě všeho, co lze animovat. Vybereme si náš objekt a můžeme si obdélníkem vybrat celou oblast vpravo, ve které je vykreslena, prozatím šedá, křivka. Tím, že si vybereme všechny její body, i když jsou jen dva, se prosvětlí  uvidíme ji lépe. Mimo to se ve Správci nastavení zobrazí parametry obou vybraných bodů, což jsou i parametry kl. snímků. Neudělali jsme totiž žádnou změnu, funkční křivky jen jinak zobrazují kl. snímky. Pořád to ale jedno jest.

Už z tvaru křivky vidíme, že průběh v čase (spodní osa X) je proměnlivý. Že objekt nejdříve pomalinku startuje, pak se rychle rozjede a pak brzdí. Možná ale byla situace i u vás odlišná a objekt se nechoval přesně podle této křivky. Čím to ale může být?

Abychom si otestovali vliv interpolace mezilehlých bodů na průběh animace, tak pokud máme stále vybrané oba kl. snímky – tedy celou fč. křivku, přepneme parametr Interpolace u bodů z hodnoty Křivka na hodnotu Lineární. Tato hodnota způsobí, že objekt by měl po naší křivce putovat stále stejnou rychlostí od začátku do konce. Žádné zrychlování, žádné zpomalování, pěkně stále stejným tempem. Jenže neputuje. Protože interpolace mezilehlých bodů...

07

A jsme zase zpátky u křivky. Aby se mohl objekt pohybovat konstantní rychlostí, pak je potřeba, aby nejenom byla nastavena konstantní rychlost v nastavení animované vlastnosti, ale také aby byla křivka rozdělena na stále stejně velké segmenty. To je zásadní podmínka. A proto bychom měli vždy na křivce, cestě pro animaci, nastavit mezilehlou interpolaci bodů na volbu „jednotná“.

Jakmile nastavíme na křivce tuto interpolaci zjistíme, že se objekt pohybuje konstantní rychlostí. A to je dobrý začátek pro další úpravy animace. Nejdříve si ale, než si takové úpravy vždy uděláme, musíme vhodně zvýšit segmentaci mezilehlých bodů, aby nebyla křivka příliš „hrubá“ a lámaná. Čím vyšší hodnota také bude, tím více se bude zvyšovat počet bodů a tím bude křivka přesnější (mezi těmito body jsou vlastně jen úsečky, jinak mezilehlé body křivky si můžeme zobrazit pokud křivku převedeme funkcí „Současný stav do objektu).

Pokud je dostatečně vysoká hodnota počtů mezilehlých bodů křivky a křivka sama se zdá pro animaci dostatečně kvalitní, můžeme si opět spustit animaci, abychom si otestovali průběh pohybu objektu po křivce. Nyní by již měl skutečně mít konstantní rychlost po celé délce křivky. Máme tedy dostatečný prostor pro další úpravu parametrů animace pomocí funkční křivky.

Spustíme si opět Správce animací – časovou osu a opět si najdeme křivku průběhu animace objektu po křivce, stejně jako před chvílí. Opět si vybereme obdélníkem oba body a ve Správci nastavení si v parametru Interpolace (v tomto smyslu interpolace kl. snímků) nastavíme hodnotu křivka. A můžeme si upravit tečky v místech kl. snímků a tím také průběh animace. Pokud budeme chtít, můžeme jen prostým kliknutím se stiskem klávesy Ctrl do tvaru funkční křivky vytvořit nový kl. snímek s novými tečnami, které opět můžeme libovolně upravovat. Vertikálním posunem bodu křivky měníme v tomto případě procentuální hodnotu vytvořeného kl. snímku, posunem vlevo a vpravo měníme polohu v čase.

07

Pokud si vybereme jeden bod křivky, tak jeho parametry v numerické podobě najdeme ve Správci nastavení, kde můžeme definovat vše co je z pohledu animace podstatné. Hodnotu snímku (tedy procenta pozice), polohu snímku v čase (tedy snímek animace), interpolaci bodu a tak dále.

Objekt se nám již krásně pohybuje po křivce, ale zatím je trochu nešťastně zarovnán. Je jakoby prostrkován a to není úplně přirozené. Příslušné nastavení, které nám řeší tuto situaci najdeme opět v nastavení vlastnosti Natáčet ke křivce.

Zde tedy najdeme parametr v podobě jednoduché volby Tangenciálně ke křivce, který zajistí, že osa objektu bude směřovat na další bod křivky a tudíž bude objekt vždy správně v této jedné ose zarovnán.

09

To, ve které ose bude objekt zarovnán, můžeme řídit přepínacím parametrem s názvem os, který je v nastavení pod aktivací zarovnání. A to je skoro vše, i když... V případě uzavřené křivky může dojít u režimů zarovnání objektu v jiném směru než ve směru Z k nekorektnímu zarovnání a tudíž Vás prosím a kladu na srdce, pokuste se vždy využívat tangenciální zarovnání ve směru osy Z. Eliminujete si tím případné potíže (v případě uzavřených křivek).

V případě, že je křivka uzavřená, ale i v případech ostatních může být ještě důležité zarovnání podle další křivky, řekněme křivky směrové. Taková křivka definuje orientaci objektu po jeho druhé ose, nikoliv po ose směřování.

Aby taková křivka fungovala správně, je důležité ji korektně připravit. V první řadě musí být správně nastavené pořadí bodů. Tedy musí být stejné, jako pořadí bodů křivky cesty (musí směřovat stejným směrem, tedy bílá musí být vždy na stejné straně). Další podmínkou je, že bychom měli opět nastavit jednotnou segmentaci mezilehlých bodů, protože celý systém křivky pro zarovnání si můžeme představit jako nastavení vlastnosti cíl, která směřuje v nějaké ose, kdy cílový objekt putuje po směrové křivce ve stejném nastavení vlastnosti, jaké ovlivňuje pohyb našeho animovaného objektu. 

09

Známe tedy vše podstatné a příště to může začít. A nebude to malé!

Tématické zařazení:

 » Rubriky  » VSE  

 » Rubriky  » 3dscena  

 » Rubriky  » Go verze  

 » Rubriky  » 3D grafika  

 

 

 

 

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

Uživatelské jméno:

Heslo: