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.

Slides:



Advertisements
Hasonló előadás
A Powerpoint használata (gyorstalpaló)
Advertisements

Operációs Rendszerek I.
Számítógépes ismeretek 5. óra
A Vocatude program telepítése
MINTA1 Element of the Theory of the Computation Lecture x. Title.
Geometriai modellezés
Benczúr Zsolt VBA gyorstalpaló Benczúr Zsolt
© Kozsik Tamás Beágyazott osztályok A blokkstrukturáltság támogatása –Eddig: egymásba ágyazható blokk utasítások Osztálydefiníciók is egymásba.
Útmutató Java telepítéséhez windows 7-re
Programozás II. 3. Gyakorlat C++ alapok.
Grafika a programban Készítette: Pető László. Bevezetés Valójában nem a célobjektumra rajzolunk, hanem annak festővászon területére (canvas). Csak olyan.
A C++ programozási nyelvSoós Sándor 1/12 C++ programozási nyelv Gyakorlat - 8. hét Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet.
C# tagfüggvények.
© Kozsik Tamás Csomagok. © Kozsik Tamás A program tagolása Típusdefiníciók (osztályok, interfészek) Metódusok Blokk utasítások Csomagok.
Rétegek használata GIMP képszerkesztő programban
Programozás C-ben Link és joint Melléklet az előadáshoz.
MACROMEDIA FLASH Mire használható? példák. MACROMEDIA FLASH vektor – bitmap.
Vizuális alkalmazások a FoxProban Páll Éva Boglárka.
Adattáblák kezelésére létrehozott automatikus formok Páll Éva Boglárka.
Animáció Szirmay-Kalos László.
ELTE WIFI Beállítási útmutató MS Windows XP-hez
Objektum orientált programozás
Készítette: Turócziné Kiscsatári Nóra
RAD Studio XE5: menük felépítése
1 Verseny 2000 gyakorlat SQL 2000 Server Portál adatbázis létrehozása.
Első lépések a szövegszerkesztő használatában
Táblázatok.
Készítette: Kiscsatári Nóra
Operációs rendszerek II Készítette: Turócziné Kiscsatári Nóra.
Bekezdések formázása 1..
Mappa- és fájlműveletek
Bekezdések formázása 2..
Gazdasági informatikus - Szövegszerkesztés 1 Bekezdések formázása 2.
Excel programozás (makró)
Web-grafika (VRML) 2. gyakorlat Nyitrai Erika Varga Balázs.
A Mozilla magyar nyelvű szerkesztőjének használata
TÁMOP /1-2F JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam Osztályok, objektumok definiálása és alkalmazása. Saját.
A távoli asztal, valamint az Endnote használata a távoli asztalon Skultéti Attila
Multimédia Hangok, videók. Hangok Unityben A hangot hangforrás (Audio Source) játssza le és hallgatók (Audio Listener) segítségével hallhatjuk A Listener.
Hálózati többjátékos mód Multiplayer játékok. UNet HLAPI Hálózati játékot magunknak megírni hosszadalmas és bonyolult Kommunikáció, szinkronizáció, távoli.
Bevezetés. Alapok: szövegszerkesztő alkalmazás (Word) megnyitása: Start gomb  Minden program  Microsoft Office  Microsoft Office Word 2007 szövegszerkesztő.
Unity alapjai. Új projekt Asset Import Másoljuk be a boltív modellünket az asset könyvtárba.
Karakter animáció. Animáció alapok (ismétlés) Új 3D project (CharacterAnimation) Adjunk a jelenethez egy gömböt Hozzunk létre egy AnimatorControllert.
Táblák létrehozása és feltöltése adatokkal Rendezés Szűrés.
Realtime 3D rendszerek, Unity 3D Témalabor, 2016.
Platformer játék Pálya generálás. Új projekt Csináljunk új 2D projektet Neve legyen Platformer Kép asseteket töltsük le, és importáljuk a projektbe Majd.
Lekérdezések Adott tulajdonságú adatok listázásának módja a lekérdezés. A lekérdezések segítségével az adatbázisból megjeleníthetjük, módosíthatjuk, törölhetjük.
Unity programozási gyakorlatok
Sprite animáció, kamera követés, háttér mozgás
Alkalmazásfejlesztés gyakorlat
Információ és kommunikáció
Global Illumination.
App Inventor órai és házi feladatok
Óra modell készítése Óralap1.
Unity alapjai.
3d alakzatok, fizikai anyagok, kényszerek
JátékLogika.
„Designer-barát” játéklogika
Unity 3D alapok + gyakorlás.
GUI.
Vizualizáció és képszintézis
Az elkészült faliújság értékelése videoklip szerkesztése Windows Movie Maker programmal 10. témakör:
A Powerpoint használata (gyorstalpaló)
Unity.
JavaScript a böngészőben
Ghost Hunter Game logic/HUD.
Útmutató Java telepítéséhez windows 7-re
Bankszámlatranzakciók feldolgozása és könyvelése Gyorsan és egyszerűen
B M Java Programozás 1. Gy: Java alapok IT A N Ismétlés ++
B M Java Programozás 5. Gy: Java alapok IT A N Adatkezelő 1.rész
Előadás másolata:

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

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

Animált karakter asset

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

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

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

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

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

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

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):

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

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); }

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

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); }

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

Collider beállítása

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; … }

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

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 …

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)

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)

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