← späť

2 : ANIMÁCIA ŠTRUKTÚRY OBJEKTU

Na minulej hodine sme riešili ako transformovať objekty a ako pohybovať s objektami po scéne. Dnes sa pozrieme na to, ako animovať vnútornú štruktúru objektu, čiže mesh. Čiže chceme animovať vlastnosti, ktoré by sme bežne upravovali cez Edit Mode.

Ak si pamätáte trošku z minulej hodiny, objekty sme animovali tak, že sme každému objektu zvlášť pridali niekoľko keyframes, ktoré si v konkrétnych framoch pamätali nejakú vlastnosť objektu, ktorú sme chceli animovať (napríklad polohu).

Animácia jednotlivých vrcholov (alebo hrán a stien) meshu sa robí trošku inak ako animácia jednotlivých objektov scény. Dôvodom je fakt, že mesh môže mať aj tisícky vrcholov a pamätať si pre každý vrchol zvlášť Keyframes by bolo dosť neprehľadné. Je na to určený iný tool, ktorý sa volá Shape Keys.

Shape Keys

V princípe sa to rieši takto: pre Mesh sa určí niečo ako zákaldný tvar – každý vrchol si v ňom zapamätá, kde stojí. Potom objekt zeditujeme tak, že vrcholy popresúvame na nové pozície, čím zmeníme tvar objektu. Tento tvar si zapamätáme ako Shape Key. Vyskúšajme si to.

Otvorte si nový projekt s kockou v strede. Kocku si označte. V pravom menúčku v časti Object Data Properties si pridajte tri nové Shape Keys. Všimnite si, že sa automaticky pomenujú Basis, Key 1 a Key 2.

Tieto tri Shape Keys reprezentujú dve rôzne transformácie meshu. Prepnite sa do Edit mode. Basis nechajte tak ako je a pre Key 1 a Key 2 vykonajte nejaké transformácie meshu tak, aby ste ich vedeli opticky rozlíšiť (napríklad pri jednom posuňte konkrétny vrchol niekam, pri druhom nejakú časť kocku naškálujte).

Všimnite si, že ak poklikáte na jednotlivé Shape Keys, každý si pamätá svoju transformáciu. Pamätajú si ich ako zmenu oproti stavu Basis, v podstate sú to tri zobrazenia. Basis je identita, ostatné sú nejaké transformácie.

Ak sa prepnete naspäť do Object Mode, kocka sa vám vráti do tvaru basis.

Tak ich poďme využiť do animácie. Shape Keys sú v skutočnosti iba ďalšia číselná hodnota, ktorej vieme priradiť Keyframe. Číselná je v tomto zmysle: pre každý Shape Key si blender pamätá hodnotu medzi 0 a 1. Medzi stavom Basis a konkrétnym Shape Key vám urobí lineárnu interpoláciu, pričom táto číselná hodnota vám povie v akom parametri tejto interpolácie sa nachádzame.

Takže ak si to chceme animovať. Urobíme si na začiatku Keyframe, ktorý si pre Key1 zapamätá hodnotu 0. Nastavíme sa na iný frame, parameter Key 1 (v menúčku sa volá value) nastavíme na nejaké iné číslo (napr 0.9) a pridáme Keyframe. Blender nám bude interpolovať stavy (1Basis + 0Key1 + 0Key2) a (1Basis + 0.9Key1 + 0Key2).

Už z tohto vidno, že jednotlivé Shape Keys môžeme aj kombinovať. Vytvorte animáciu, kde budú aspoň 4 Keyframes s rôznymi hodnotami pre Key 1 a Key 2.

Samozrejme, ak máme týchto Shape Keys viac, môžeme si ich premenovať, vždy dvojklikom na názov.

SAMOSTATNÉ CVIČENIE I

Pomocou Shape Keys vytvorte animáciu, kde sa bude opica striedať dva výrazy tváre. Aby animácia nepôsobila strnulo, vytvorte aj dva Shape Keys pre drobné pohyby (ako napr naklonenia hlavy) a zakomponujte ich do animácie.

Hint: ak sa vám zdá opica príliš hranatá, použite Modifier Subdivision surface. (blender premiestnil tlačítko na aplikovanie modifiers, teraz je schované v hornej šípočke)

Hint: pre plynulejší typ Editovania nezabudnite na proportional Editing.

Hint: výraz tváre nie sú len ústa a oči, nebojte sa zahrnúť aj celkový tvar hlavy. Nezabúdajte, že výraz tváre nemusí byť symetrický.

Príklad riešenia:

Riešenie mi pošlite ako .blend súbor:

Shape Keys nepočítajú so zmenou samotnej topológie meshu. Teda ak chcete v objekte pridať nové vrcholy, aby na ňom napríklad urobili ryhu, treba mať všetky vrcholy existujúce už na začiatku. Vieme ich iba presúvať – nevieme ich mazať alebo pridávať.

(pozn. zrejme existuje nejaký addon, ktorý vám takúto možnosť pridá, ale hlbšie som to neskúmala).

