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

Kik vagyunk mi? Magdics Milán Umenhoffer Tamás cg.iit.bme.hu.

Hasonló előadás


Az előadások a következő témára: "Kik vagyunk mi? Magdics Milán Umenhoffer Tamás cg.iit.bme.hu."— Előadás másolata:

1

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

5

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

10

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 ….

20

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.

31

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!


Letölteni ppt "Kik vagyunk mi? Magdics Milán Umenhoffer Tamás cg.iit.bme.hu."

Hasonló előadás


Google Hirdetések