Hero background image

Wie man Kunst und Gameplay mit 2D-Kachelkarten erstellt

Erfahren Sie, wie das Unity Tilemap-System in Happy Harvest verwendet wird, einem 2D Top-Down-Landwirtschaftssimulationsspiel, das mit Unity 2022 LTS erstellt wurde.

Diese und viele weitere Techniken für Kunst und Animation finden Sie in dem E-Book 2D-Spielgrafik, Animation und Beleuchtung für Künstler.

Lesen Sie die anderen Artikel dieser Serie, um zu erfahren, wie Sie die Effekte und das Bildmaterial von Happy Harvest nachbauen können:

  1. 2D-Licht- und Schattentechniken in der Universal Render Pipeline
  2. Wie man 2D-Charaktere in Unity 2022 LTS animiert
  3. 2D-Spezialeffekte mit dem VFX Graph und Shader Graph (in Kürze verfügbar)

Herunterladen Fröhliche Ernte noch heute aus dem Unity Asset Store herunter.

Überzeichnungsmodus
Große Landschaften mit Unity Tilemap erstellen

Mit dem Tilemap-System von Unity können Sie eine Spielwelt mit Hilfe von Kacheln, kleinen Sprites, die auf einem Raster angeordnet sind, erstellen. Anstatt ein Level als ein einziges großes Bild zu gestalten, können Sie es in ziegelsteinähnliche Teile aufteilen, die sich in einem ganzen Level wiederholen. Dies ist besonders nützlich für Spiele mit großen begehbaren Bereichen, wie z. B. Simulatoren oder RPGs.

Tilemaps können helfen, Zeit bei der Kunsterstellung sowie Speicher- und CPU-Nutzung zu sparen. Dies liegt daran, dass die Kacheln von einem speziellen Renderer gerendert werden können und die nicht auf dem Bildschirm sichtbaren Kacheln deaktiviert werden können. Ein Pinselwerkzeug ermöglicht das effiziente Malen von Kacheln auf einem Raster, und sie können mit Skripten versehen werden, um Malregeln zu verwenden. Außerdem verfügen sie über eine automatische Kollisionserzeugung für effizienteres Testen und Bearbeiten.

Bei der Erstellung von Tilesheets ist es wichtig, die Kombination von Kachelschichten zu vermeiden, wenn sie nicht benötigt werden, da dies dazu beiträgt, die Überzeichnung zu reduzieren. In Happy Harvest befinden sich alle Tilemaps unter dem Spielobjekt Grid . Sie können sehen, wie die Tilemap namens GroundBasealle Bodengrafiken enthält. Alle diese Kacheln werden gleichzeitig gruppiert, indem der Rendering-Modus im Tilemap-Renderer auf Chunk gesetzt wird. Dies kann zur Optimierung der Leistung beitragen.

Der Kopfsteinpflasterweg im Beispiel könnte mit mehreren Schichten von Fliesenvorlagen erstellt worden sein: Einen für das Kopfsteinpflaster und einen für den Rasen. Das mag aus der Perspektive der Kunsterzeugung praktisch sein, wäre aber aufgrund der sich überlappenden Pixelschichten weniger leistungsfähig. Erstellen Sie nur dann separate Kachelkarten, wenn dies erforderlich ist, z. B. in Fällen, in denen Sie unterschiedliche Tiefenebenen benötigen.

Um eine umfassende Einführung in die Funktionsweise des Tilemap-Systems von Unity zu erhalten, laden Sie das E-Book 2D-Spielkunst, Animation und Beleuchtung für Künstler.

Verschiedene Natur-Fliesenplatten
Kachelkarten in Happy Harvest

Die Kacheln in Happy Harvest wurden in Abschnitten erstellt, wobei den Kachelkarten, die im Spiel häufig verwendet werden, wie dem Hauptweg oder den Grasflächen, Priorität eingeräumt wurde. Für diese Karten werden mehr Kacheln benötigt, da sie zum Erstellen von Pfaden mit unterschiedlichen Formen verwendet werden. Im Gegensatz dazu benötigen die Kiefern im Hintergrund, die als quadratische Kachelkarten angelegt sind, weniger Kacheln.

Im Allgemeinen werden Requisiten, die vertikal und vor oder hinter der Figur gerendert werden, in einer anderen Sortierebene in GameObjects getrennt. Der GameObject Brush, eine Funktion aus dem Paket 2D Tilemap Extras, wird jedoch verwendet, um einige dieser Objekte, wie z. B. Holzzäune, in einem Tilemap-Raster zu platzieren. Um diese Requisiten in einem organischeren Muster zu verteilen, können Sie sie in einem GameObject in der Hierarchie außerhalb der Tilemap ablegen.

