Pályaépítés Unreal 4-ben

Az előző cikkünkben elkezdtünk Unreal 4-ben a szék assetünk felhasználásával felépíteni egy pályát. Most továbbhaladunk a pálya elkészítésével, csak az engine-ben és a starter contentben megtalálható assetek felhasználásával.

A pályánk körülbelül így nézett ki az előző cikk végén, a padló és a SkyLight lerakása után.

Most ismerkedjünk meg az engine-ben található Geometry móddal. Habár az Unreal 4 Geometry-nek hívja ezt az eszközt, a legtöbb másik engine-ből BSP-ként ismerhetjük. A BSP (Binary Space Partitioning), szó szerint bináris térfelosztás a játékmotorokban egyszerű geometriai formákból alkotott felületeket jelent.
Ahhoz, hogy ilyesfajta felületet alkossunk, először le kell tennünk a Modes ablak Geometry bekezdéséből egy Box brush-t a pályára.

Amint leraktuk, láthatjuk, hogy a doboz felületei azonnal kitöltődtek az éppen a Content Browserben kijelölt matériával - esetünkben a fapadlóval.

A Mode ablak felső sorában levő fülek közül kattintsunk a jobb szélső oldalon található Geometry Editing fülre. Ebbe a módba lépve láthatjuk, hogy a pályára letett Geometry-nk körvonala kék lett.

Ezek után ha az adott forma bármelyik élére, felületére vagy sarkára kattintunk, manipulálhatjuk, deformálhatjuk azt.

Ezen eszköz használatával pár mozdulattal készíthetünk egy pódiumot, ezzel értelmet adva a széksorok elhelyezkedésének.

A geometria felületeinek adhatunk akár külön-külön is matériákat. Megint a Content Browserből az adott assetet a felületre rádobva, pár mozdulattal kicseréltük a pódium felületét az M_Wood_Oak matériára.

Az ilyesféle geometriákat átlagban nem érdemes túl komplexre alkotni, viszont némi variálás sokat tud segíteni a látványon. Egy újabb Box elhelyezésével, és annak az egyik felső élének az eltolásával máris alkottunk a pódiumra egy pulpitust.

A pulpitusnak szintén cseréltük a matériáit, viszont azt szeretnénk, hogy a fa erezete a vertikális oldalakon a jelenlegivel ellentétes irányba álljon. Erre a problémára nagyon könnyű a megoldás; csak annyit kell tennünk, hogy kijelöljük az elforgatni kívánt felületet, és a jobb oldali Details ablakban, a Surface Properties bekezdésben a Rotate sor alatt válasszuk a 90 fokos elforgatást.

Ugyanitt található több hasonló beállítás, például a matéria csempézésének a sűrűsége. A UV a felületen méretezhető, és el is tolható a rotálás mellett. A Rotate beállítás alatt található a Scale, ami egy U és egy V értéket tartalmaz. Ezek a horizontális és a vertikális skálázási értékek; ezek módosításával tudjuk igazítani a matéria „sűrűségét” a kijelölt felületen.

Ha el akarjuk tolni a matériát a felületen, akkor a Rotate sor fölött találjuk a Pan részt, amiben két sor gombot találunk: a felső sor értékei horizontálisan, az alsó sor értékei vertikálisan mozdítják el a matériát.

Ezekkel a beállításokkal szépen eligazítottuk a pulpitus oldalain a matériákat.

A Geometry-vel nem csak felületeket alkothatunk, hanem akár ki is vonhatunk vele darabokat már létező formákból.

Rakjunk le egy újabb Geometry Box-ot, a Details, Brush Settings alatt a Brush Type-ját állítsuk Additive-ról (összeadás) Subtractive-ra (kivonás), és formáljuk téglatestté. Igazítsuk a formát a pódium egyik oldalának a sarkához, majd nyomjuk kicsit bele a pódiumba. Amint metszi egymást a két geometry, láthatjuk, hogy a Subtractive geometry kiharapta a saját formáját az eddig már létező, Additive geometry-ből, vagyis a pódiumból. Ha megfelelően helyezzük el, kapunk is egy, a pódiumba vágott lépcsőfokot.

