BF Summer sales
Pouze tento týden sleva až 80 % na HTML & CSS a JavaScript
80 % bodů zdarma na online výuku díky naší Letní akci!

Lekce 9 - 3D střílečka v Unity - Příprava animací přebíjení zbraně

V minulé lekci, 3D střílečka v Unity - Střelba na nepřítele, jsme si vytvořili skript pro střelbu na nepřítele.

V dnešní lekci si vytvoříme přechody k animaci s nabíjením zbraně. Nejdříve si vytvoříme přechod mezi animacemi a poté přidáme jednotlivé podmínky k přechodům, aby náš program věděl, kdy má jaké animace spouštět. Nebojte, tvorba přechodů nebude tak rozsáhlá, jako naposledy, kdy jsme pracovali v Animatoru :)

V příloze máte umístěný soubor s jednotlivými balíčky používanými v tomto kurzu.

Animator

Klikneme na šipku vedle objektu Assault_Riffle_01_FPSController, tím jsme si rozrolovali podobjekty. Nyní klikneme na šipku vedle podobjektu s názvem Gun Camera a dále levým tlačítkem na podobjekt arms_assault_rifle_01. V okénku Inspector se nám zobrazí komponenta Animator.

Tato komponenta má mnoho vlastností, my dvakrát klikneme na nápis assault_rifle_01 v obdélníku, vedle kterého je napsáno Controller:

Tímto úkonem se nám otevře Animator.

Proč budeme tvořit nové parametry

Pokud v levé části nevidíte parametry, klikněte na záložku Parameters, kde se nacházejí všechny parametry pro daný objekt, který ovládáme. Vidíme parametry Inspect, Holster, Run, Aim, Walk a Shoot. Abychom mohli určovat, kdy se bude spouštět animace nabíjení, potřebujeme vytvořit dva nové parametry. Možná byste si mysleli, že nám bude stačit jeden, ale nebude. Tvůrce našeho balíčku nám totiž vytvořil dvě animace:

  • Reload Out Of Ammo - Ta se nám bude spouštět tehdy, když nemáme už žádné náboje.
  • Reload Ammo Left - Tato animace se nám bude spouštět, když nám ještě budou zbývat náboje, ale budeme si chtít přebít.

To je důvod, proč potřebujeme dva parametry.

Naše parametry budou typu Trigger z důvodu, že naši animaci vždy chceme spustit pouze jednou, a to když stiskneme klávesu R.

Přechod z Aim Fire do animace nabíjení

Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!

Budeme tvořit i přechod mezi animací Aim Fire a našimi přebíjecími animacemi, protože po každém výstřelu, kdy míříme, nám zůstane přehrávána animace Aim Fire v nekončícím klipu. Sami se můžete podívat, když budete mít otevřené okno Animator, spuštěnou hru a zkusíte vystřelit, když míříte. Po výstřelu bude vždy aktivní animace Aim Fire a to máme, protože jinak by se nám pak spustila animace výstřelu jednou, když držíme levé tlačítko myši a ne pokaždé, když skončí animace výstřelu a my stále držíme tlačítko.

Tvorba parametrů

Klikneme na tlačítko se znakem plus, které se nachází v okénku se stávajícími parametry. Zvolíme možnost Trigger. Trigger pojmenujeme Reload. Tento bude pro všechna naše spojení s animací Reload Ammo Left. Obdobným způsobem přidáme nový Trigger, který tentokrát pojmenujeme ReloadNoAmmo:

Tvorba přechodů

Pustíme se do tvorby přechodů.

Idle -> Reload Out Of Ammo

Klikneme pravým tlačítkem na animaci s názvem Idle a vybereme možnost Make transition. Poté přesuneme myš na pozici animace Reload Out Of Ammo a klikneme levým tlačítkem na animaci Reload Out Of Ammo. Takto jsme vytvořili přechod.

Nyní klikneme na nově vytvořený přechod. V záložce Inspector se nám objeví prázdný seznam s názvem Conditions. Pod ním se nachází tlačítko se symbolem plus. Klikneme na něj. V listu Conditions se nám zobrazí obdélník s nápisem Inspect nebo jiným parametrem. My zde zvolíme hodnotu ReloadNoAmmo:

Na obrázku jsou modře označené následující položky: Přechod Idle -> Reload Out Of Ammo, parametr přidávaný tomuto přechodu: ReloadNoAmmo. Poté vypneme možnost Has Exit Time. Díky tomu se bude moci animace stání kdykoliv přerušit.

Tímto máme náš přechod pro přebíjení když stojíme hotový. Stejně uděláme i ostatní přechody, jen budeme měnit parametr buď za Reload nebo ponecháme hodnotu ReloadNoAmmo.

Idle -> Reload Ammo Left

Klikneme pravým na animaci Idle a zvolíme Make transition. Klikneme na animaci Reload Ammo Left. Následně klikneme na nově vzniklé spojení a přidejme mu parametr Reload. Deaktivujeme možnost Has Exit Time:

Walk -> Reload Out Of Ammo

Walk přidáme také transition na animaci Reload Out Of Ammo a nastavíme přechodu parametr ReloadNoAmmo. Vypneme Has Exit Time.

Walk -> Reload Ammo Left

Walk přidáme další přechod na Ammo Left, nastavíme parametr Reload a vypneme Has Exit Time.

Aim In -> Reload Out Of Ammo

Nový přechod z Aim In povede do Reload Out Of Ammo, parametr bude ReloadNoAmmo, nezapomeneme vypnout Has Exit Time:

Nyní už se nám může stát, že se špatně hledají jednotlivá spojení. Pro ověření se můžeme podívat u každého spojení do záložky Inspector, kde uvidíme mezi jakými animacemi je to přechod.

Aim In -> Reload Ammo Left

Z Aim In vytvoříme přechod do Reload Ammo Left s parametrem Reload a vypnutým Has Exit Time.

Aim Fire -> Reload Out Of Ammo

Aim Fire povedeme přechodem do Reload Out Of Ammo s parametrem ReloadNoAmmo. Zas vypneme Has Exit Time.

Aim Fire -> Reload Ammo Left

Z Aim Fire dále přidáme přechod do Reload Ammo Left s parametrem Reload. I tentokrát vypneme Has Exit Time.

Nyní máme vše připravené, abychom mohli vytvořit značení počtu nábojů na obrazovce pomocí textu.

V příští lekci, 3D střílečka v Unity - Přebíjení, si vytvoříme ovládání pro přebíjení a značení nábojů ve zbrani.


 

Stáhnout

Staženo 8x (25.09 MB)

 

Předchozí článek
3D střílečka v Unity - Střelba na nepřítele
Všechny články v sekci
Tvorba 3D her v Unity
Článek pro vás napsal Tomáš Brabec
Avatar
Jak se ti líbí článek?
Ještě nikdo nehodnotil, buď první!
Hodně zdaru programátoři všeho druhu,doufám ,že nikdy nezažijete nudu.
Aktivity (2)

 

 

Komentáře

Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zatím nikdo nevložil komentář - buď první!