Sekundäre Texturen für Tilemaps

Jede Kachelkarte im Ordner "Tilemaps" hat Gegenstücke, die Normal Map und Mask Map Texturen genannt werden. Diese haben die gleichen Abmessungen und das gleiche Layout, sind aber für die Darstellung der Beleuchtung lackiert. Lesen Sie den Artikel "2D-Licht- und Schattentechniken in der Universal Render Pipeline", um zu erfahren, wie die Beleuchtung in diesem Beispiel erstellt wurde.

Die Normal Map- und Mask Map-Texturen werden der Haupttextur des Kachelsatzes im Sprite-Editor hinzugefügt. In Happy Harvest werden Maskenmaps verwendet, um Rim-Light-Silhouetteneffekte für die Figur und die Requisiten zu erzeugen. Da die meisten Fliesen jedoch für den Boden verwendet werden, benötigen sie keine Randbeleuchtung. Aus diesem Grund ist der größte Teil der Textur dieses Fliesensatzes schwarz, um zu vermeiden, dass das für den Randeffekt erzeugte Licht reflektiert wird. Eine Ausnahme bilden die Dachziegel, bei denen die Kanten hervorgehoben sind.

Beispiel für Pfadkacheln
Regel Tile für die Umweltgestaltung

Das Werkzeug Kachelpalette wird in Happy Harvest verwendet, um das Raster jeder Kachelkarte effizient mit Kacheln zu füllen. Die manuelle Platzierung der Kanten oder Ecken der Pfadformen kann zeitaufwändig und fehleranfällig sein. Sie müssten die manuelle Arbeit jedes Mal wiederholen, wenn Sie Änderungen am Pfad oder einer anderen kachelbasierten Form vornehmen. Sie können die Funktion Regelkacheln verwenden, um dies zu vermeiden.

Rule Tile malt die richtigen Randkacheln auf der Grundlage der benachbarten Kacheln der Form. Im Projektordner von Happy Harvest finden Sie eine Kachelpalette namens Palette_Tiles. Die erste Reihe der Palette enthält häufig verwendete Kacheln, wie z. B. das Bodenfeld mit Gras. Dies sind Regelfliesen. Wählen Sie das GameObject im Inspector aus, um das Asset in der Projektansicht anzuzeigen. Sie können dann dieses Asset auswählen, um die Einrichtung dieser Regelkachel zu sehen.

Wenn dies auf Ihr Projekt zutrifft, können Sie Zeit sparen, indem Sie diese Kacheln wiederverwenden oder die Texturen übermalen.

Mehrere Tilemaps in einer Kartenszene
Tilemap-Struktur in Happy Harvest

Alle Kacheln im Beispiel haben die gleiche Größe und Form und sind im gleichen Raster-Spielobjekt enthalten. Dies hilft, die Anzahl der Kachelkarten gering zu halten. Eine Komponente namens Terrain Manager ist mit dem Grid GameObject verbunden und bietet Spielmöglichkeiten, die wir im folgenden Abschnitt erläutern.

Einige der Tilemaps unter dem Grid GameObject umfassen:

  • Unterwasser-Kacheln: Diese werden für Unterwasserfliesen, für die Klippe und als grüner Boden für den Teichbereich verwendet.

  • Wasser: Diese Kacheln verwenden einen anderen Shader als die anderen, das sogenannte Sprite-Lit-Material, das in Shader Graph erstellt wird, um die Wasseranimation zu simulieren.

  • GroundBase: Dies ist das Bodenkunstwerk, das aus Kacheln für die Wege, Gras, Lehm und Stein besteht, um die Lücken der Höhenkacheln zu füllen.

  • ObjectsInTiles: Dies wird für GameObjects verwendet, die mit dem GameObject Brush aus der Tile Palette in einer Tilemap gemalt werden, wie z.B. die Zäune.

  • TilledTilemap: Diese Kacheln werden im Code verwendet, um Kacheln zu erkennen, auf denen Samen gepflanzt werden können.

  • WateredTileLayer: Dies wird von der Spiellogik verwendet, um die Spielsteine nass aussehen zu lassen. Wenn die Fliesen getrocknet sind, werden die "nassen" Fliesen entfernt.

  • Lagerhaus, Haus: Diese Tilemaps werden für die Erstellung des Lagerhauses und des Hauses verwendet. Die Erstellung der Gebäude mit Tilemaps gab dem Künstler die Flexibilität, sie effizienter umzugestalten und die Größe zu ändern und Texturplatz zu sparen, da Teile des Gebäudes dieselbe Textur verwenden.

  • Kulturpflanzen: Diese gruppiert alle Pflanzen unter einem GameObject und wird auch vom Terrain Manager verwendet.
Beispiel Terrain Manager
Tilemap-API für das Gameplay

