Talaj készítése Unity-ben (2. rész)

Talaj készítése Unity-ben (2. rész)

Az előző részben megismerkedhettünk a talaj generálásával, konfigurálásával és textúrázásával. De miért elégedjünk meg egy csupasz, dimbes-dombos, textúrázott felülettel? Ültessünk fákat! Ebben a részben a fák, fű és más objektumok elhelyezésével foglalkozunk.

Fák

Fákat a Place Tree eszközzel helyezhetünk el:

Place Tree

A Paint Texture eszközhöz hasonlóan, a Place Tree-nek is legalább talajhoz adott fára van szüksége, hogy használhassuk. Kattintsunk az Edit Trees… gombra, majd válasszuk ki az Add Tree opciót.

Add Tree

Az Add Tree párbeszédablak a következő paraméterekkel rendelkezik:

Tree: A fa modell, melyet a talaj falistájához adunk.
Bend Factor: A meghajlás mértéke. vagyis ha beállítunk szelet a talajhoz, akkor az mennyire legyen hatással a fűre.

Válasszuk ki a megfelelő ikont a Tree property mellett, és válasszuk ki a fát a megjelenő ablakból.

Select Tree

Kattintsunk az Add gombon, és adjuk hozzá a fát a listához:

Tree Inspector

A Place Trees eszköz paraméterei a következőek:

  • Trees: A fák listája, melyeket hozzárendeltünk a talajhoz.
  • Brush Size: Az ecsetünk mérete világegységben.
  • Tree Density: A festés során határozza meg a fák sűrűségét.
  • Color Variation: A véletlenszerű shade-elést állíthatjuk itt be.
  • Tree Height: A fák magasságát állíthatjuk be. A 100-as érték normál magasságú fákat fest, míg a 200 kétszereset, amennyiben a scale értéke 1.
    Fa magasságkülönbségek
  • Variation: A magasságnál alkalmazandó variációk.
  • Tree Width: Ugyanaz, mint a Tree Height esetében, de itt a szélességet adjuk meg.
  • Variation: A szélességnél alkalmazandó variácók.

Tömeges fatelepítés

A Unity-ben lehetőségünk van automatikusan helyezni el fákat talajon a Terrain/Mass Place Trees menüvel.

Tömeges fatelepítés

A menü kiválasztása után meg kell adjuk, hány fát szeretnénk elhelyezni. A Place gomb megnyomása után a Unity véletlenszerűen elkezdni lerakni a fákat. Ez a módszer minden fát kicserél, melyet előzőleg helyeztünk el.

Tömeges fatelepítés

A Unity csak a viszonylag sima talajon fog elhelyezni fákat.

Egyedi fák készítése

A Unity tartalmaz egy Tree Creator nevű eszközt, amellyel egyedi növényeket tudunk generálni. Új fa GameObject-et a GameObject/Create Other/Tree menüponttal tudunk létrehozni, melyet a főmenüből érhetünk el.

Tree Creator

A Tree Creator csomagot importálhatjuk is a Standard Assets-ből, amelyet a Unity készített. Ehhez ki kell választanunk az Assets/Import Package/Tree Creator menüt. A csomag hozzáférést biztosít néhány textúrához, amelyek jól használhatóak fák megalkotásához. A fenti kép a Big Tree assetet mutatja, amelyet a Tree Creator-ral hoztak létre.

A fák készítése egy mélyebb téma, amelybe érdemes beleásni magunkat, ha igazán szép erdőket akarunk készíteni. A Tree Creator használatáról részletesen lehet olvasni a Unity online dokumentációjában:
Unity dokumentáció

A talaj befüvesítéséhez a Paint Details eszközt használhatjuk az Inspector-ban.

Paint Details

A Paint Texture és a Place Trees eszközökhöz hasonlóan, a Paint Details esetében is definiálni kell először egy objektumot, amellyel a festést fogjuk végezni.

