Developedia
Developedia
Tilemap (Hamarosan)

Tilemap (Hamarosan)

Sok retro és modern játék alapszik rácsszerkezeten.

Megaman 3 (1990)
Megaman 3 (1990)
Chrono Trigger (1995)
Chrono Trigger (1995)
Spelunky (2013)
Spelunky (2013)
Stardew Valley (
Stardew Valley (2015)

Ha a fenti példákhoz hasonló látványt szeretnénk megvalósítani, érdemes használni a Unity beépített Tilemap eszközét, amivel könnyedén hozhatunk létre rácsalapú pályát.

3 féle mintát (grid-et) támogat a unity csempe rendszere:

  • Négyszög: Rectandular
Loop Hero (2021)
Loop Hero (2021)
  • Izometrikus: Isometric
Age of Empires II (1999)
Age of Empires II (1999)
  • Hatszögrács: Hexagonal
Sid Meier’s Civilization VI (2016)
Sid Meier’s Civilization VI (2016)

Ezek közül most csak a négyszögrács alapú csempékkel foglalkozunk, de a lent leírtak nagy részben érvényesek egyéb rácsszerkezetekre is.

Csempe alapú játékok gyakran, ám nem mindig pixelgrafikusak. Ha érdekel a pixelgrafikus játékok készítésének elmélete, itt olvashatsz róla:

Előkészület

  1. A 2D Tilemap Editor és a 2D Sprite csomag letöltése a Package Manager-ből:
  2. (Felső Menüsáv/Window/Package Manager - Unity Registry / 2D Tilemap Editor)

    (Felső Menüsáv/Window/Package Manager - Unity Registry / 2D Sprite)

  3. Paletta kép importálása
  4. Először is a projektben léteznie kell egy képnek, ami rácsba rendezve szerepelnek a csempéink sprite-jai.

    image
  5. Állítsuk be a képen a következőket:
  6. (Kép kijelölése / Inspector ablak)

    TextureType: Sprite (2D and UI)

    SpriteMode: Multiple

    Pixel per Unit: Amennyi pixelből áll egy csempe oldala

    Compression: None

    Csak ha pixelgrafikát használunk:

    FilterMode: Point (No Filter)

  7. Tilemap kép feldarabolása
  8. (Kép kijelölése / Inspector ablak / SpriteEditor / Slice )

    (Ehhez szükség van a 2D Sprite csomag telepítésére: 1. pont)

    image
  9. A Unity Tile paletta elkészítése
    • (Jobb katt az Assetek közt / Create / 2D / Tile Palette / Rectangular ) vagy
    • (Felső Menüsáv / Assets / Create / 2D / Tile Palette / Rectangular )
    • Ezután a palettához kell adni a feldarabolt Tilemap Sprite-ot. Ezt a Tile Palette ablakban tudjuk megtenni (Felső Menüsáv / Window / 2D / Tile Palette) drag and drop megoldássa.

  10. Antialiasing kikapcsolása
  11. Tilemap-ok esetében mindig kapcsoljuk ki az antialiasing-et! Ha ezt nem tesszük meg, akkor a csempék között néhol egy pixel vastag vonal jelenhet meg.

    icon
    Antialiasing

    Olyan technika a számítógépes grafikában a pixelgrafikus képek éleinek simításához használható.

    image

    Az antialiasing különösen 3D játékok esetében tudja nagyban javítani a látványt.

    A Unity-ben van lehetőségünk arra, hogy ki és bekapcsoljuk az automatikus antialiasing-ot:

    (Felső Menüsáv / Edit / ProjectSettings / Quality / Antialiasing)

Csempék lehelyezése

Ahhoz hogy elkezdjük a játékunk pályáit lecsempézni szükségünk van egy Rácsszerkezetre. Erre a célra egy Grid komponenst kell adnunk egy üres GameObject-hez. Ezen a komponensen állíthatjuk be a rácsszerkezet tulajdonságait. Javaslom, hogy négyzetrács esetén ragaszkodjunk az 1x1-egység méretű rácsokhoz.

Ezután szükségünk van egy gyerek objektumra a Grid komponens alá. Ehhez a gyerek GameObject-hez hozzá kell adnunk egy TileMap-ot és egy TilemapRenderert, hogy megjelenjen a rajzolt pálya.

Ezután tudunk a csemperácson rajzolni. Ehhez szükségünk van a Tile Palette ablakra:

(Felső Menüsáv / Window / 2D / Tile Palette)

Több rétegbe is rendezhetjük a csempéinket, ha több Tilemap GameObject-et hozunk létre a Grid alá. Hogy ezen rétegek közül melyik jelenik meg előrébb azt a sprite-oknál megszokott módon tudjuk szabályozni: Sorting Order és Sorting Layer.

Ha bizonyos rétegekhez, fizikát is szeretnénk, használhatjuk a Tilemap Collider 2D-t.

Extrák

2D Tilemap Extras neven egy hivatalos Unity kiegészítő csomag is létezik a 2D Tilemap Editor-hoz.

Ezzel a csomaggal elérhető, hogy speciális viselkedésű tile-okat hozzunk létre:

AnimatedTile - Animált csempe:

Képes automatikusan és periodikusan cserélni egy csempe sprite-ját.

Rule Tile - Szabály csempe:

Automatikusan felvesz egy megfelelő képet a környezete alapján.

Nem kell kiválasztani, hogy alját, tetejét, sarkát, közepét vagy bármely egyéb részét rakjuk le egy nagyobb alaknak a rendszer automatikusan kiválasztja az ideális csempét egy előre beállított szabályrendszer alapján.

Egy adott pozícióra több csempe is megadható és lehet rendelkezni arról, hogyan válasszon a rendszer megfelelő a jelöltek közül, véletlenszerűen vagy valamilyen sorminta szerint.

Egy Prefab is lehet csempe, nem csak Sprite.

Általa akár 3D modellekből is állhat a csemperács.

Bonyolult viselkedésű egyedi csempék is létrehozhatók gyerek objektumokkal, hozzáadott szkriptekkel és egyéb extra komponensekkel.

Programozható. Egyedi viselkedés írható hozzá.

Logo

Főoldal

Blog

Elmélet

3D Studio

Adatvédelmi nyilatkozat

GY.I.K.

Házirend

Szerző: Marosi Csaba / marosi.csaba@3d-studio.hu

DiscordGitHubLinkedIn