Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
TileSets verwenden
Einführung
A tilemap is a grid of tiles used to create a game's layout. There are several benefits to using TileMapLayer nodes to design your levels. First, they let you draw a layout by "painting" tiles onto a grid, which is much faster than placing individual Sprite2D nodes one by one. Second, they allow for larger levels because they are optimized for drawing large numbers of tiles. Finally, they allow you to add greater functionality to your tiles with collision, occlusion, and navigation shapes.
To use TileMapLayer nodes, you will need to create a TileSet first. A TileSet is a collection of tiles that can be placed in a TileMapLayer node. After creating a TileSet, you will be able to place them using the TileMap editor.
Um dieser Anleitung zu befolgen, benötigen Sie ein Bild, das Ihre Tiles enthält und in dem jede Tile die gleiche Größe hat (große Objekte können in mehrere Tiles aufgeteilt werden). Dieses Bild wird Tilesheet genannt. Die Tiles müssen nicht quadratisch sein: Sie können rechteckig, sechseckig oder isometrisch (Pseudo-3D-Perspektive) sein.
Erstellen eines neuen TileSets
Verwendung eines Tilesheets
Diese Demonstration wird die folgenden Tiles aus Kenneys Abstract Platformer-Paket verwenden. Wir werden dieses spezielle Tilesheet aus dem Set verwenden:

Create a new TileMapLayer node, then select it and create a new TileSet resource in the inspector:

Creating a new TileSet resource within the TileMapLayer node
Nachdem Sie die TileSet-Ressource erstellt haben, klicken Sie auf den Wert, um ihn im Inspektor auszuklappen. Die Standardform der Kachel ist Quadratisch, aber Sie können auch Isometrisch, Halbversetztes Quadrat oder Sechseck wählen (abhängig von der Form Ihrer Tile-Bilder). Wenn Sie eine andere Tile-Form als Square verwenden, müssen Sie möglicherweise auch die Propertys Tile-Layout und Tile-Versatzachse anpassen. Schließlich kann es nützlich sein, die Property Rendern > UV-Clipping zu aktivieren, wenn Sie möchten, dass Tiles durch ihre Tile-Koordinaten geclippt werden. Dadurch wird sichergestellt, dass Tiles nicht außerhalb ihres zugewiesenen Bereichs auf dem Tilesheet gezeichnet werden können.
Stellen Sie die Größe der Tiles im Inspektor auf 64×64 ein, um dem Beispiel-Tilesheet zu entsprechen:

