Egy játéktér a modellek sokaságából épül fel. Ezek a 2D-s vagy 3D-s objektumok. A motorháztető alatt valójában több elemből épülnek fel. A játéktervező dolga beállítani ezen alkotóelemek paramétereit. A Unity egyszerű beállítási menete könnyen érthető és kezelhető, de ennek ellenére a grafikai megjelenést a végletekig testreszabhatjuk. Az objektumainkat ezen műveletsor mentén szétbontjuk alkotórészeikre, és mindegyikkel külön szekcióban foglalkozunk majd. Először talán furcsa is lesz, hogy a textúrát nem közvetlenül a modellre helyezzük, hanem a textúra és a shader keverékéből készítünk el egy materialt, amelyet majd ráteszünk a modellünkre. Az efféle munkamenet előnye, hogy könnyen cserélhetővé válnak az alkotóelemek, így gyorsan és tisztán tudunk módosítani (akár futás közben) a paramétereken.

Munkamenet

Érdekel a játékfejlesztés ? Gyere el bemutató napunkra ismerkedj meg oktatóinkkal.

Textúra

A textúrák egyszerű 2D-s képek, amelyek “bőrként” vannak ráhúzva a modellekre. Nélkülük egy modell teljesen egyszínű, unalmas objektum lenne. Elsőre furcsa lehet egy 2D-s képet ráteríteni egy 3D-s modellre, de valójában elég egyszerű ez a folyamat. Vegyünk példának egy konzervet. A konzerv leszedett papírborítása tulajdonképpen olyan, mint egy textúra. Kinyomtatás után ráterítik a 3D-s konzervre, így az máris sokkal esztétikusabb látványt nyújt.

A Unity szerencsére nagyon megkönnyíti a projekthez való textúra hozzáadását. Ha már adtunk hozzá más assetet, akkor a folyamat ismerős lesz számunkra. Érdemes egy mappát készíteni, melyet nevezzünk el például Textures-nek. Húzzuk bele a textúrának szánt képeket, és ezzel már készen is vagyunk.

A textúra és konzervek kapcsán felmerülhet az a kérdés, hogy mi a helyzet a komplexebb objektumokkal? Ha összetett modellel kell dolgozzunk, akkor érdemes generálni egy unwrapet. Az unwrap nem más, mint egy térkép arról, hogy a majdani textúra hogyan fog rátapadni a felületre. A leírás ezzel a témakörrel részletesen nem foglalkozik, de az alábbi kép megtekintése után már sejthetjük, miről is van szó:

textúra Unwrap

textúra Unwrap

Előfordulhat, hogy egy textúra alkalmazása esetén az furcsán jelenik meg a felületen. Felhelyezés után elcsúszhatnak vagy akár el is fordulhatnak. Ez nem egy hiba. Ezt a jelenséget akkor tapasztalhatjuk, ha egy egyszerű, négyzetes textúrát akarunk rátenni a modellre. A modell nem tudja, melyik a helyes irány, ezért úgy alkalmazza, ahogy éppen esik. Elkerülhetjük ezt jelenséget, ha az adott modellhez (megfelelő unwrap szerkezettel) készült textúrát használunk. Ha grafikusokkal dolgozunk, akkor ők már eleve ennek megfelelően készítik el számunkra a 2D-s és 3D-s alapanyagokat.

Shaderek

A textúra meghatározza, mi legyen kirajzolva a felületre, míg a shader azt határozza meg, hogyan legyen mindez kirajzolva. A shader tulajdonképpen egy nagyon pici, GPU-n futó program, ami típustól és paraméterektől függően számolja ki, hogy milyen legyen a megjelenítés. A shader lehet kifejezetten vízfelülethez készült (részletesebben itt olvashatsz erről), vagy olyan, amely rajzfilmszerű megjelenítéshez passzol leginkább, de természetesen vannak általánosan használható shaderek is.

Előfordulhatnak olyan esetek is, hogy a már rendelkezésre álló shaderek számunra nem megfelelőek, mert esetleg valami nagyon egyedi és speciális megjelenítést akarunk adni a modellünknek. Ilyen esetben akár saját shadert is írhatunk, de ez már a játékfejlesztés egy komolyabb szintje, így ezzel a témakörrel ebben a leírásban nem foglalkozunk.

Egy material több paramétert és textúrát tartalmaz, a hozzá kapcsolt shader pedig alapvetően határozza meg, hogy a végén milyen felületet fogunk látni. Ez a valóságban nagyon egyszerű. Ha a materialokkal elkezdünk kísérletezni, egyből rá fogunk érezni, miről is van szó. Materialt nem is készíthetünk shader nélkül.

Textúra gondolatkísérlet

Egyszerűen úgy érthetjük meg egy shader funkcióját, ha elképzelünk egy darab fát. A fizikai mivolta a fának a mesh. A színe és mintázata a textúra. Fogjuk meg a fát, és öntsünk rá vizet. Továbbra is ugyanabból az anyagból áll, de mégis máshogy néz ki. A fa kicsit sötétebb és fényesebb lett. A víz maga a shader. A shader az anyagot kicsit másmilyen kinézetűvé teszi anélkül, hogy változtatna rajta.

Az alábbi robot is remek példaként szolgál:

textúra Shader példa

textúra Shader példa

Az alkalmazott shader akár teljes egészében más hatásúvá teheti a materialt, így egy egyszerű shadercserével is tudunk új, különleges megjelenést létrehozni.

A továbbiakról

A leírás következő részében egybe fogjuk gyúrni a textúrákat és a shadereket, így új materialokat hozunk létre. Az egyik leggyakrabban látott illúziót is bemutatjuk, mégpedig azt, hogyan is tudunk egy valójában sima felületnek és textúrának göcsörtösséget, ezzel valósághűbb megjelenítést kölcsönözni.

Skeldar