Bejegyzés

Kezdők bevezetése a Unity-be (2. rész)

A Unity-s játékfejlesztés folyamatát bemutató cikksorozat első részében a telepítésről, az asset-ekről, a GameObject-ekről és magáról a felületről általánosan olvashattunk. A játékfejlesztői munka jelentős része azonban az asset-ek importálása és a GameObject-ek behúzása után történik, ezért érdemes ezen ablakok kezelését a lehető legalaposabban elsajátítani.

5. Inspector ablak

Inspector ablak

Az Inspector ablakban konfigurálhatjuk a GameObject-eket. Ha kiválasztunk egyet a Hierarchy nézetben, az Inspector minden tulajdonságot kilistáz, ami az adott objektumra vonatkozik . Ez az objektum adatlapja. A játékfejlesztés során itt állítjuk be az indulási adatokat, de az adatlapon szereplő értékeket játék közben is módosíthatjuk, így például az is megvalósítható, hogy menet közben egy-egy objektum más színnel kezdjen el világítani.

6. Eszköztár

A játékfejlesztés elengedhetetlen kelléke az eszköztár, amely segítségével módosíthatjuk a GameObject-eket a scene-ben. Nagyon sokat fogjuk ezt használni, hiszen az üres scene-t fel kell tölteni, és az elemeket el kell rendezni. Gyakorláshoz helyezzünk el egy kockát:

GameObject menü

  • Nyissuk le a GameObject menüt
  • Válasszuk ki a 3D Object opciót
  • Válasszuk ki a Cube objektumot

Megjegyzés: Ha elveszítjük a kockát a manőverezés közben, akkor a Hierarchy nézetben a Cube objektumon duplán kattintva visszavihetjük a scene néztet a kockára.

A Hand nevű eszköz egy kéz, amellyel megfoghatjuk és mozgathatjuk az objektumokat:

Unity eszköztár

Unity eszköztár

Jobb egérgombbal a kéz ikon egy szemmé alakul, és ilyenkor magát a kamera nézőpontját változtathatjuk:

Unity eszköztár

 

A Ctrl (vagy Cmd) vagy Alt (vagy Option) és a jobb egérgomb lenyomásával, majd az egér mozgatásával a nagyítást állíthatjuk be. Az egér felfelé mozgatásával közelíthetünk a scene-ben, míg a lefelé való mozgással távolodhatunk. Egyszerűbb, ha az egér görgőjét használjuk.

Unity eszköztár

Tartsuk lenyomva a jobb egérgombot, így a WASD gombokkal is mozoghatunk a scene-ben, mintha csak egy FPS játékban lennénk. Fölfelé és lefelé is mozoghatunk az E és Q gombok segítségével. Számos FPS játékhoz hasonlóan, a Unity Scene nézetében is  gyorsabban mozoghatunk, ha a Shift-et nyomva tartjuk:

Unity eszköztár

A Hand alapértelmezett gyorsbillentyűje a Q. A kéz eszközhöz való gyors ugráshoz nyomjuk meg a középső egérgombot, melyet elengedve visszatérünk az ezt megelőzően használt eszközhöz.

A Translate eszközzel kiválaszthatjuk és pozícionálhatjuk a GameObject-et a scene-ben.

Unity eszköztár

Ha a Translate aktív, és kiválasztunk egy GameObject-et, akkor három nyíl jelenik meg az objektum közepéből kiindulva. A három nyíl a 3D-s tér három tengelyét jelenti. A piros az X, a zöld az Y és a kék a Z tengely.

Unity eszköztár

A Unity koordinátarendszere balkezes. A bal-és jobbkezes koordinátarendszer közötti különbség alapvetően a Z tengely iránya. A két rendszert az alábbi példa szemlélteti:

Koordináta-rendszerek

Megjegyzés: A három különböző színű nyilat a Unity nyelvezetében gizmónak nevezik. A gizmó egy 3D geometria vagy textúra, amely információt szolgáltat a GameObject-ről. Ebben az esetben a gizmó a három tengely irányát mutatja. Miután egyre jobban elmélyedünk a Unity-ben, akár saját gizmókat is készíthetünk, amelyek például mutathatják a starthelyet, a kamera helyét, a szélirányt stb. A gizmók egyik remek tulajdonsága még, hogy csak a Scene nézetben láthatóak, és kikapcsolhatóak, ha már nincs rájuk szükség.

Sok lehetőségünk van arra, hogy a Translate eszközzel mozgassuk a GameObject-eket. Kiválaszthatunk egy nyilat, és az egeret mozgatva csak az adott tengelyen toljuk el az objektumot. Például, ha a GameObject Y tengelyét választjuk ki, és a scene-t normál szögből nézzük, akkor az egérrel fel és le tudjuk mozgatni az elemet.

