☰ Menu

Scene.hu

Magyar demoscene portál – grafikusok, zenészek, programozók alkotói közössége

Unity scener szemmel (1. rész)

Posted by Travis on 2013-12-27, 17:46

Már a Function idején is szemeztem a Unity3d játékmotorral. Sokszor mondják, hogy a demoscene és a játékfejlesztés szoros kapcsolatban van, de ezt a kapcsolatot kicsit egyoldalúnak találtam. Habár nem vagyok bennfentes a játékiparban, kívülállóként azt látom, hogy a játékipar többet profitál a demoscenéből, mint fordítva.

A jövőben elképzelhető, hogy ez a trend meg fog fordulni, hiszen egyre több grafikai motor válik hozzáférhetővé és ez biztosan kihatással lesz a demoscenere is. Az egyik ilyen motor a Unity. Elsősorban játékfejlesztésre van kihegyezve, de ismerünk egy csapatot, akik – legjobb tudomásom szerint – kizárólag ezzel a motorral készítenek release-eket. Nézzük, mi a Poo-brain csapat titka!

Unity letöltése

A Unity aktuális verzióját (a cikk idején ez a 4.3.2-es, ) letölteni innen tudod.

Letöltés és installálás után regisztrálnunk kell, ki kell tölteni egy kérdőívet, csak ez után használhatjuk a rendszert. Az itt leírtak az ingyenes verzióra vonatkoznak. A fizetős változat természetesen többet tud, szebb, de a céljainknak talán előbbi is megfelel.

Tartalmak (Assets)

Miután létrehoztunk egy projektet, fel kell tölteni az tartalommal. Tartalom lehet bármi: zene, modell, textúra, kód. Ebben a leírásban a Small worlds című méltán elfeledett demó elemeit fogom felhasználni. Három dologra lesz szükség: a mantra.ogg, ant.obj, hangya_textura.png. Importáljuk be mindhármat. Ha más fájlokkal dolgozunk, nézzük meg, hogy a Unity képes-e fogadni az adott fájltípust!

A motor tartalmaz kész objektumokat is, ezeket a GameObject -> Create Other menüpont alatt találjuk. Adjunk hozzá projektünkhöz egy Terrain-t. A kamerát pedig eleve tartalmazza a jelenetünk. Helyezzük el a talajt és a hangyát a jelenetben. Ehhez egyszerűen csak húzzuk át az Assetből a jelenetünkbe (Scene). A forgatás, mozgatás és átméretezés pontosan ugyan úgy működik, mint az összes 3D szerkesztőben, de ha gondjaink vannak, nyugodtan megnézhetjük valamelyik oktató videót is.

Jelenet összeállítása

Adjunk a hangyához textúrát: A hierarchiában nyissuk ki a hangyát (1.) és a Materials alatt válasszuk ki a textúrát (2.) Most adjunk zenét a jelenethez: Jelöljük ki a kamerát. Az Add Component gomb segítségével adjunk hozzá egy Audio Source elemet. (A kamera már eleve tartalmaz egy Audio Listenert). Ez a két elem szükséges, hogy halljuk a zenét. Az audio clip-nél válasszuk ki a mantra.ogg-t.
Unity scene editor

A jelenet még elég gyér, adjunk hozzá árnyékot. Ehhez be kell állítani a modellnél, hogy vessen árnyékot. Mesh Renderer -> Cast Shadows. Ha azt akarjuk, hogy más modell árnyéka megjelenjen a hangyán, akkor a Receive Shadows-t is pipáljuk ki. Természetesen ez még nem elég. Kell egy fényforrás is. Többféle fényforrás típus közül választhatunk, de az ingyenes verzió esetén csak a Directional Light képes árnyékot képezni. Adjunk egyet a jelenetünkhöz és állítsuk be a kívánt irányba.

Végeredmény

A kész jelenetet a DVD lejátszók lejátszó gombjára emlékeztető ikonra klikkelve nézhetjük meg. A File -> Build Settings segítségével pedig futtatható alkalmazást készíthetünk belőle. Bátran játszunk a beállításokkal és nézzük meg a hatását a kész művünkre! Élvezzük ki, amíg lehet, mert a következő részekben senki nem menekül meg a kódolástól!

Categories: kiemelt, Programozás, Tutorial | Tags: ,