Transformácia jedného objektu na druhý

Pri jednoduchších tvaroch to vieme urobiť manuálne pomocou ShapeKeys. Teraz sa pozrieme na komplikovanejšiu možnosť. Transformujeme si guľu na opicu.

Najprv si ale musíme ošetriť topológiu. Opica má zjavne inú topológiu ako guľa. Zriešime to tak, že si vytvoríme opicu a tú následne zdeformujeme na tvar gule. Pridajte si do scény opicu a guľu. Dajte pozor na to, aby boli obidve umiestnené na rovnakej pozícii.

Na deformáciu na daný tvar môžeme využiť modifier Shrinkwrap. Ten nám opicu zprojektuje na guľu. Má na výber niekoľko metód projekcie, nám vyhovujú nastavenia tak ako sú.

Všimnite si že pri tlačítku Apply máme na výber aj Apply as ShapeKey (alebo Save as ShapeKey), čiže miesto deformácie objektu nám z toho rovno urobí ShapeKey.

Nakoniec to vyzerá takto. Vyskúšajte si to.

(pozn: na tomto príklade je naša zdefromovaná guľa relatívne škaredá. Na krajšiu vy trebalo detailnejší mesh, teda pridať ešte nejaký ten Subdivision surface opičke aj guli)

Vlny

Vytvorte si nový projekt. Blender má veľmi peknú simuláciu vlnenia. Pridajte si plochu a použite na ňu modifier Wave. Ak spustíte animáciu, zistíte, že vám tá plocha len tak poskakuje.

To preto, že sa snaží vlniť, len nemá čím. Potrebuje viac vrcholov. Preto použijeme subdivide.

Pre tento modifier je pekné vyskúšať si rôzne jeho vlastnosti. Nebudem ich to rozpisovať, sú celkom zjavné podľa názvu. Pmocou nich si môžete vytvoriť rôzne druhy vlnení. Vyskúšajte si to.

Dráha kamery

Vytvorte si nový projekt. Kurzor premiestnite niekam mimo kocky (v ľavom menúčku si vieme prepnúť, či chceme, aby sme vedeli označovať objekty, alebo chytať kurzor). Ideme si pridať dráhu, po ktorej pôjde kamera. Kliknite Add → Curve → Path.

Získali sme takú paličku. V Edit mode si ju môžeme upravovať. V skutočnosti je to NURBS krivka. Jednotlivé určujúce vrcholy vieme posúvať tak ako normálne vrcholy v meshoch.

Ak chceme pridať nové vrcholy, môžeme využiť buď subdivide, alebo extrude (skratka E). „Hustota“ krivky je dôležitá – má vplyv na to, ako rýchlo po nej kamera pôjde. Vytvorte si nejakú dráhu okolo kocky.

Teraz priradíme kameru ku krivke. Vráťte sa do Object Mode. Označte si kameru a krivku. Stlačte Ctrl+P → Follow Path.

Ak teraz spustíte animáciu, kamera sa bude pohybovať pozdĺž krivky, ale bude pritom dodržovať pôvodný odstup. Musíme si ju teda presunúť na začiatok krivky.

Buď si môžeme v Edit Mode pozrieť súradnice dotyčného vrcholu (nájdeme ich keď si vysunieme pravé menúčko skratkou N, ale dajte si pozor, či beriete lokálne alebo globálne súradnice), alebo si pomocou skratiek presunieme Kurzor na daný bod a následne Kameru na Kurzor. Na akcie tohto typu je skratka Shift+S (tento postup je aj na gife)

Teraz nám už pekne putuje po krivke, ako sme chceli. Ešte musíme vyriešiť kam sa kamera pozerá. Kamera sama o sebe dodržuje stále rovnaký uhol s krivkou, tj ako sa vám rotuje krivka tak sa rotuje aj kamera.

My chceme, aby nám sledovala kocku. Dosiahneme to pomocou pravého menúčka, kde si pridáme Object Constraint typu Track To.

Vo vlastnostiach mu treba ešte nastaviť aký objekt sledujeme, my chceme kocku. Dá sa tam ešte nastaviť ktorá os sa bude tým smerom pozerať a aký ju Up vector. Defaultne máme nastavený smer pohľadu -z a up vector y, čo nám vyhovuje. Rovnako by ste mohli sledovať aj nejaký pohybujúci sa objekt.

Path nie je vyhradený iba pre kamery. Rovnako môžete po ňom nechať bežať nejaké objekty.

Ak chcete sledovaniu krivky nastaviť viac vlastností, miesto skratky použite v pravom menúčku Add Object Consstraint → Follow path. Uitočná vlastnosť je napríklad Offset, ktorá nám dovolí, aby predmet sledoval krivku s nejakým oneskorením.

SAMOSTATNÉ CVIČENIE II

Vytvorte "hadíka" zloženého z piatich samostatných (nedotýkajúcich sa) guličiek idúcich za sebou, ktorí chodí dokolečka po krivke. Kamera sleduje hadíkov pohyb.

Riešenie mi pošlite ako .blend súbor: