Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
KiadtaDonát Faragó Megváltozta több, mint 8 éve
2
Kik vagyunk mi? Magdics Milán magdics@iit.bme.hu Umenhoffer Tamás umenhoffer@iit.bme.hu cg.iit.bme.hu
3
Kik vagytok Ti?
4
Mi a tárgy célja? Unity alapjainak megismerése Gyakorlati ismeretek Ahol lehet, megfelelő elmélet Alapvető programozási ismeretek C# (szkript) Unity-n belüli használata A félév végére egy egyszerű 2D, oldalnézetes mászkálós/ugrálós játék létrehozása
6
Milyen témákat érintünk? Unity alapjai 2D grafika alapjai Sprite-ok, sprite animáció 2D fizika kontroll Játékmenet programozás GUI
7
Értékelés Órák látogatása Házi feladat v. vizsgafeladat Házi feladat: Egyszerű 2D játék Grafika Irányítás Fizika UI Játszható “demo pálya” Vizsga: Unity kezelés és programozási ismeretek mérése gyakorlati feladattal
8
194719521958 1971 1972
9
SPASIM 1974 Maze war 1974
11
1973 1981
12
1991, Wolfenstein3D
13
1993, Doom
14
1996, Quake
15
1997, Quake 2 I(x,V)=I LightMap +I e (x,V)+ I(L) f r (L,x,V) cos ’
16
1999 Quake 3, Unreal Tournament
17
2004 Doom3 I(x,V)=I e (x,V)+ I(L) v(x, L f r (L,x,V) cos ’
18
2004 Half-Life 2 I(x, )=I e (x, )+ I(h(x,- ’ , ’) f r ( ’,x, ) cos ’d ’
19
….
21
Játékfejlesztés szereplői Design Programozói részleg Művészeti részleg Hang részleg Menedzsment Minőség biztosítás Üzleti részleg Utóélet...
22
Design Vezető designer (Lead Designer) Játékmenet tervező Pálya/küldetés tervező Történet és párbeszéd tervező
23
Programozói részleg Vezető programozó Játék mechanika/játékmenet programozó 3D grafikai programozó AI programozó GUI programozó Fizika Audio Eszköz programozó Pályaszerkesztő programozás Hálózat programozás
24
Művészeti részleg Art director Concept artist 2D artist/interface designer 3D modellező Karakter modellező Textúrázó Animáció / MOCAP Forgatókönyvezés
25
Hang részleg Szinkron Hang effektek Zene
26
Management Line producer Associate producer Studio Head
27
Minőségbiztosítás Kiadó minőségbiztosítási részlege Vezető Fő csapat Multiplayer csapat Friss csapat Kompatibilitási csapat Lokalizáció (pl. magyarítás) Béta tesztelés Béta tesztelő Béta tesztelő program manager
28
Üzleti részleg Üzletfejlesztés Üzletfejlesztési igazgató(business developement executive) Studió vezető Ügyvédek Licenszelés Eladás/Marketing Kézikönyv Gyártás
29
Egyéb Hardver gyártók Utóélet
30
Játékmotorok Nagyon összetett, bonyolult szoftvercsomag Jól átgondolt (?), általános, újrahasznosítható szoftverkomponensek Játékobjektumok 2D / 3D modellek Fényforrások stb. Egyéb segédeszközök (tool-ok) Pályaszerkesztő (level editor) Modellező szoftver pluginek stb.
32
Játékmotorok feladata, elvárt funkciók Rajzolás: Erőforrások kezelése Videokártya vezérlés Grafikai algoritmusok
33
Játékmotorok feladata, elvárt funkciók Animáció: Fizikai szimulációk Karakter animáció Részecskerendszerek Kamera mozgatás
34
Játékmotorok feladata, elvárt funkciók Multimédia: Hangok Átvezető videók
35
Játékmotorok feladata, elvárt funkciók GUI: Menük Eseménykezelés
36
Játékmotorok feladata, elvárt funkciók Mesterséges intelligencia: Állapotkezelés Útvonaltervezés
37
Játékmotorok feladata, elvárt funkciók Scriptelés: Játéklogika és objektumok viselkedésének egyszerű szerkesztése
38
Játékmotorok feladata, elvárt funkciók Többszálúság, párhuzamosság támogatása
39
Játékmotorok feladata, elvárt funkciók Procedurális tartalomgenerálás Globális illumináció Növényzet Városi környezet Véletlen pályák …
40
Játékmotorok feladata, elvárt funkciók Hálózati mód
41
Játékmotorok feladata, elvárt funkciók Multiplatform támogatás
42
Játékmotorok feladata, elvárt funkciók (Asset store:) Mások által gyártott tartalom könnyű elérhetősége Saját munka könnyű/egységes publikálása
43
Rajzolás (rendering) – erőforráskezelés Háromszög modellek, textúrák, shaderek betöltése fájlból A fentiek betöltése/törlése a processzor/videokártya memóriájába Erőforrás megosztás játékobjektumok között 200 egyforma orkhoz ne tároljuk a modellt 200-szor Rajzolási „célpontok”: textúrába rajzolás, bufferek
44
Rajzolás (rendering) – anyagok/shaderek Anyagjellemzőket a kód újrafordítása nélkül tudjuk szerkeszteni Pl. material script Pl. D3D Effects system Anyagok objektumokhoz rendelése Anyagok beállítása kirajzolás előtt
45
Rajzolás (rendering) – videokártya vezérlés CPU – GPU kommunikáció minimalizálása Rajzoló hívások, állapotváltozások minimalizálása Rajzolás sorok Rendezés material, textúra stb. szerint Példányosítás
46
Rajzolás (rendering) – láthatóság Ami nem is látszhat a képen, azt ne rajzoljuk ki Grafikai algoritmusok ennek támogatására
47
Render motor – példák Ogre3D Crystal Space Genesis3D Irrlicht Truevision3D …
48
Animáció – fizikai animáció Egy virtuális világnak nem csak valószerűen kell kinéznie, úgy is kell viselkednie! Merevtest mechanika Ütközésdetektálás és válasz Csuklók, motorok Ruha szimuláció Folyadék szimuláció Haj szimuláció
49
Fizikai könyvtárak – példák Bullet ODE – Open Dynamics Engine NVIDIA PhysX Box2D
50
Animáció – karakter animáció Morphing Bemenet: csúcspont koordináták kulcspontokban Csontváz animáció Bemenet: csont orientáció kulcspontokban Bőrözés Mi vezérli? Motion capture Fizika (pl. rongybaba) Inverz kinematika kombinálás (blending)
51
Audio Audio fájlok betöltése Lejátszás Hangok keverése Effektek Digitális jelfeldolgozás Távolság szerinti csillapodás, Doppler, visszhang 3D audio! (effektekkel)
52
Audio könyvtárak - példák OpenAL XAudio2 IrrKlang, FMOD, SDL_sound
53
GUI Menük, gombok, csúszkák, kijelölőgomb, választó gombok, állapot jelzők stb. Könyvtárak, pl: MyGUI CEGUI
54
AI Véges állapotgép tétlen/figyel/agresszív/menekül/… Útvonaltervezés Legrövidebb út keresése Formációk, együttműködés Stratégia Bonyolultabb AI algoritmusok
55
Szkriptelés Magas szintű viselkedés specifikáció Inkább tervezőknek mint programozóknak Interpretált nyelv, nincs előre fordítva Futási időben változtatható Könnyebben olvasható nyelvek Rövid kódrészleteknél ez OK
56
Szkript nyelvek Lua Egyszerűbb, gyorsabb, kisebb Kiválóan használható konfigurációra, jelenet felépítésre Python Sok funkció Jobb matek, szövegfeldolgozás
57
Tartalom Generálás Offline eszközök (pályaszerkesztőben) Globális illumináció (fénytérképek - lightmap) Terep generálás (terrain) Növényzet Futási időben Részletességi szintek Véletlen pályaelemek
58
Hálózat Kommunikáció client/server Adat tömörítás Broadcasting Üzenetek elvesztésének kezelése, sorrendiség Extrapoláció/Predikció Interpoláció Példa könyvtárak: OpenTNL (Torque Network Library) RakNet
59
Rakjuk őket össze A játékobjektumok minden alrendszerrel kapcsolatban vannak Az objektum reprezentációknak ezeket a funkciókat szét kell tudni választani Könnyebb bővíthetőség Komponens alapú modell (Unity)
60
Játékmotorok Unreal 4 Grafikailag sokat nyújt Lassabb tanulási görbe Sok beépített szolgáltatás (pl blueprint) Unity 5 Könnyű kezdés Nagy közösség, nagy asset store Plusz szolgáltatások fizetősek Valve Source 2 (stabil, gyors) Nem sok gyakorlati tapasztalatról tudunk CryEngine Grafikailag top Lassu tanulási görbe Korona SDK 2D Saját motor Új technológia Speciális szolgáltatások
61
Köszönjük a figyelmet!
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.