Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

Verwenden von GridMaps

Einführung

Gridmaps sind ein Tool zum Erstellen von 3D-Spiel-Levels, ähnlich wie TileMap in 2D. Sie beginnen mit einer vordefinierten Sammlung von 3D-Meshes (MeshLibrary), die in einem Raster platziert werden können, als würden Sie ein Level mit unendlich vielen Lego-Steinen erstellen.

Kollisionen und Navigation können ebenfalls zu den Meshes hinzugefügt werden, genau wie Sie es mit den Tiles einer TileMap tun würden.

Beispielprojekt

Um zu erfahren, wie GridMaps funktionieren, laden Sie zunächst das Beispielprojekt herunter: gridmap_starter.zip.

Entpacken Sie dieses Projekt und fügen Sie es über den "Importieren"-Button dem Projektmanager hinzu.

Erstellen einer MeshLibrary

Zu Beginn benötigen Sie eine MeshLibrary, eine Sammlung einzelner Meshes, die in der GridMap verwendet werden kann. Öffnen Sie die Szene "mesh_library_source.tscn", um ein Beispiel für das Einrichten der Mesh-Library zu sehen.

../../_images/gridmap_meshlibrary1.png

Wie Sie sehen können, hat diese Szene einen Node Node3D als Root und eine Reihe von MeshInstance3D-Child-Nodes.

Wenn Sie in Ihrer Szene keine Physik benötigen, sind Sie fertig. In den meisten Fällen möchten Sie den Meshes jedoch Collision Bodys zuweisen.

Kollisionen

Sie können jedem Mesh manuell ein StaticBody3D und CollisionShape3D zuweisen. Alternativ können Sie das Menü "Mesh" verwenden, um den Collision Body basierend auf den Mesh-Daten automatisch zu erstellen.

../../_images/gridmap_create_body.png

Beachten Sie, dass ein "konvexer" Collision Body für einfache Meshes besser funktioniert. Wählen Sie für komplexere Geometrien "Statischen Trimesh-Body erzeugen". Sobald jedem Mesh ein Physik-Body und eine Collision Shape zugewiesen wurden, kann Ihre Mesh-Library verwendet werden.

../../_images/gridmap_mesh_scene.png

Materialien

Beim Generieren der Mesh-Library werden nur die Materialien aus den Meshes verwendet. Materialien, die auf dem Node eingestellt sind, werden ignoriert.

Exportieren der MeshLibrary

Um die Library zu exportieren, klicken Sie auf Szene -> Exportieren als... -> MeshLibrary... und speichern Sie sie als Ressource.

../../_images/gridmap_export.png

Sie finden eine bereits exportierte MeshLibrary im Projekt mit dem Namen "MeshLibrary.tres".

Verwenden von GridMap

Erstellen Sie eine neue Szene und fügen Sie einen GridMap-Node hinzu. Fügen Sie die Mesh-Library hinzu, indem Sie die Ressourcendatei aus dem Dateisystem-Dock ziehen und in der Property "Theme" im Inspektor ablegen.

../../_images/gridmap_main.png

Die Eigenschaft "Zelle/Größe" sollte auf die Größe Ihrer Meshes festgelegt werden. Sie können den Defaultwert für das Beispiel beibehalten. Setzen Sie die Property "Center Y" auf "Off".

Jetzt können Sie mit dem Entwerfen des Levels beginnen indem Sie ein Tile aus der Palette auswählen und mit der linken Maustaste im Editorfenster platzieren. Klicken Sie mti der rechten Maustaste um ein Tile zu entfernen.

Verwenden Sie die Pfeile neben dem Menü "GridMap", um die Ebene zu wechseln, auf der Sie arbeiten.

Klicken Sie auf das Menü "GridMap" um Optionen und Verknüpfungen anzuzeigen. Durch Drücken von S wird beispielsweise eine Tile um die Y-Achse gedreht.

../../_images/gridmap_menu.png

Halten Sie Umschalt gedrückt und ziehen Sie mit der linken Maustaste, um eine Auswahlbox zu zeichnen. Sie können den ausgewählten Bereich über die entsprechenden Menüoptionen duplizieren oder löschen.

../../_images/gridmap_select.png

Im Menü können Sie auch die Achse ändern entlang der Sie zeichnen und die Zeichnungsebene entlang ihrer Achse nach oben oder unten verschieben.

../../_images/gridmap_shift_axis.png

Verwenden von GridMap im Code

Siehe GridMap für Details zu den Methoden und Membervariablen des Nodes.