Most jön az alkotás trükkös része, mivel ha szobát, azaz belső teret akarunk alkotni, akkor a már meglévő pódiumból statikus objektumot kell alkotnunk.

Ehhez jelöljük ki az eddig megalkotott geometriáinkat - a Subtractive-val együtt -, és a Details ablakban a Brush Settings bekezdés alján megtaláljuk a Create Static Mesh gombot.

Ezzel a gombbal a nyers geometriai formákból végleges statikus mesh-t, tehát objektumot tudunk alkotni. A gomb megnyomása után az engine felteszi a kérdést, hogy hova mentse el az új assetet.

Válasszunk egy könnyen elérhető mappát a Content mappa alatt, adjunk nevet az új Static Mesh-ünknek, aztán nyomjunk rá a Create Static Mesh gombra.

Amint lenyomtuk, és létrejött a mesh, az engine ki is cseréli a pályán lévő Geometry pakkunkat a statikus változatára.

Az új Static Mesh-t megnyitva láthatjuk, hogy akár ki is tudjuk cserélni a különböző matériákat, illetve minden olyan lehetőségünk is megvan, ami kizárólag a Static Mesh actorokra vonatkozik.

Ideje megalkotunk a szobát!

Ehhez első lépésben egy Box brush-t kell létrehoznunk a pályán, lehetőleg a szobának szánt terület közepén. Geometry Editor módban méretezzük át ezt a dobozt akkorára, hogy kényelmesen befedje a kidolgozott területet.

Ezek után alkossunk egy újabb Boxot, amit állítsunk is át Subtractive-ra. Ha megvan, helyezzük be a nagy kockánk belsejébe és szintén Geometry Editor módban igazítsuk úgy, hogy kényelmesen kitöltse a belső terünket, de kellő vastagságú falak is maradjanak. Az igazításhoz legjobb, ha bereptetjük a kamerát a szoba belsejébe.

Ha megvagyunk az igazítással, láthatjuk, hogy a falakon levő alap kockás matéria nagyon  el van nyújtva. Ezt úgy tudjuk javítani, hogy kijelöljük az adott felületet a jobb egérgombbal, majd a Details ablakban a Surface Properties bekezdésben a Scale mindkét értékét 1-re állítjuk, majd rányomunk a panelen jobbra található Apply gombra.

A változás azonnal látszik, a nyúlt-kockás felületből megfelelően arányos kockás felület lett. Ugyanezzel az eljárással mindegyik felületen javítsuk ki a nyúlást.

Ha ezzel megvagyunk, akkor jelöljük ki a falakat (tehát a plafont és a padlót ne), és rakjuk rájuk a Starter Content-ben található M_Concrete_Panels matériát. Mivel a padlónkat a pálya kezdésénél kapott meshből kreáltuk, és fel is matériáztuk, így már csak a plafon maradt, amire rá is rakhatjuk például az M_Concrete_Poured matériát. De milyen is lenne egy szoba ablakok nélkül? Alkossunk egy tetszőleges falra szép széles lyukakat a már megszokott szubtraktív geometria módszerrel!

Nem árt üvegfelületeket is rakni a kivágott lyukakba. A Modes ablak Place füle alatti Basic bekezdésben keressük ki a Plane objektumot. Mozgassuk, forgassuk aztán méretezzük az egyik "ablakkeretbe". Ez után a Starter Content matériái közül keressük ki az M_Glass matériát, és dobjuk is rá!

Ha ez megvan, jelöljük ki az elkészült ablaküveget, és mozdítsuk el az [Alt] gomb nyomva tartásával a másik pozíciójába. Ezzel a módszerrel egy másolatot hoztunk létre, amit elhelyezve be is ablakoztuk a szobánkat. Még így ablakokkal is kicsit sötétnek tűnik a terem, tehát tegyünk egy Point Light-ot a Mode/Placement/Lights alól a plafonra. Még javíthatunk a világításon egy spotlight-tal is, ami mondjuk a pódium mögé világít a falra. A fények Detail beállításaival érdemes próbálkozni, kitapasztalni, hogy hogy néznek ki a legjobban.

