Vianoce v ITnetwork sú tu! Dobí si teraz kredity a získaj až 80 % extra kreditov na e-learningové kurzy ZADARMO. Zisti viac.
Hľadáme nové posily do ITnetwork tímu. Pozri sa na voľné pozície a pridaj sa k najagilnejšej firme na trhu - Viac informácií.

10. diel - 3D strieľačka v Unity - Príprava animácií prebíjanie zbrane

V minulej lekcii, 3D strieľačka v Unity - Úprava terénu , sme sa naučili upravovať terén, pridávať stromy a trávu.

V dnešnej lekcii si vytvoríme prechody k animáciu s nabíjaním zbrane. Najskôr si vytvoríme prechod medzi animáciami a potom pridáme jednotlivé podmienky k prechodom, aby náš program vedel, kedy má aké animácie spúšťať. Nebojte, tvorba prechodov nebude tak rozsiahla, ako naposledy, keď sme pracovali v Animator:)

V prílohe máte umiestnený súbor s jednotlivými balíčky používanými v tomto kurze.

Animator

Klikneme na šípku vedľa objektu Assault_Riffle_01_FPSController, tým sme si rozrolovali podobjektoch. Teraz klikneme na šípku vedľa podobjektoch s názvom Gun Camera a ďalej ľavým tlačidlom na podobjektoch arms_assault_rifle_01. V okienku Inspector sa nám zobrazí komponent Animator.

Tento komponent má veľa vlastností, my dvakrát klikneme na nápis assault_rifle_01 v obdĺžniku, vedľa ktorého je napísané Controller:

Tvorba 3D hier v Unity

Týmto úkonom sa nám otvorí Animator.

Prečo budeme tvoriť nové parametre

Ak v ľavej časti nevidíte parametre, kliknite na záložku Parameters, kde sa nachádzajú všetky parametre pre daný objekt, ktorý ovládame. Vidíme parametre Inspect, Holster, Run, Aim, Walk a Shoot. Aby sme mohli určovať, kedy sa bude spúšťať animácia nabíjania, potrebujeme vytvoriť dva nové parametre. Možno by ste si mysleli, že nám bude stačiť jeden, ale nebude. Tvorca nášho balíčka nám totiž vytvoril dve animácie:

  • Reload Out Of Ammo - Tá sa nám bude spúšťať vtedy, keď nemáme už žiadne náboja.
  • Reload Ammo Left - Táto animácia sa nám bude spúšťať, keď nám ešte budú ostávať náboje, ale budeme si chcieť prebiť.

To je dôvod, prečo potrebujeme dva parametre.

Naše parametre budú typu Trigger z dôvodu, že naši animáciu vždy chceme spustiť len raz, a to keď stlačíme kláves R.

Prechod z Aim Fire do animácie nabíjania

Budeme tvoriť aj prechod medzi animácií Aim Fire a našimi přebíjecími animáciami, pretože po každom výstrele, kedy mierime, nám zostane prehrávaná animácia Aim Fire v nekončiacom klipe. Sami sa môžete pozrieť, keď budete mať otvorené okno Animator, spustenú hru a skúsite vystreliť, keď mierite. Po výstrele bude vždy aktívny animácie Aim Fire a to máme, pretože inak by sa nám potom spustila animácia výstrelu raz, keď držíme ľavé tlačidlo myši a nie zakaždým, keď skončí animácia výstrelu a my stále držíme tlačidlo.

Tvorba parametrov

Klikneme na tlačidlo so znakom plus, ktoré sa nachádza v okienku s existujúcimi parametrami. Zvolíme možnosť Trigger. Trigger pomenujeme Reload. Tento bude pre všetky naše spojenie s animáciou Reload Ammo Left. Obdobným spôsobom pridáme nový Trigger, ktorý tentoraz pomenujeme ReloadNoAmmo:

Tvorba 3D hier v Unity

Tvorba prechodov

Pustíme sa do tvorby prechodov.

