Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Karakter Animáció és Kontroller Unity. Kezdeti lépések Alap projekt letöltése Egy statikus geometriát láthatunk Meg vannak a fizikai befoglalók is.

Hasonló előadás


Az előadások a következő témára: "Karakter Animáció és Kontroller Unity. Kezdeti lépések Alap projekt letöltése Egy statikus geometriát láthatunk Meg vannak a fizikai befoglalók is."— Előadás másolata:

1 Karakter Animáció és Kontroller Unity

2 Kezdeti lépések Alap projekt letöltése Egy statikus geometriát láthatunk Meg vannak a fizikai befoglalók is

3 Animált karakter asset Töltsük le a karakter asset-et Blenderből exportált fbx fájl Tartalmazza a csontvázat és az animációt is Az Asset könyvtárban csináljunk egy Character könyvtárat Másoljuk be ide az fbx fájlt és a textúrákat Vizsgáljuk meg a beimportált asset-et

4 Animált karakter asset

5 Megjegyzés Nem biztos, hogy az általunk betöltött modellre jól be lettek állítva az animációk Lehet, hogy a modellező szoftverben csak egymás után kerültek a kulcsok, és semmi csoportosítás nem jelent meg (futás, állás stb. nincs) Ilyenkor nekünk kell megadni az animációs klippeket Minden animációhoz a kezdő és végső frame-ek sorszámát, és megfelelően elnevezni őket

6 Huzzuk be az asset-et a jelenetbe (lehet, hogy az anyagjellemzőjén kicsit változtatni kell, material csere)

7 Animáció kellene (Készítsünk animator controller komponenst (asset nézet, jobb klikk …)) Nyissuk meg az Animation és az Animator ablakokat Az asset nézetben az up_stand animációt húzzuk rá a játékos objektumra Ha kiválasztjuk a játékost, megjelenik az animáció az Animation és az Animator ablakokban

8 Az animáció nem loop-ol Az importálás tulajdonságainál kell beállítani Soldieranimated2 asset animation tulajdonságainál ki kell választani az animációt, és beállítani rá a loop-ot

9 A felső test szépen animálódik, de a lábak nem Az animátor ablakban bal felül keressük meg a layers fület Itt egy réteg van: Base layer Nevezzük át Upper Body-ra Adjunk hozzá egy új réteget Nevezzük el Legs-nek Keressük meg a legs_stand animációt és húzzuk rá a modellre Erre az animációra is be kell állítanunk a loop-ot

10 Legs réteg beállításai:

11 Egyszerű TPS kamera A kamerát húzzuk a Player alá a hierarchia nézetben Állítsuk be a transzformációját (lokális transzformációt jelent):

12 Irányítás Adjunk a játékoshaoz egy szkriptet: PlayerController Kód a túloldalon

13 public class PLayerController : MonoBehaviour { public float moveSpeed = 30; public float turnSpeed = 80; void turnCharacter(float turn) { transform.Rotate(new Vector3 (0, turn, 0)); } void moveCharacter(Vector3 move) { transform.Translate(move); } void Update () { float dt = Time.deltaTime; Vector3 move = new Vector3 (0, 0, 0); float turn = 0; if (Input.GetAxis ("Horizontal") > 0) turn += dt * turnSpeed; else if (Input.GetAxis ("Horizontal") < 0) turn -= dt * turnSpeed; if (turn != 0) turnCharacter (turn); if (Input.GetAxis ("Vertical") > 0) move += Vector3.forward * moveSpeed * dt; else if (Input.GetAxis ("Vertical") < 0) move += Vector3.back * moveSpeed * dt; if (move.magnitude != 0) moveCharacter (move); }

14 Feladat A futás animációkat is hozzuk be az animatorba – Loop-olhatók legyenek – A megfelelő animációs rétegbe kerüljenek Adjunk hozzá egy új paramétert az animatorhoz: AnimState (int) Csináljuk meg az átmeneteket : ha 0 akkor állunk, ha 1 akkor futunk

15 A szkriptet is át kell írnunk, hogy váltson animációt, ha mozgunk public class PLayerController : MonoBehaviour { … Animator animator; void Start () { animator = GetComponent (); } … void moveCharacter(Vector3 move) { animator.SetInteger ("AnimState", 1); transform.Translate(move); } void Update () { … if (move.magnitude != 0) moveCharacter (move); else animator.SetInteger ("AnimState", 0); }

16 Fizika Kell egy collider (kapszula) és egy rigid body a player-re

17 Collider beállítása

18 Eltolás helyett sebességváltozás public class PLayerController : MonoBehaviour { … Rigidbody rigidBody; void Start () { animator = GetComponent (); rigidBody = GetComponent (); } … void moveCharacter(Vector3 move) { animator.SetInteger ("AnimState", 1); Vector3 dir = transform.rotation * move; rigidBody.velocity += dir; } void FixedUpdate () { … if (Input.GetAxis ("Vertical") > 0) move += Vector3.forward * moveSpeed * dt; else if (Input.GetAxis ("Vertical") < 0) move += Vector3.back * moveSpeed * dt; … }

19 Fizika kicsiszolása A rigid body és a kontroller szkript tulajdonságait kell finomhangolnunk – RigidBody: Drag – Kontroller: Move speed – Lehet a surlódással is játszani: Collison shape-hez új fizikai anyagjellemzőt rendelünk

20 Fegyvert a kézbe Az letöltött assetek közül importáljuk a projektbe a fegyever modelt és a textúráját (rifle.fbx, rifle.png) Húzzuk be a jelenetbe Ha kell, javítsuk ki az anyagjellemzőjét (ha a textúra nem jelenne meg) Szeretnénk, ha a karakter kezébe kerülne …

21 Fegyvert a kézbe Bontsuk ki a hierarchia nézetben a játékos csontvázhierarchiáját, míg el nem jutunk a hand_r nevű csonthoz A hierarchia nézetben húzzuk a fegyevert a hand_r csont alá A fegyver transzformációját állítsuk identitásra (azért működik ez most jól, mert eleve így modelleztük le, ha nem így lett volna, a transzformációját addig állítgatjuk, míg belesimul a kézbe)

22

23 A fegyvert nem így szoktuk tartani Van egy animációnk a fegyver tartására Csak a felsőtestre hat ki A felső test animációs rétegén kell csak változtatnunk Már láthatjuk, hogy az eddigi AnimState változónk nem lesz elegendő, kettőt kell definiálni: – AnimStateUp – AnimStateLegs Először alakítsuk át az animációkat, hogy az alsó és a felsőtestet más változó irányítson – Fel kell venni egy újabb változót, a régit pedig átnevezni – A legs layer-ben az átmenetekre beállítani az új változót – A PLayerController szkriptet is át kell írnunk (mindkét változót be kell állítanunk)

24 Adjuk hozzá a fegyver tartás animációt is a felső test animációs rétegéhez …


Letölteni ppt "Karakter Animáció és Kontroller Unity. Kezdeti lépések Alap projekt letöltése Egy statikus geometriát láthatunk Meg vannak a fizikai befoglalók is."

Hasonló előadás


Google Hirdetések