GameObject tengelyek

A három különböző színű lap a GameObject közepén arra hivatott, hogy az objektumot egy adott síkban tudjuk mozgatni. Ha például a zöld lapot fogjuk meg, akkor az X és Y tengelyek mentén tudjuk helyezgetni a GameObject-et:

Unity eszköztár

A Translate eszköz alapértelmezett gyorsbillentyűje a W.

A Rotate eszköz -nem meglepően- az objektumot forgatását teszi lehetővé:

Unity eszköztár

Ha kiválasztjuk ezt az eszközt, három körvonalat fedezhetünk fel, melyek mentén az adott elem forgatható:

GameObject forgatási tengely

Egyszerűen csak válasszunk ki egy vonalat, és kezdjük el mozgatni az egeret, hogy a GameObject is elforduljon. A tengelyhez való kötöttség nélküli forgatáshoz a vonalak közötti üres teret válasszuk ki:

Unity eszköztár

A Rotate eszköz alapértelmezett gyorsbillentyűje az E.

A Scale eszközzel a GameObject-et méretezhetjük át egy, vagy az összes tengely mentén.

Unity eszköztár

Egy tengelyen való átméretezéshez fogjuk meg a tengely végén lévő színes kockát. Az összes tengelyen való méretezéshez a GameObject közepén lévő kis kockát kell megragadjuk:

GameObject tengelyek

A Scale eszköz alapértelmezett gyorsbillentyűje az R.

Megjegyzés: Elsőre kaotikus lehet a gyorsbillentyűk kiosztása. Jobb lenne, ha a Scale S lenne R helyett. Valójában a látszólagos káoszban van rendszer: a billentyűzeten az eszköztár sorrendjében következnek egymás után a gombok, amit az alábbi ábra jól szemléltet:

Unity eszköztár

A Unity feltételezi, hogy az egeret a jobb kezünkkel fogjuk, míg a ballal a billentyűzetet kezeljük, az ujjainkat pedig általában a WASD környékén tartjuk a játékfejlesztés során:

Unity gyorsbillentyűk

Ebből a pozícióból a QWERT gombokat könnyedén elérjük. Sajnos néha előfordulhat, hogy W helyett a 2-est nyomjuk meg. Ilyenkor a szerkesztő 2D-s módba vált át:

Unity eszköztár

Ha ez megtörténik, csak nyomjuk meg újra a 2-est, és visszaáll az előző mód.

A Rect eszközre általában csak 2D-s GameObject-ek és User Interface-ek (UI) esetén van szükség, habár 3D-s objektumoknál is látni lehet.

Unity eszköztár

Ezzel az eszközzel lehetőségünk van átméretezni, igazítani, forgatni a 2D-s asset-eket, de a forgatási pontot is módosíthatjuk vele. A forgatási pontot egy nagy köz jelzi az asset körül:

Unity eszköztár

Az eszköz alapértelmezett gyorsbillentyűje a T.

A gizmó megjelenítés kis zavart okozhat. Ezek nem csupán gombok. Inkább kapcsolók, amelyek a gizmók pozícionálást hivatottak vezérelni.

Az első ilyen kapcsoló a Center és Pivot mód közötti váltást szolgálja. Center módban két GameObject-et választhatunk ki, így a gizmó a két objektum közé kerül. A GameObject-eket ebben a módban a közbenső pont körül forgathatjuk. Pivot módban minden GameObject a saját, belső forgatási pontja körül fordul el:

Unity gizmó

A második kapcsoló a Global és Local mód között vált. Global módban az objektumot az azt körülvevő világ szemszögéből módosítjuk. Az X tengely megy balra-jobbra, az Y megy fel és le, míg a Z tengely előre és hátra. A Local mód az objektum belső koordináta-rendszerét veszi alapnak, a tengelyek e szerint módosulnak.Global-Local

A játékfejlesztés eszközeinek fontossága

A játékfejlesztés ezen eszközeinek alapos begyakorlása kiemelten fontos. Nagyon sokat fogjuk használni őket, érdemes készségszinten elsajátítani a használatukat. A cikksorozat következő részében a másik igen fontos és gyakran használt elemmel, a Play gombbal és társaival ismerkedünk meg. Levezetésképpen pedig betekintünk az interfész testreszabásába és a Unity kollaborációs lehetőségeibe. Az előbbi igen fontos az egyéni munkánk elősegítése miatt, az utóbbit pedig jó ha alapszinten megismerjük, hiszen az igazán nagy játékok szinte mindig csapatmunkából születnek!

Skeldar

Kezdők bevezetése a Unity-be (1. rész)