Idle -> Reload Out Of Ammo

Klikneme pravým tlačidlom na animáciu s názvom Idle a vyberieme možnosť Make transition. Potom presunieme myš na pozícii animácie Reload Out Of Ammo a klikneme ľavým tlačidlom na animáciu Reload Out Of Ammo. Takto sme vytvorili prechod.

Teraz klikneme na novovytvorený prechod. V záložke Inspector sa nám objaví prázdny zoznam s názvom Conditions. Pod ním sa nachádza tlačidlo so symbolom plus. Klikneme na neho. V liste Conditions sa nám zobrazí obdĺžnik s nápisom Inspect alebo iným parametrom. My tu zvolíme hodnotu ReloadNoAmmo:

Tvorba 3D hier v Unity

Na obrázku sú modro označené nasledovné položky: Prechod Idle -> Reload Out Of Ammo, parameter pridávaný tomuto prechodu: ReloadNoAmmo. Potom vypneme možnosť Has Exit Time. Vďaka tomu sa bude môcť animácia státie kedykoľvek prerušiť.

Týmto máme náš prechod pre prebíjanie keď stojíme hotový. Rovnako urobíme i ostatné prechody, len budeme meniť parameter buď za Reload alebo ponecháme hodnotu ReloadNoAmmo.

Idle -> Reload Ammo Left

Klikneme pravým na animáciu Idle a zvolíme Make transition. Klikneme na animáciu Reload Ammo Left. Následne klikneme na novovzniknuté spojenie a pridajme mu parameter Reload. Deaktivujeme možnosť Has Exit Time:

Tvorba 3D hier v Unity

Walk -> Reload Out Of Ammo

Walk pridáme tiež transition na animáciu Reload Out Of Ammo a nastavíme prechodu parameter ReloadNoAmmo. Vypneme Has Exit Time.

Walk -> Reload Ammo Left

Walk pridáme ďalší prechod na Ammo Left, nastavíme parameter Reload a vypneme Has Exit Time.

Aim In -> Reload Out Of Ammo

Nový prechod z Aim In povedie do Reload Out Of Ammo, parameter bude ReloadNoAmmo, nezabudneme vypnúť Has Exit Time:

Tvorba 3D hier v Unity

Teraz už sa nám môže stať, že sa zle hľadajú jednotlivé spojenia. Na overenie sa môžeme pozrieť u každého spojenie do záložky Inspector, kde uvidíme medzi akými animáciami je to prechod.

Aim In -> Reload Ammo Left

Z Aim In vytvoríme prechod do Reload Ammo Left s parametrom Reload a vypnutým Has Exit Time.

Aim Fire -> Reload Out Of Ammo

Aim Fire povedieme prechodom do Reload Out Of Ammo s parametrom ReloadNoAmmo. Zas vypneme Has Exit Time.

Aim Fire -> Reload Ammo Left

Z Aim Fire ďalej pridáme prechod do Reload Ammo Left s parametrom Reload. Aj tentoraz vypneme Has Exit Time.

Teraz máme všetko pripravené, aby sme mohli vytvoriť značenie počtu nábojov na obrazovke pomocou textu.

V budúcej lekcii, 3D strieľačka v Unity - Prebíjanie , si vytvoríme ovládanie pre prebíjanie a značenie nábojov v zbrani.


 

Stiahnuť

Stiahnutím nasledujúceho súboru súhlasíš s licenčnými podmienkami

Stiahnuté 297x (25.09 MB)

 

Predchádzajúci článok
3D strieľačka v Unity - Úprava terénu
Všetky články v sekcii
Tvorba 3D hier v Unity
Preskočiť článok
(neodporúčame)
3D strieľačka v Unity - Prebíjanie
Článok pre vás napísal Tomáš Brabec
Avatar
Užívateľské hodnotenie:
2 hlasov
Hodně zdaru programátoři všeho druhu,doufám ,že nikdy nezažijete nudu.
Aktivity