NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

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_FPSCon­troller, 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_ri­fle01. 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:

Tvorba 3D her v Unity

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:

Tvorba 3D her v Unity

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:

Tvorba 3D her v Unity

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:

Tvorba 3D her v Unity

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:

Tvorba 3D her v Unity

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:

Tvorba 3D her v Unity

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ínkami

Staženo 296x (25.09 MB)

 

Předchozí článek
3D střílečka v Unity - Vložení modelu nepřítele do scény
Všechny články v sekci
Tvorba 3D her v Unity
Přeskočit článek
(nedoporučujeme)
Kvíz - Úprava terénu, střelba a animace přebíjení v Unity3D
Článek pro vás napsal Tomáš Brabec
Avatar
Uživatelské hodnocení:
11 hlasů
Hodně zdaru programátoři všeho druhu,doufám ,že nikdy nezažijete nudu.
Aktivity