Minden felület kap tükröződéseket. Ezek alapértelmezetten két fajta módon létezhetnek: vagy képernyő alapú tükröződésképpen, vagy reflection capture, illetve textúra alapján.

Utóbbihoz a Mode/Placement/Visual Effects alól tegyünk le egy Sphere Reflection Capture actor-t a pályánkra. Ahogy leraktuk, láthatjuk is, hogy a tükröződő felületek színe megváltozott. A Reflection Capture-t mozgatva az engine rendszeresen újraalkotja a tükröződéseket - ez tulajdonképpen úgy történik, hogy a Sphere Reflection Capture actor készít egy teljes panorámaképet a környezetéről, a saját középpontjából kiindulva, és ezt a képet használja minden, a rádiuszában levő felület tükröződésként.

Ezek után alkothatunk még extra összetevőket. Mi például amolyan ülésteremnek  képzeltük el ezt a pályát, úgyhogy a pódium mögé készítettünk egy táblát egy átméretezett Box statikus objektumból, illetve egy fehér matériából. De assetek híján továbbra is elég üresnek hat a pálya, tehát érdemes alkotni még pár részletet.

Például a szoba hátsó, tehát a pódiummal szemben levő falára logikus lenne egy kijárat. Ehhez első lépésben meg kell növelnünk a hátsó fal vastagságát, ha nem akarjuk kidolgozni a területet, ahova a kijárat vezet. Mi jó négy méterrel vastagabbá tettük a hátsó falat.

Ezután szubtraktív geometriával könnyedén alkothatunk is egy lyukat a falba, viszont ügyeljünk arra, hogy ne üsse teljesen át a falat.

A lyuk belsejének sötétnek kellene lennie, nem csak árnyékolásban, hanem „erőltetettebb” módon, hogy semmiképpen se látszódjon, hova halad. Tehát alkossunk is egy matériát, ami semmi mást nem csinál, csak elsötétít. Legyen a neve Black.

A matériában állítsuk át a Shading model-t Default Lit-ről Unlit-re. Ezek után alkossunk egy konstans értéket, ami legyen nulla, és kössük be az Emissive Color értékbe. Ennyi lenne a teljesen fekete matéria „receptje".

Ezt a matériát tegyük is rá a belső felületekre, a padló kivételével. A padlófelületre rakjuk ugyanazt a matériát, mint ami a másik padlón is van, és hogyha kell, igazítsuk meg a UV-ját, hogy folytatólagosnak tűnjön a már meglévő padlónkkal. Opcionálisan még összehúzhatjuk a szubtraktív geometria távolabbi oldalának a szélességét, ezzel azt az illúziót keltve, hogy messzebb van.

Az atmoszferikus hatás érdekében érdemes leraknunk egy kis levegőben szálló port,  tehát részecskeeffektet (particle effect). Szimpla részecskeeffektet alkotni nem különösebben nehéz, viszont jelenleg elég egy beépített effektet használnunk: a Starter Content/Particles alatt található P_Ambient_Dust-ot tegyük le a pályánk közepére.

Ez a részecskeeffekt azonnal aktiválódik is, és láthatjuk, ahogy az apró porszemek lustán mozognak a levegőben.

Ezzel nagyrészt le is fedtük a pályaépítés alapjait: asseteket helyezünk el, méretezünk, Geometry-ket alakítunk, megvilágítjuk a pályát, és különböző részecskeeffekteket is hozzáadhatunk. Ez még nagyon kevés mindabból, amire az Unreal 4 képes, de reméljük, meghoztuk a kedveteket a próbálkozáshoz! A továbbiakban részletesebben is fogunk írni a pályaépítés egy-egy szakaszáról, miközben tovább szépítgetjük ezt a scene-t.

MEGOSZTÁS:
Meshmag