Kattintsunk az Edit Details… gombra, majd válasszuk ki az Add Grass Texture gombot a felugró menüben.

Add Grass Texture

Az Add Grass Texture párbeszédablak a következő paraméterekkel rendelkezik:

  • Detail Texture: A fűnek használt textúra.
  • Min Width: A fű szekció minimális szélessége világegységben.
  • Max Width: A fű szekció maximális szélessége világegységben.
  • Min Height: A fű szekció minimális magassága világegységben.
  • Max Height: A fű szekció maximális magassága világegységben.
  • Noise Spread: A fűgenerálásnál használt zaj mértéke. A kisebb szám kevesebb zajt jelent.
  • Healthy Color: Az egészséges fű színe a Noise Spread csomó közepén.
  • Dry Color: A száraz fű színe a Noise Spread szélein.
  • Billboard: Ha be van pipálva, akkor a fű mindig kamera felé fog fordulni.

Tetszett a cikk? Érdekel a játékfejlesztés? Jelentkezz iskolánkba!

 

Kattintsunk a Detail Texture tulajdonság melletti ikonon, és válasszuk ki a fű textúráját a megjelenő Select Texture2D párbeszédablakban.

Select Texture2D

A Standard Package-ben lévő Terrain Assets tartalmaz néhány fűtextúrát, amelyet a talajunk füvesítéséhez használhatunk. Adjuk hozzá a textúrát a talajhoz, és vessünk be egy területet.

Fű textúra részletek

 

Detail Mesh

A fűhöz hasonlóan, a Paint Details eszköz segítségével újabb elemeket adhatunk a talajhoz.

Paint Details

Egy detail mesh hozzáadásához kattintsunk az Edit Details… gombon az Inspector-ban, az előugró menüből pedig válasszuk ki az Add Detail Mesh opciót .

Add Detail Mesh

Az Add Detail Mesh párbeszédablak paraméterei:

  • Detail: A használni kívánt mesh.
  • Noise Spread: A részletek generálásához használt zaj mértéke. A kisebb szám kevesebb zajt jelent.
  • Random Width: A méretvariációk mennyiségi határa.
  • Random Height: A méretvariációk mennyiségi határa.
  • Healthy Color: Az egészséges részlet színe a Noise Spread csomó közepén.
  • Dry Color: A száraz részlet színe a Noise Spread szélein.
  • Render Mode: Grass lightning vagy normál Vertex lightning világítás között választhatunk. Például egy szikla esetén a Vertex beállítást érdemes használni. Minden olyan elemnél (pl.: bokor), amelyre hatással van a szél, érdemes Grass típusúra állítani.

A Terrain Assets nem tartalmaz semmilyen mesh-t, amellyel kidekorálhatjuk a talajt, de a Unity oldalán találunk számos bokrot és sziklát, amelyet használhatunk.

Adjunk néhány detail mesh-t a talajhoz:

Talaj Detail Mesh-ekkel

Ha módosítjuk a detail mesh-eket a Unity-n kívül, azok nem fognak automatikusan frissülni a talajon. A frissítéshez válasszuk ki a Terrain/Refresh Tree and Detail Prototypes menüt.

Talajbeállítások

Az utolsó gomb a Terrain Settings:

Talaj beállítások

A Terrain Settings három fő kategóriára bontható:

  • Base Terrain
  • Tree & Detail Objects
  • Wind Settings

Base Terrain

A Base Terrain a talaj rajzolatára van hatással.

  • Pixel Error: Ez a tulajdonság szabályozza a talaj geometriájának renderelésekor az elfogadható hibamennyiséget. A nagyon távol lévő részeknél kevesebb törésből fog állni a talajunk. Ahogyan a néző egyre jobban megközelíti ezeket a helyeket, a talaj úgy válik egyre finomabbá. Ez a renderoptimalizálás. A Pixel Error adja meg, mennyi hiba léphet fel, amkor a talaj messze van. A nagyobb érték jobb teljesítményt jelent ugyan, de kevésbé esztétikus.
    Pixel Error
  • Base Map Dist.: Az a távolság, ahol a textúra még nagy felbontásban látható, ezután már csak kis felbontásban lesz látható.
  • Cast Shadows: Ez az opció szabályozza, hogy vessen-e árnyékot a talaj vagy sem.

