Základy tvorby 3D animované scény v Unity
29. 4. 2020
Základy tvorby 3D animované scény v Unity

Podařilo se vám minule napsat hru v Pythonu a chcete si vyzkoušet regulérní herní vývoj? Dnes vám ukážu, jak si lze snadno vytvořit 3D animovanou scénu v Unity engine (ke stažení zde). Ten se hlavně používá právě pro herní vývoj (hry jako Inside, Cuphead nebo Hollow Knight jsou právě z Unity), ale běžně s ním pracují i filmová studia pro vytváření CGI scén a samozřejmě tak vznikají i animované filmy. Animace udělají pro pocit ze hry hodně, jelikož oživují herní objekty a umožňují tak hráči se lépe vžít do hry.

Pojďme se tedy podívat, jak pomocí bezplatných nástrojů a modelů v Unity vytvořit jednoduchou scénu:

unity3D.gif

Nejprve v Unity založím nový 3D projekt.

nejprve3D.png

Unity má v klasickém rozložení okno pro manipulaci s 3D scénou nalevo a pohled herní kamery na scénu vpravo. V levém panelu je seznam všech herních objektů a v tom úplně napravo se provádí nastavení vybraných objektů a entit. Panel dole pak obsahuje importované zdroje, jako modely, animace, zvuky, atp.

panelobsahuje.png

Vytvořím tedy první 3D objekt, tzv. “Plane”, přes menu GameObject - 3D Object - Plane. Ten poslouží jako “podlaha” pro 3D model postavy, aby nepadala nekonečným herním prostorem. Unity má klasické manipulační nástroje s 3D scénou - posun, rotace a škála.

manipulacninastroje.png

Nyní potřebuji 3D model postavy. Použiju bezplatný balík Polygon starter, který obsahuje základní modely a prostředí. Do Unity ho pak stačí naimportovat přes Package Managera (všechny balíky přidané přes webové rozhraní Unity Asset store se synchronizují přes uživatelský účet přímo do Unity engine).

synchronizace.png

Po importu vytvořím nový prázdný model, který bude sloužit jako “rodič” animovaného 3D modelu (opět přes menu, GameObject - Create Empty). Objekt se vloží na souřadnice (0,0,0), tzn. přímo do středu podlahy Plane. Objekt ještě pro přehlednost přejmenuji na Player. V okně prohlížeče zdrojů najdu herní model postavy z balíku Polygon Starter, vybírám tu s názvem SM_Character_Male_01.

sm_character.png

Model přetáhnu do levého okna objektů na předtím vytvořený objekt Player - zobrazí se i ve scéně.

player.png

Chybí nám už jen přidat animaci. Ručně animovat model by zabralo hodiny, využiji proto webu mixamo.com, kde stahuji breakdance animaci. Zdarma tam poskytují rozličné herní animace, pro chůzi, běh, smrt hráče atp.

Animaci naimportuji do Unity (v prohlížeči projektu dole, pravý klik - Import New Asset) a stejně tak vytvořím Animator Controller, pro ovládání animace (pravý klik - create - animator controller). Po importu animaci vyberu a změním její parametry, aby s ní bylo možné manipulovat. Její typ nastavuji na Humanoid a ukládám přes Apply. Také měním její jméno na breakdance na záložce Animation.

breakdance.png

Pak vyberu vytvořený Animator Controller, a do nově zobrazeného okna Animator přetáhnu animaci breakdance. Automaticky se napojí na vstupní stav Entry.

entry.png

Teď už jen stačí přiřadit tento Animator Controller modelu postavy a animace se spustí!

animacespusti.png

Animace tvoří velkou část hry, takže je dobré si s nimi dát tu práci pro co nejautentičtější pocit při hraní. Jak jsme si ukázali, tak napojení animací na herní modely je vcelku jednoduché, a s online databázemi jako je Mixamo si člověk vystačí i při tvorbě rozsáhlejší hry. Pro specifičtější potřeby už bude samozřejmě nutné vytvořit si animace vlastní, v praxi se humanoidní animace dělají pomocí motion capture, jelikož modelovat je manuálně je velmi časově náročné a nepřesnosti mohou narušit “game feel”.

V příštím díle tohoto miniseriálu o Unity se můžete těšit na základy ovládání pohybu a to pomocí C# Unity skriptů.

Jan Jileček