19 Responses so far.

  1. avatar adsr says:

    Travis, francba, még a végén ellustulok és kódolás helyett Unityben csinázom meg a következő demónkat ;-)

  2. avatar dolf says:

    hája mérne? amúgyis köllene tanulnom unityt.. sok játék van rá pl. itt: http://z6.com/racing/top?nxc=Z6KwdDe&gclid=CN22vP_iz7gCFYNe3godgD4A4Q
    amúgy ezt pythonnal lehet vezérelni?

  3. avatar Travis says:

    Nem kell félni, a kódolást itt sem lehet megúszni. Viszont nagy könnyebbség, hogy a vizuális hatások egy részét nem kell implementálni. Nem kell attól félni, hogy miként fog megjelenni mások gépén a végeredmény.

    De írhatunk shadereket is, ha nem tetszenek a beépített lehetőségek.

    Kódolni C#-ban, JavaScriptben és egy Boo nevű szkript nyelven lehet, ami nagyon hasonlít a Pythonra.

  4. avatar dolf says:

    c# és js nekem yo mer most ugyis perlezek. boo-ról eddig csak wikin olvastam.

  5. avatar Caiwan says:

    XNA-t be meri próbálni valaki?

  6. avatar Spenot says:

    XNA is dead, nem? Bár az oldskool compóban még elfér…

  7. avatar Caiwan says:

    @spenot: Ha nagyon lesz időm ilyennekkel foglalkozni, akkor portolom rá a GNU Rocketet, és lehet gyártani demót.

  8. avatar slyspy says:

    Mióta akarok egy unitys demót csinálni…
    Mondtam is még anno Murphynek, ő meg mondta, hogy ne vicceljek már, max. wildban férne el az ilyesmi.
    Erre meg…

    Fasza téma, pont erre volt szükségem.

  9. avatar Travis says:

    Ennek orulok, mert en arra szamitottam, hogy a veteranok, akik direktben irnak ki a grafikus kartyara, majd jol leszolnak, hogy ez csak tehetsegpotlas.

  10. avatar dolf says:

    travis: szerintem baromság a lexólás. én mindig a könnyü programozás / gyors eredmény híve voltam, már akkor is mikor 90-es elején pascalba nyomtuk. a delphi egy megváltás volt. xerintem a végeredmény a lényeg, s mivel ma már a fejlextöi környezetek megxámlálhatatlanul elsokasodtak, nincs is értelme utánnakeresgélni h. mivel is kéxült pontosan. engem nem is érdekelt soha. – ez perxe csak a saját véleményem, másét tixtelem.

  11. avatar dolf says:

    na még regényem folytatván mer rájöttem h. öxekevertem 2 dolgot, az applikációfejlextést (pascal) mega demóipart.. volt akkoriban olyan is h. maze és amiga assemblyben kente egy srác (wagner robi -üdv!) speciel én csak a fösulin tanultam, de: aki assemblyben nyomja az xeggggyen hangyát! :-) arra akarok kilyukadni h. mi emberek hoztuk létre a computert, akkor az a minimum hogy nem mi tanuljuk a “nyelvét” mint egy aliennek, hanem olyanná kell csinálni, hogy ö értse a miénket, anélkül hogy nekünk bonyolult gépnyelveket kéne tanulni. figyejj revolution! rominterpretert minden xaros intelbe. lol :-)

  12. avatar Esplanade says:

    Várjuk a következő Unity cikket!!

  13. avatar Bery says:

    Nekem az tetszik benne, hogy egy kattintással azt lehet mondani, hogy akkor erre az objektumra akkor vonatkozzanak a merev-test fizika szabályai, és onnantól vonzza a gravitáció, ha ütközik, annak hatása van, még ha mindezek alapszinten is.

    Még csak éppen hogy megnézegettem, de elég komplex engine-nek tűnik. Bár a timerelésre talán nincs kihegyezve, de lehet, hogy csak nem találkoztam még a megoldással. Remélhetőleg Travistől hamarosan megtudjuk :)

    De persze az buzi, aki ezzel csinál demót ;)

  14. avatar dolf says:

    bery: ezt mondjuk a truespace is tud(t)ja, az meg nem mai prg, ja de nem is realtime :-)

  15. avatar MaNiAc says:

    Demo ~ Scene ~ Cutscene ~ Animation

    Avagy benne van az a Unityben, csak mas a terminologia :)

    “In addition to animating movement, the editor also allows you to animate variables of materials and components and augment your Animation Clips with Animation Events, functions that are called at specified points along the timeline.”

    http://docs.unity3d.com/Documentation/Components/AnimationEditorGuide.html

  16. avatar TerranceG says:

    Köv rész lesz?

  17. avatar Murphy says:

    TerranceG: Ha minden jól megy épp holnap jön.

  18. avatar TerranceG says:

    Az jó, mert a hangyát már megcsináltam. :)

  19. avatar Artlace says:

    En is Unity-t szeretnek tanulni de a tutorial videoik annyira szarazak es sokszor semmitmondoak hogy nem tudtam mihez kotni.

    Demoscene oldalrol nezve viszont sokkal megfoghatobb a szamomra. Koszi a cikket, remelem joparat irsz meg majd rola!

Leave a Reply

You must be logged in to post a comment.

Ugrás a lap tetejére Ugrás a lap aljára