Lekce 12 - 3D střílečka v Unity - Příprava animací přebíjení zbraně
V minulé lekci, 3D střílečka v Unity - Vložení modelu nepřítele do scény, jsme naimportovali model nepřítele a vložili ho do scény.
V dnešním Unity 3D tutoriálu si vytvoříme přechody a parametry k jednotlivým animacím pro přebíjení zbraně.
Přechody mezi animacemi a jejich podmínky potřebuje náš program, aby věděl, kdy má jaké animace spouštět. Nebojte, tvorba přechodů nebude tak rozsáhlá, jako naposledy, kdy jsme pracovali v okně Animator
V příloze máte umístěný soubor s jednotlivými balíčky používanými v tomto kurzu.
Animator
V okně Hierarchy klikneme na šipku vedle objektu Assault_Riffle01_FPSController, abychom si zobrazili podobjekty. klikneme na šipku vedle podobjektu s názvem Gun Camera a dále levým tlačítkem na podobjekt arms_assault_rifle01. V záložce Inspector se nám zobrazí komponenta Animator.
Tato komponenta má mnoho vlastností. Dvakrát klikneme na assault_rifle01 s popiskem Controller:
Tímto úkonem se nám otevře Animator.
Tvorba parametrů
Pokud v levé části nevidíte parametry, klikněte na záložku
Parameters. Zde 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čit, kdy se bude spouštět animace nabíjení, potřebujeme vytvořit dva nové parametry, protože nám tvůrce našeho balíčku vytvořil tyto dvě animace:
Reload Out Of Ammo
- spustí se po vyprázdnění nábojů,Reload Ammo Left
- spustí se při přebíjení.
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.
Parametr Reload
Nejprve si vytvoříme parametr pro všechna naše spojení s animací
Reload Ammo Left
. Klikneme na tlačítko se znakem +,
které se nachází v okénku se stávajícími parametry. Zvolíme možnost
Trigger. Trigger pojmenujeme Reload
:
Parametr ReloadNoAmmo
Obdobným způsobem jako u parametru Reload
si přidáme další
parametr. U něj zvolíme také Trigger. Parametr pojmenujeme
ReloadNoAmmo
.
Tvorba přechodů
Pustíme se do tvorby přechodů. Budeme například 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.
Test
Při otevřeném okně Animator spusťme hru a zkusme vystřelit
při míření. Vidíme, že po výstřelu je vždy aktivní animace
Aim Fire
. 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.
Přechod Idle
->
Reload Out Of Ammo
Vytvořme si první přechod. 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 klikneme na tlačítko se symbolem +. 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 je modře označená šipka
přechodu Idle
->
Reload Out Of Ammo
a parametr ReloadNoAmmo přidaný
tomuto přechodu.
Nyní odškrtneme políčko Has Exit Time zvýrazněné na obrázku výše . Díky tomu se bude moci animace stání kdykoliv přerušit.Tímto máme náš přechod pro přebíjení při stání hotový.
Stejně uděláme i ostatní přechody, jen budeme měnit
parametr buď za Reload
nebo ponecháme hodnotu
ReloadNoAmmo
.
Přechod Idle
->
Reload Ammo Left
Pojďme na druhý přechod. 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řidáme mu parametr Reload
. Deaktivujeme možnost Has Exit
Time:
Přechod Walk
->
Reload Out Of Ammo
Další přechod vytvoříme obdobně. Z animace Walk
přidáme
přechod na animaci Reload Out Of Ammo
a nastavíme přechodu
parametr ReloadNoAmmo
. Vypneme Has Exit Time.
PřechodWalk
->
Reload Ammo Left
Z animace Walk
přidáme další přechod na animaci
Reload Ammo Left
, nastavíme parametr Reload
a vypneme
Has Exit Time.
Přechod Aim In
->
Reload Out Of Ammo
Nový přechod z animace Aim In
vytvoříme do animace
Reload Out Of Ammo
. Parametr bude ReloadNoAmmo
a
nezapomeneme vypnout Has Exit Time.
Nyní se nám už může stát, že se špatně hledají jednotlivá spojení. Pro ověření se u každého spojení můžeme podívat do záložky Inspector, kde uvidíme mezi jakými animacemi je přechod nastaven:
Přechod Aim In
->
Reload Ammo Left
Z animace Aim In
vytvoříme přechod na animaci
Reload Ammo Left
s parametrem Reload
a vypnutým
Has Exit Time.
Přechod Aim Fire
-> Reload Out Of Ammo
Z animace Aim Fire
povedeme přechod do animace
Reload Out Of Ammo
s parametrem ReloadNoAmmo
. Zase
vypneme Has Exit Time.
Přechod Aim Fire
->
Reload Ammo Left
Z animace Aim Fire
přidáme přechod na animaci
Reload Ammo Left
s parametrem Reload
. I tentokrát
vypneme Has Exit Time.
V následujícím kvízu, Kvíz - Úprava terénu, střelba a animace přebíjení v Unity3D, si vyzkoušíme nabyté zkušenosti z předchozích lekcí.
Stáhnout
Stažením následujícího souboru souhlasíš s licenčními podmínkamiStaženo 296x (25.09 MB)