A játékfejlesztők többségéről elmondható, hogy akkor kaptak kedvet saját játékok készítéséhez, amikor maguk is kapcsolatba kerültek különböző videojátékokkal. A hordozható telefonok  terjedésének köszönhetően egyre többen adták mobilra történő játékfejlesztésre a fejüket, melynek pozitív hozadékaként ma már számtalan szórakoztató mobilapplikáció közül válogathatunk. A Unity szintet lép, és még könnyebbé teszi a fejlesztők életét. Ez a bevezetés egy összefoglaló arról, miért, és hogyan érdemes belevágni a játékfejlesztésbe.

A mobil és számítógépes platformra való fejlesztés kezdetben nehézkes volt, ami sokakat már az első lépéseknél elriasztott. Szerencsére manapság már léteznek vizuális szerkesztőprogramok, az egyik ilyen élvonalbeli eszköz a Unity, mellyel számítógépre és mobilra is készíthetünk játékot. Egy játék sem lehet teljes grafikai elemek nélkül: a Unity-hez léteznek kész grafikák, animációk, effektek és más elemek, melyeket “assets”-nek nevezünk. Az Asset Store-ban rengeteg lehetőség közül válogathatunk, számos kiváló ingyenes és fizetős Asset Package-t találhatunk, amelyek egy adott téma köré épülnek (pl.: platformjátékhoz szükséges elemek), így egyből nekikezdhetünk a fejlesztésnek. Csaknem 30 platform támogatásának köszönhetően -ideértve a mobilokat, VR-t, asztali gépeket, konzolokat- az eszközök széles skáláját érhetjük el játékainkkal.

 

Unity-LEGO hasonlat

A Unity egy fantasztikus moduláris megközelítést használ, amikor a scene-ek, karakterek megalkotásáról van szó. Még kezdők is képesek remek űrhajót építeni az alap LEGO kockákkal, ez a Unity-ben sincs másképp. A kifinomultabb alkotáshoz lehetőségünk van teljesen testreszabni majdnem minden komponenst. Írhatunk saját shadert, vagy készíthetünk egészen új hálózati modult is a játékunkhoz.

A leírás  teljesen kezdők számára készült, hogy minél könnyebben átlássák a Unity környezetet és eszközöket. A későbbiekben részletesebben is szemügyre vesszük a különböző alrendszereket.

Az alábbiakkal fogunk megismerkedni:

  • Unity telepítése, és a verziók közötti különbségek tisztázása
  • Interfész különböző nézetei
  • Navigáció a Scene nézetben
  • GameObjects és Components hozzáadása és manipulálása

A későbbiekben pedig egy kicsi, űrbéli lövöldözős játékot fogunk készíteni, hogy a gyakorlatban is megismerjük a Unity adta eszközöket.

A kezdet

Első lépésként le kell töltenünk innen a Unity-t. De várjunk csak! Három különböző verzió is létezik. Melyikre van szükség?

A Unity motor minden verzióban ugyanazon funkciókkal van felszerelve. A Personal ingyenes, a Plus $25, míg a Pro $125 havonta. A legszembetűnőbb különbség a Unity indulókép, amelyet csak fizetős verziókkal távolíthatunk el vagy cserélhetünk sajátra. Számos kisebb-nagyobb eltérés van még, ezeket itt részletesen megtaláljuk.

Az oktatóanyagokhoz elegendő a Personal változat , de mielőtt elkezdenénk fejleszteni a következő, játékpiacot letaroló programunkat, olvassuk el a részletes tájékoztatót, mivel a Personal verzió rendelkezik pár megkötéssel.

Maga a telepítés nagyon egyszerű, ‘Next’-‘Next’-‘Finish’ után a következő kép fogad minket:

Unity regisztráció

A regisztráció után nem szükséges mindig bejelentkeznünk, offline mód használatra is van lehetőségünk.

A bejelentkezés után a következő kép fogad minket:

Unity új projkt

Kattintsunk a New Project gombon, amely egy párbeszédablakot hoz elő:

Unity projekt beállítások

  • Nevezzük el a projektet Space Debris-nek, és válasszunk egy helyet ahova el akarjuk menteni.
  • A 2D/3D opció meghatározza a kezdeti konfigurációt. Itt még az analitikát is bekapcsolhatjuk, amennyiben szeretnénk. Ezeket a beállításokat később is megváltoztathatjuk.
  • Az Assets packages gombbal egyedi csomagokat importálhatunk a projektbe. Például, ha FPS játékot szeretnénk készíteni, akkor érdemes a Unity first-person controller csomagját importálni. Ez egy kényelmes funckió a projekt elindításához, de a későbbiekben is bármikor importálhatunk csomagokat. A leíráshoz nincs szükség semmilyen alap asset-re.
  • Unity Analitics-et nem szükséges bekapcsolni.
  • Kattintsunk a Create project-re, és a Unity megnyitja az első projektünket.