Tree & Detail Objects

A Tree & Detail Objects foglalkozik a fákra, fűre és detail mesh-ekre vonatkozó hatások beállításaival.

  • Draw: A fák, a fű és a detail mesh-ek renderelését tudjuk vele kapcsolni.
  • Detail Distance: Az a kamerától való távolság, ahonnan az említett elemek már nem renderelődnek. Nagyobb érték beállításával a távol lévő elemek is láthatóak maradnak, de ez nagyban tudja rontani a teljesítményt.
  • Tree Distance: Hasonlóan a Detail Distance-hoz, ez azt a távolságot adja meg, ahonnan a fák már nem lesznek renderelve. A nagyobb érték messzebbről is láthatóvá teszi a fákat.
  • Billboard Start: Az a távolság, ahonnan nem rendereljük a fákat, hanem azok Billboard-ként kerülnek megjelenítésre Mesh helyett.
  • Fade Length: Az a távolság delta, ahonnan a fák elkezdenek Billboard irányból Mesh irányba változni.
  • Max Mesh Trees: A mesh-ként ábrázolandó fák száma.

Wind Settings

A Wind Settings-ben szabályozhatjuk,  hogyan legyen szimulálva a szél a fákon, füvön és a talajon.

  • Speed: A füvön keresztülfújó szél sebessége. A 0-ás érték megállítja a szelet, de a fű néhány helyen ettől még dőltnek tűnhet.
  • Size: A fűvel borított terület nagysága, amelyre egyidőben hatással lehet a szél.
  • Bending: A szél által generált meghajlás mértékét szabályozó beállítás. A 0-ás érték megakadályozza, hogy a fű meghajoljon. Ha túl nagyra állítjuk ezt a számot, akkor a fű túlságosan meg fog hajolni, és ez nagyon természetellenes hatást fog előidézni.
  • Grass Tint: Ahogyan keresztülfúj a szél a füvön, adhatunk neki egy kis árnyalatot. A valóságban a fűszálak szöge megváltozik, ezért a színük is picit más, amíg hajlanak. A meghajlás valósághűbb lesz, de ehhez nagyon finoman kell beállítani ezt a színt, mert könnyen az ellenkező hatást fogjuk elérni.

Lightmapping

A jobb teljesítmény érdekében a talajt lightmappelhetjük, akárcsak a többi statikus objektumot a scene-ben. Ahhoz, hogy ezt megtehessük, a talajt Lightmap Static-ra kell állítanunk. Az alapbeállításban ennek a tulajdonságnak aktívnak kell lennie.

Összefoglaló

Számos funkcióval egyetemben, a Unity komoly terrain engine-nel rendelkezik, mellyel jól tudunk füvet, fákat és más objektumot is létrehozni, valamint elhelyezni. A sok funkció ellenére sajnos nagyon nehéz mindig pontosan úgy beállítani mindent, ahogyan szeretnénk, hogy kinézzen. A talaj azonban nagy jelentőséggel bír az összhatást illetően, ezért érdemes bőven rászánni az időt, hogy a játékunkban a talajt minél inkább az elképzeléseink szerint alakíthassuk ki. Ügyeljünk azonban arra, hogy ne legyen túl sok detail mesh, ahol a játékos is jár, mivel a collidereket ezekhez nekünk kell majd létrehozni.

Forrás: 3DGEP

Skeldar

0 válaszok

Hagyjon egy választ

Want to join the discussion?
Feel free to contribute!

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük