Realtime 3D rendszerek, Unity 3D Témalabor, 2016
Realtime 3D rendszerek Hol használjuk? Milyen komponensekből állnak? Milyen lehetőségeink vannak?
Realtime 3D rendszerek Hol használjuk? – Számítógépes játékok – Virtuális valóság alkalmazások, virtuális laborok – 3D Vizualizáció (térkép program, orvosi vizualizáció, látványtervező alkalmazások, oktató alkalmazások)
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.
Játékmotorok feladata, elvárt funkciók Rajzolás: – Erőforrások kezelése – Videokártya vezérlés – Grafikai algoritmusok
Játékmotorok feladata, elvárt funkciók Animáció: – Fizikai szimulációk – Karakter animáció – Részecskerendszer ek – Kamera mozgatás
Játékmotorok feladata, elvárt funkciók Multimédia: – Hangok – Átvezető videók
Játékmotorok feladata, elvárt funkciók GUI: – Menük – Eseménykezel és
Játékmotorok feladata, elvárt funkciók Mesterséges intelligencia: – Állapotkezelés – Útvonaltervez és
Játékmotorok feladata, elvárt funkciók Scriptelés: – Játéklogika és objektumok viselkedésének egyszerű szerkesztése
Játékmotorok feladata, elvárt funkciók Többszálúság, párhuzamosság támogatása
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 – …
Játékmotorok feladata, elvárt funkciók Hálózati mód
Játékmotorok feladata, elvárt funkciók Multiplatform támogatás
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
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
Render motor – példák Ogre3D Crystal Space Genesis3D Irrlicht Truevision3D …
Fizikai könyvtárak – példák Bullet ODE – Open Dynamics Engine NVIDIA PhysX Havok Box2D
Audio könyvtárak - példák OpenAL XAudio2 IrrKlang, FMOD, SDL_sound
GUI Menük, gombok, csúszkák, kijelölőgomb, választó gombok, állapot jelzők stb. Könyvtárak, pl: – MyGUI – CEGUI
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
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)
Object based model Renderable Movable Physical PlayerWeaponEnemy Soldier MonsterShotGunPistol Background Terrain Portal
Component Based Model GameObject Component[] mComponents Component& getComponent () Component getGameObject() RenderComponent PhysicsComponent TransformComponent PlayerControlComponent EnemyDataComponent EnemyAIComponent
A Unity felülete
Futtatás
Scene nézet
Hierarchia panel I.
Hierarchia panel II. Indítsuk el a játékot!!
Inspector nézet
Projekt panel
Projekt panel II.
Projekt Panel 3
Jelenetek
Build File menü/ Build Settings… Támogatott platformok Jelenet sorszáma (programozás) Aktuális jelenet hozzáadása a build-hez Platformváltás (editor) A termékben használt jelenetek Futtatható alkalmazás létrehozása, futtatása
Beállítások Player Settings… Build menüben Vagy: Edit/Project Settings/Player
3D projekt megnyitása
3D jelenet 3D kamera nézet – Orto nézetek – Izometrikus nézet 3D transzformációk – Forgatás (tengelyek szerint és szabadon) – Eltolás (tengelyek szerint és szabadon) – Skálázás(tengelyek szerint v. egységesen)
Scene nézet Gizmók Renderelési módok
Model importálás Honlapról: assets.zip letöltése 1. lehetőség:
Model importálás 2. lehetőség: – Másoljuk az asseteket a projektünk megfelelő mappájába (Assets/…)
Model importálás
Model beillesztése a jelenetbe
Model bővítése
Prefab
Unity programozási gyakorlatok: targyak/technologiai-platformok- 1/programozasi-alapok-unity