Bevezetés az interfész felépítésébe

A Unity indulása után valami hasonló kép jelenik meg:

Unity interfész bevezetés

A felület előszőr nagyon összetettnek tűnhet (és verziótól függően kis mértékben eltérhet), de valójában teljes mértékben testreszabható annak érdekében, hogy csak azt lássuk, ami tényleg szükséges. Annyi információt jeleníthetünk meg, amennyit szeretnénk.

 

Nézetbeállítás

jobb felső sarokban öt gombot láthatunk. Válasszuk ki a ‘2 by 3’ opciót. A szerkesztő ennek hatására hasonló módon alakul át:

Unity interfész

 

1. Scene nézet

A bevezetés az interfész felépítésébe a Scene nézettel indul, amelyben a játék elemeit készítjük el, ide helyezzük el a modelleket, kamerákat és a többi elemet. Mindent vizuálisan kezelhetünk ebben a nézetben, ez maga a ‘színpad’.

Scene nézet

Tesztelés során a scene a játék állapotától függően módosul, menet közben akár újabb elemeket is hozzáadhatunk. Ha megállítjuk a játékot, a scene visszatér az alapállapotába: minden, játék során végzett módosítás elveszik.

2. Game nézet

A Game nézet a játékos szemszögét mutatja. Ez az a nézet, ahonnan játszani lehet a játékot, itt láthatjuk, mi hogyan működik:

Game nézet

Ez a nézet rendelkezik egy képarányt beállító menüvel. Különböző képernyőtípusokon is ellenőrizhetjük, mit is fog látni a játékos. Ez az opció azért is fontos, mert egy táblagépen vagy telefonon egész más látványt kapunk, mint számítógépen, ezért ehhez a nézethez is hozzá kell igazítani a játékot (feltéve, ha mobil változat is készül belőle).

 

Képarány

3. Hierarchy nézet

Hierarchy ablak tartalmazza a játékunk által használt összes GameObject-et. De mi az a GameObject? A GameObject egy objektum a játékban. Tulajdonképpen olyan üres konténerek összessége, melyekbe komponenseket tehetünk és testreszabhatunk.A komponensek lehetővé teszik, hogy a GameObject alakot vegyen fel, legyen az egy egyszerű kocka vagy egy komplex szörny modellje. A GameObject fényforrás és kamera is lehet, de a szkriptek segítségével bonyolult viselkedést is megadhatunk neki.

A GameObject-ek mappaként is funkcionálnak, további GameObject-eket tartalmazhatnak, így könnyebben rendszerezhetjük őket. A későbbiekben működés közben is láthatjuk majd őket.

scene egy adott szintjét jelenti a játéknak, habár elméletileg az egész játék elhelyezhető egy scene-ben. Minden, a scene-ben aktívan használt GameObject a Hierarchy nézetben jelenik meg:

Hierarchy ablak

Minden új scene egy Main Camera-val és egy Directional Light-tal kezdődik, amelyek ugyancsak GameObject-ek. Ha a Hierarchy-ból törlünk egyet, akkor azt tulajdonképpen a scene-ből töröljük. Ez a nézet az objektumok számának növekedésével egyre hasznosabbá válik majd.

4. Project ablak

A Project ablak tartalmazza a játékunk által használt összes asset-et. Itt kedvünk szerint csoportosíthatjuk őket. A drag and drop módszer a Hierarchy nézethez hasonlóan itt is műdödik, közvetlenül a scene-be is behúzhatunk elemeket. Ha a számítógépről behúzunk valamit a Project ablakba, a Unity automatikusan importálja azokat az asset-eket is. Ez igazán kényelmes tud lenni.

 

Project ablak

A Unity úgyanúgy rendezi el az asset-eket, ahogy azok a fájlrendszerben találhatóak. Az asset-eket soha ne módosítsuk közvetlenül a fájlrendszer szintjén, hiszen úgy a projekt számára is elérhetetlenné válhatnak, ami tönkreteheti a játékot. A Unity tárolja a metaadatokat az asset-ekről, így a könyvtárak közötti mozgatás ezeket az adatokat érvényteleníti. Ha az asset-eket akarjuk rendszerezni, legjobb ezt a Project ablakon belül megtenni.

A folytatásról

A cikksorozat további részeiben a Unity kiemelten fontos nézeteivel és ablakival fogunk foglalkozni. A nézetekről és használatukról egy alapos leírás lesz elérhető, hiszen hatékony kezelésük döntően meggyorsítja a fejlesztést.

Skeldar