Einstellung der Tile-Größe auf 64×64, um dem Beispiel-Tilesheet zu entsprechen
If relying on automatic tiles creation (like we're about to do here), you must set the tile size before creating the atlas. The atlas will determine which tiles from the tilesheet can be added to a TileMapLayer node (as not every part of the image may be a valid tile).
Öffnen Sie das TileSet-Bedienfeld unten im Editor, klicken Sie dann auf das Tilesheet-Bild und ziehen Sie es auf das Bedienfeld. Sie werden gefragt, ob Kacheln automatisch erstellt werden sollen. Antworten Sie mit Ja:

Automatisches Erstellen von Tiles auf der Grundlage von Tilesheet-Bildmaterial
Dadurch werden automatisch Tiles entsprechend der Tile-Größe erstellt, die Sie zuvor in der TileSet-Ressource angegeben haben. Dies beschleunigt die anfängliche Einrichtung der Tiles erheblich.
Bemerkung
Bei der automatischen Erzeugung von Tiles auf der Basis von Bildinhalten werden für Teile des Tilesheets, die voll transparent sind, keine Tiles erzeugt.
Wenn es Tiles aus dem Tilesheet gibt, die Sie nicht im Atlas haben möchten, wählen Sie das Radiergummi-Tool am oberen Rand der Tileset-Vorschau und klicken Sie dann auf die Tiles, die Sie entfernen möchten:

Verwenden des Radiergummi-Tools zum Entfernen unerwünschter Tiles aus dem TileSet-Atlas
Sie können auch mit der rechten Maustaste auf eine Tile klicken und Löschen wählen, als Alternative zum Radiergummi-Tool.
Tipp
Wie in den 2D- und TileMap-Editoren können Sie mit der mittleren oder rechten Maustaste über das TileSet-Panel schwenken und mit dem Mausrad oder den Buttons in der oberen linken Ecke zoomen.
Wenn Sie Kacheln aus mehreren Tilesheet-Bildern für ein einzelnes TileSet verwenden möchten, erstellen Sie zusätzliche Atlasse und weisen Sie jedem von ihnen Texturen zu, bevor Sie fortfahren. Es ist auch möglich, auf diese Weise ein Bild pro Tile zu verwenden (obwohl die Verwendung von Tilesheets für eine bessere Benutzerfreundlichkeit empfohlen wird).
In der mittleren Spalte können Sie die Propertys des Atlasses anpassen:

Anpassung der TileSet-Atlas-Propertys im spezifischen Inspektor (Teil des TileSet-Panels)
Die folgenden Propertys können im Atlas angepasst werden:
ID: Der Bezeichner (eindeutig in diesem TileSet), der für die Sortierung verwendet wird.
Name: Der menschenlesbare Name für den Atlas. Verwenden Sie hier einen beschreibenden Namen für organisatorische Zwecke (z. B. "Terrain", "Dekoration" usw.).
Ränder: Die Ränder an den Kanten des Bildes, die nicht als Tiles ausgewählt werden sollen (in Pixeln). Eine Erhöhung dieses Wertes kann nützlich sein, wenn Sie ein Kachelbild herunterladen, das an den Rändern Ränder hat (z. B. für die Autor-Informationen).
Abstand: Der Abstand zwischen den einzelnen Tiles auf dem Atlas in Pixeln. Eine Erhöhung dieses Wertes kann nützlich sein, wenn das von Ihnen verwendete Tilesheet-Bild Hilfslinien enthält (z. B. Umrisse zwischen den einzelnen Tiles).
Texture Region Size: The size of each tile on the atlas in pixels. In most cases, this should match the tile size defined in the TileMapLayer property (although this is not strictly necessary).
Textur-Padding verwenden: Wenn diese Option aktiviert ist, wird um jede Tile ein transparenter Rand von 1 Pixel hinzugefügt, um Textur-Bleeding zu verhindern, wenn Filtering aktiviert ist. Es wird empfohlen, dies aktiviert zu lassen, es sei denn, Sie laufen in Rendering-Probleme aufgrund von Textur-Padding.
Beachten Sie, dass eine Änderung des Texturrandes, des Abstandes und der Regionsgröße dazu führen kann, dass Tiles verloren gehen (da sich einige von ihnen außerhalb der Koordinaten des Atlasbildes befinden würden). Um Tiles automatisch aus dem Tilesheet zu regenerieren, verwenden Sie den Button mit den drei vertikalen Punkten oben im TileSet-Editor und wählen Sie Tiles in nicht-transparenten Textur-Regionen erstellen:

Automatische Neuerstellung von Tiles nach Änderung von Atlas-Propertys
Verwendung einer Sammlung von Szenen
Seit Godot 4.0 können Sie tatsächliche Szenen als Tiles platzieren. So können Sie jede Sammlung von Nodes als Tile verwenden. Sie können zum Beispiel Szenen-Tiles verwenden, um Gameplay-Elemente zu platzieren, wie z. B. Geschäfte, mit denen der Spieler interagieren kann. Sie können Szenen-Tiles auch verwenden, um AudioStreamPlayer2Ds (für Umgebungsgeräusche), Partikeleffekte und mehr zu platzieren.
Warnung
Szenen-Tiles sind im Vergleich zu Atlassen mit einem größeren Performance-Overhead verbunden, da jede Szene einzeln für jedes platzierte Tile instanziiert wird.
It's recommended to only use scene tiles when necessary. To draw sprites in a tile without any kind of advanced manipulation, use atlases instead.
For this example, we'll create a scene containing a CPUParticles2D root node. Save this scene to a scene file (separate from the scene containing the TileMapLayer), then switch to the scene containing the TileMapLayer node. Open the TileSet editor, and create a new Scenes Collection in the left column:

Erstellen einer Szenensammlung im TileSet-Editor
Nachdem Sie eine Szenensammlung erstellt haben, können Sie in der mittleren Spalte einen beschreibenden Namen für die Szenensammlung eingeben, wenn Sie möchten. Wählen Sie diese Szenensammlung aus und erstellen Sie einen neuen Szenen-Slot:

Erstellen einer Tile nach Auswahl der Szenensammlung im TileSet-Editor
Wählen Sie diesen Szenenslot in der rechten Spalte aus, und verwenden Sie Schnellladen (oder Laden), um die Szenendatei mit den Partikeln zu laden:

Erstellen eines Szenenslots und anschließendes Laden einer Szenendatei in diesen Slot im TileSet-Editor
Sie haben jetzt eine Tile in Ihrem TileSet. Sobald Sie zum TileMap-Editor wechseln, können Sie sie aus der Szenensammlung auswählen und wie jede andere Tile malen.
Zusammenführung mehrerer Atlasse zu einem einzigen Atlas
Die Verwendung mehrerer Atlasse innerhalb einer einzigen TileSet-Ressource kann manchmal nützlich sein, aber in bestimmten Situationen auch umständlich (insbesondere wenn Sie ein Bild pro Tile verwenden). Godot ermöglicht es Ihnen, mehrere Atlasse zu einem einzigen Atlas zusammenzufassen, um die Organisation zu erleichtern.
Dazu müssen Sie mehr als einen Atlas in der TileSet-Ressource erstellt haben. Verwenden Sie den "drei vertikale Punkte"-Menü-Button unten in der Liste der Atlasse und wählen Sie dann Tool zum Zusammenführen von Atlassen öffnen:

Öffnen des Tools zum Zusammenführen von Atlassen nach dem Erstellen mehrerer Atlasse
Dies öffnet einen Dialog, in dem Sie mehrere Atlasse auswählen können, indem Sie Umschalt oder Strg gedrückt halten und dann auf mehrere Elemente klicken:

Verwendung des Dialogfelds des Tools zur Zusammenführung von Atlassen
Wählen Sie Zusammenführen, um die ausgewählten Atlasse zu einem einzigen Atlasbild zusammenzuführen (was einem einzigen Atlas innerhalb des TileSet entspricht). Die nicht zusammengeführten Atlasse werden aus dem TileSet entfernt, aber die ursprünglichen Tilesheet-Bilder bleiben im Dateisystem erhalten. Wenn Sie nicht möchten, dass die nicht zusammengeführten Atlasse aus der TileSet-Ressource entfernt werden, wählen Sie stattdessen Zusammenführen (Original-Atlasse behalten).
Tipp
TileSet verfügt über ein System von Tile Proxies. Tile-Proxies sind eine Zuordnungstabelle, die es ermöglicht, der TileMap, die ein bestimmtes TileSet verwendet, mitzuteilen, dass ein bestimmter Satz von Tile-Identifikatoren durch einen anderen ersetzt werden soll.
Tile Proxys werden beim Zusammenführen verschiedener Atlasse automatisch eingerichtet, können aber auch manuell über den Dialog Tile Proxys verwalten eingestellt werden, den Sie über das oben erwähnte Menü mit den drei vertikalen Punkten aufrufen können.
Die manuelle Erstellung von Tile-Proxys kann nützlich sein, wenn Sie eine Atlas-ID geändert haben oder alle Tiles aus einem Atlas durch die eines anderen Atlas ersetzen möchten. Beachten Sie, dass Sie bei der Bearbeitung einer TileMap alle Zellen durch ihren entsprechenden zugeordneten Wert ersetzen können.
Zuweisung von benutzerdefinierten Metadaten zu den Tiles des TileSet
Sie können benutzerdefinierte Daten pro Tile zuweisen, indem Sie benutzerdefinierte Datenebenen verwenden. Dies kann nützlich sein, um spielspezifische Informationen zu speichern, z. B. den Schaden, den eine Tile verursachen soll, wenn der Spieler sie berührt, oder ob eine Tile mit einer Waffe zerstört werden kann.
Die Daten sind mit der Tile im TileSet verbunden: alle Instanzen der platzierten Tile verwenden dieselben benutzerdefinierten Daten. Wenn Sie eine Variante einer Tile mit anderen benutzerdefinierten Daten erstellen müssen, können Sie dies tun, indem Sie eine alternative Tile erstellen und die benutzerdefinierten Daten nur für die alternative Tile ändern.

Creating a custom data layer in the TileSet resource inspector (within the TileMapLayer node)

Beispiel für konfigurierte benutzerdefinierte Datenebenen mit spielspezifischen Propertys
Sie können benutzerdefinierte Daten neu anordnen, ohne bestehende Metadaten zu zerstören: Der TileSet-Editor wird automatisch aktualisiert, nachdem benutzerdefinierte Daten-Propertys neu angeordnet wurden.
With the custom data layers example shown above, we're assigning a tile to have the
damage_per_second
metadata set to 25
and the destructible
metadata
to false
:

Bearbeiten von benutzerdefinierten Daten im TileSet-Editor aus dem Auswahlmodus heraus
Malen von Tile-Propertys kann auch für eigene Daten verwendet werden:

Zuweisen von benutzerdefinierten Daten im TileSet-Editor mithilfe von Tile-Property-Malen
Erstellen von Geländesätzen (Autotiling)
Bemerkung
Diese Funktionalität wurde in Godot 3.x in einer anderen Form als Autotiling implementiert. Terrains sind im Wesentlichen ein leistungsfähigerer Ersatz für Autotiles. Im Gegensatz zu Autotiles können Terrains Übergänge von einem Terrain zu einem anderen unterstützen, da eine Tile mehrere Terrains auf einmal definieren kann.
Im Gegensatz zu früher, wo Autotiles eine spezielle Art von Tiles waren, sind Terrains nur eine Reihe von Propertys, die Atlas-Tiles zugeordnet sind. Diese Propertys werden dann von einem speziellen TileMap-Malmodus verwendet, der Tiles mit Terrain-Daten auf intelligente Weise auswählt. Das bedeutet, dass jede Terrain-Tile entweder als Terrain oder als einzelne Tile gemalt werden kann, wie jede andere auch.
Ein "poliertes" Tileset enthält im Allgemeinen Variationen, die Sie an Ecken oder Kanten von Plattformen, Böden usw. verwenden sollten. Diese können zwar manuell platziert werden, aber das wird schnell mühsam. Die Handhabung dieser Situation mit prozedural generierten Levels kann ebenfalls schwierig sein und eine Menge Code erfordern.
Godot offers terrains to perform this kind of tile connection automatically. This allows you to have the "correct" tile variants automatically used.
Terrains werden in Terrainsets gruppiert. Jedem Terrainset ist ein Modus aus Ecken und Seiten anpassen, Ecken anpassen und Seiten anpassen zugeordnet. Sie legen fest, wie Terrains in einem Terrainset aneinander angepasst werden.
Bemerkung
Die oben genannten Modi entsprechen den früheren Bitmasken-Modi, die in Godot 3.x verwendet wurden: 2×2, 3×3 oder 3×3 minimal. Dies entspricht auch den Funktionen des Tiled-Editors.
Select the TileMapLayer node, go to the inspector and create a new terrain set within the TileSet resource:

Creating a terrain set in the TileSet resource inspector (within the TileMapLayer node)
Nach der Erstellung eines Terrainsets müssen Sie ein oder mehrere Terrains innerhalb des Terrainsets erstellen:

Erstellen eines Terrains innerhalb des Terrainsets
Wechseln Sie im TileSet-Editor in den Auswahlmodus und klicken Sie auf eine Tile. Klappen Sie in der mittleren Spalte den Abschnitt Terrains aus und weisen Sie der Tile eine Terrain Set-ID und eine Terrain-ID zu. -1
bedeutet "kein Geländeset" oder "kein Gelände", was bedeutet, dass Sie Geländeset auf 0
oder höher setzen müssen, bevor Sie Gelände auf 0
oder höher setzen können.
Bemerkung
Terrain Set IDs und Terrain IDs sind unabhängig voneinander. Sie beginnen auch bei 0
, nicht bei 1
.

Konfigurieren des Terrains auf einer einzelnen Tile im Auswahlmodus des TileSet-Editors
Danach können Sie nun den Abschnitt Terrain-Peering-Bits konfigurieren, der in der mittleren Spalte sichtbar wird. Die Peering Bits bestimmen, welche Tiles in Abhängigkeit von benachbarten Tiles platziert werden. -1
ist ein besonderer Wert, der sich auf leeren Raum bezieht.
Wenn zum Beispiel alle Bits einer Tile auf 0
oder höher gesetzt sind, erscheint sie nur, wenn alle 8 benachbarten Tiles eine Tile mit der gleichen Terrain ID benutzen. Wenn eine Tile ihre Bits auf 0
oder größer gesetzt hat, aber die Bits oben links, oben und oben rechts auf -1
gesetzt sind, wird sie nur erscheinen, wenn es einen leeren Platz über ihr gibt (auch diagonal).

Konfigurieren von Terrain-Peering-Bits auf einer einzelnen Tile im Select-Modus des TileSet-Editors
Eine Beispielkonfiguration für ein komplettes Tilesheet könnte wie folgt aussehen:

Beispiel für ein vollständiges Tilesheet für ein Sidescroller-Spiel

Beispiel für ein vollständiges Tilesheet für ein Sidescroller-Spiel mit sichtbaren Terrain-Peering-Bits
Zuweisung von Propertys zu mehreren Kacheln auf einmal
Es gibt zwei Möglichkeiten, mehreren Tiles gleichzeitig Propertys zuzuweisen. Je nach Anwendungsfall kann die eine Methode schneller sein als die andere:
Mehrfachauswahl von Tiles verwenden
If you wish to configure various properties on several tiles at once, choose the Select mode at the top of the TileSet editor:
Danach können Sie mehrere Tiles in der rechten Spalte auswählen, indem Sie Shift gedrückt halten und dann auf die Tiles klicken. Sie können auch ein Rechteck auswählen, indem Sie die linke Maustaste gedrückt halten und die Maus ziehen. Schließlich können Sie bereits ausgewählte Tiles wieder abwählen (ohne den Rest der Auswahl zu beeinflussen), indem Sie Umschalt gedrückt halten und dann auf ein ausgewähltes Tile klicken.
Sie können dann mit dem Inspektor in der mittleren Spalte des TileSet-Editors Propertys zuweisen. Nur Propertys, die Sie hier ändern, werden auf alle ausgewählten Tiles angewendet. Wie im Inspektor des Editors bleiben Propertys, die sich bei ausgewählten Tiles unterscheiden, unterschiedlich, bis Sie sie bearbeiten.
Bei numerischen und farblichen Eigenschaften sehen Sie nach der Bearbeitung einer Property auch eine Vorschau des Werts der Property auf allen Tiles im Atlas:

Auswählen mehrerer Tiles im Auswahlmodus und anschließendes Anwenden von Propertys
Verwenden von Tile-Property-Malen
Wenn Sie eine einzelne Property auf mehrere Tiles gleichzeitig anwenden möchten, können Sie dazu den Modus Property-Malen verwenden.
Konfigurieren Sie in der mittleren Spalte eine Property, die gezeichnet werden soll, und klicken Sie dann in der rechten Spalte auf Tiles (oder halten Sie die linke Maustaste gedrückt), um Propertys auf Tiles zu "malen".

Malen von Tile Propertys mit dem TileSet-Editor
Das Malen von Tile-Propertys ist besonders nützlich bei Propertys, deren manuelle Einstellung zeitaufwändig ist, wie z. B. bei Kollisions-Shapes:

Malen eines Kollisionspolygons und anschließendes Klicken mit der linken Maustaste auf Tiles, um es anzuwenden
Alternative Kacheln erstellen
Manchmal möchten Sie ein einziges Tile-Bild (das nur einmal im Atlas vorkommt) verwenden, das aber auf unterschiedliche Weise konfiguriert ist. Zum Beispiel können Sie das gleiche Tile-Bild verwenden, aber gedreht, gespiegelt oder mit einer anderen Farbe moduliert. Dies kann mit alternativen Tiles geschehen.
Tipp
Seit Godot 4.2 müssen Sie keine alternativen Tiles mehr erstellen, um Tiles zu drehen oder zu spiegeln. Sie können jede Tile drehen, während Sie sie im TileMap-Editor platzieren, indem Sie die Buttons zum Drehen/Spiegeln in der Toolbar des TileMap-Editors verwenden.
Um eine alternative Tile zu erstellen, klicken Sie mit der rechten Maustaste auf eine Basis-Tile im Atlas, der vom TileSet-Editor angezeigt wird, und wählen Sie dann Alternative Tile erstellen:

Erstellen einer alternativen Tile durch Rechtsklick auf eine Basis-Tile im TileSet-Editor
Wenn Sie sich im Auswahlmodus befinden, ist die alternative Tile bereits zur Bearbeitung ausgewählt. Wenn Sie sich nicht im Auswahlmodus befinden, können Sie immer noch alternative Tiles erstellen, aber Sie müssen in den Auswahlmodus wechseln und die alternative Tile auswählen, um sie zu bearbeiten.
Wenn Sie die alternative Tile nicht sehen, schwenken Sie auf die rechte Seite des Atlasbildes, da alternative Tiles im TileSet-Editor immer auf der rechten Seite der Basis-Tiles eines bestimmten Atlas erscheinen:

Konfigurieren einer alternativen Tile nach dem Anklicken im TileSet-Editor
Nachdem Sie eine alternative Tile ausgewählt haben, können Sie in der mittleren Spalte wie bei einer Basis-Tile alle Propertys ändern. Die Liste der sichtbaren Propertys ist jedoch anders als bei der Basis-Tile:
Alternative ID: Der eindeutige numerische Bezeichner für diese alternative Tile. Wenn Sie sie ändern, werden bestehende TileMaps zerstört, seien Sie also vorsichtig! Diese ID steuert auch die Sortierung in der Liste der alternativen Tiles, die im Editor angezeigt wird.
Rendern > H spiegeln: Wenn
true
, wird die Tile horizontal gespiegelt.Rendern > V spiegeln: Wenn
true
, wird die Tile horizontal gespiegelt.Rendern > Transponieren: Wenn
true
, wird die Tile um 90 Grad gegen den Uhrzeigersinn gedreht und dann vertikal gespiegelt. In der Praxis bedeutet dies, dass Sie H spiegeln und Transponieren aktivieren sollten, um eine Tile um 90 Grad im Uhrzeigersinn zu drehen, ohne sie zu spiegeln. Um eine Tile um 180 Grad im Uhrzeigersinn zu drehen, aktivieren Sie H spiegeln und V spiegeln. Um eine Kachel um 270 Grad im Uhrzeigersinn zu drehen, aktivieren Sie V spiegeln und Transponieren.Rendern > Textur-Ursprung: Der Ursprung, der für das Zeichnen der Tile verwendet wird. Dies kann verwendet werden, um die Tile im Vergleich zur Basis-Tile visuell zu versetzen.
Rendern > Modulieren: Der Farbmultiplikator, der beim Rendern der Tile verwendet wird.
Rendern > Material: Das für diese Tile zu verwendende Material. Dies kann verwendet werden, um einen anderen Blending-Modus oder benutzerdefinierte Shader auf eine einzelne Tile anzuwenden.
Z-Index: Die Sortierreihenfolge für diese Tile. Bei höheren Werten wird die Kachel vor anderen auf derselben Ebene gerendert.
Y Sort Origin: The vertical offset to use for tile sorting based on its Y coordinate (in pixels). This allows using layers as if they were on different height for top-down games. Adjusting this can help alleviate issues with sorting certain tiles. Only effective if Y Sort Enabled is
true
on the TileMapLayer node under CanvasItem > Ordering
Sie können eine zusätzliche alternative Tile-Variante erstellen, indem Sie auf das große "+"-Symbol neben der alternativen Tile klicken. Dies ist gleichbedeutend mit der Auswahl der Basis-Tile und einem Rechtsklick darauf, um erneut Alternative Tile erstellen zu wählen.
Bemerkung
Bei der Erstellung einer alternativen Tile wird keine der Propertys der Basis-Tile übernommen. Sie müssen die Propertys auf der alternativen Tile erneut festlegen, wenn Sie möchten, dass diese auf der Basis-Tile und der alternativen Tile identisch sind.