Das Terrain-Manager-Skript, das an das Grid-GameObject angehängt ist, bearbeitet Kacheländerungen und verwendet Kacheln, um den Überblick über die Pflanzen zu behalten. Es verwendet die Tilemap-API, die für die Einrichtung eines rasterbasierten Gameplays nützlich sein kann, um die Position von Gegenständen in 2D leichter zu erkennen.

Diese MonoBehaviour-Klasse erstellt zwei generische Klassen namens GroundData und CropData. Dazu gehören spielbezogene Variablen wie die Dauer, in der die Kacheln nass erscheinen, wie schnell eine Pflanze wächst oder wie lange sie ohne Ernte auskommt, bevor sie stirbt.

Das Skript Terrain Manager verweist auf die Tilemaps und Kacheln, die für das Spiel verwendet werden:

  • Bodenkachelkarte: Dies verweist auf die Kachelkarte mit den Bodenkacheln, die angeben, wo der Spieler graben und Samen pflanzen kann. Wenn Sie in einer Kachel außerhalb dieser Tilemap graben, wird nichts passieren.

  • Tilemap beschneiden: Dies verweist auf das Tilemap-GameObject, das das übergeordnete Objekt der Crops ist. Die Verwendung der Tilemap-API ermöglicht es Ihnen, Erntekacheln zu platzieren, zu aktualisieren und zu entfernen.

  • Wasser-Kachelkarte: Verwenden Sie dies, um die bearbeiteten Bodenplatten mit simuliertem Wasser zu übermalen, um dem Spieler visuell zu vermitteln, dass diese Platten bereit zum Pflanzen und Wachsen sind.

  • Bewässerte Fliese: Dies ist eine Regelüberschreibungskachel mit der Wassergrafik, die es Ihnen ermöglicht, Kacheln mit Variationen einer Regelkachel zu erstellen, ohne neue Regeln zu setzen.

  • Bearbeitbare Fliese: Damit werden die Plättchen gekennzeichnet, die der Spieler zum Graben verwenden kann.

  • Geflieste Kacheln: Dies ist die Regelfliese, die verwendet wird, um das Bild für den bearbeiteten Boden zu malen.

Das Terrain-Manager-Skript enthält Funktionen, die die Tilemap-API verwenden, um Kachelinformationen in einem Vector3int-Positionsformat zu lesen und die Kacheln entsprechend zu aktualisieren. Diese Funktionen werden von den verschiedenen Tools aufgerufen, wenn der PlayerController die Funktion für sie auslöst.

Beispiel für Bleeding
Vermeiden von Texture Bleeding auf Tilemaps

Um eine ansprechende Darstellung zu gewährleisten, sollten Sie das Auftreten von "Bleeding" oder kleinen Lücken zwischen den Kacheln aufgrund von Interpolation und Kantenglättung vermeiden. Dies ist etwas, das in Pixel-Art-Spielen nicht vorkommt, in denen Sprites nicht geglättet werden, da ihr Filtermodus auf Punkt (kein Filter) eingestellt ist. In Happy Harvest sind die Kachel-Sprites mit Sprite Atlas verpackt, was eine bessere Projektorganisation, Leistung und Kontrolle durch eine einfache Einrichtung ermöglicht.

Wenn Sie kein Kachelblatt verwenden, ist es empfehlenswert, Sprite Atlas zu verwenden, um die Nahtstellen und die interne Sortierung im Tilemap-Renderer zu erleichtern. Einige Standardeinstellungen funktionieren für die meisten Sprites, aber Kachelkarten müssen möglicherweise ein wenig angepasst werden. Funktionen wie die Vermeidung der Rotation von Sprites, wenn sie gepackt werden, oder die Alphadilatation helfen den Kacheln, schärfere Kanten zu erhalten.

2D Game Art, Animation und Beleuchtung für Künstler ebook cover
Weitere Ressourcen

Zu lernen, wie man Kacheln erstellt, die perfekt zusammenpassen, Wiederholungen vermeidet und die Szene lesbar hält, kann eine Erfahrung von Versuch und Irrtum sein. Erfahren Sie mehr über das Tilemap-System im E-Book 2D-Spielkunst, Animation und Beleuchtung für Künstler.

In den folgenden Blog-Beiträgen werden mit Unity erstellte Retro-2D-Spiele vorgestellt und weitere Tipps zur 2D-Entwicklung gegeben:

Außerdem kannst du dir unsere anderen 2D-Demos ansehen, Die verlorene Krypta und Drachen-Crasher.

Weitere Ressourcen für fortgeschrittene Programmierer, Künstler, technische Künstler und Designer finden Sie im Unity Best Practices Hub.

Haben Ihnen diese Inhalte gefallen?