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:
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 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
:
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:
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:
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 podmienkamiStiahnuté 297x (25.09 MB)