Verwenden von GridMaps

Einführung

GridMap ist ein Tool zum Erstellen von 3D-Spielebenen, ä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 eine Ebene mit einer unbegrenzten Anzahl von Legoblöcken erstellen.

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

Beispielprojekt

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

Entpacken Sie dieses Projekt und fügen Sie es über die Schaltfläche "Importieren" dem Projektmanager hinzu.

Erstellen einer MeshLibrary

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

../../_images/gridmap_meshlibrary1.png

Wie Sie sehen können hat diese Szene einen Node Spatial als Wurzel und eine Reihe von :ref: class_MeshInstance` Unter-Nodes.

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

Kollisionen

Sie können jedem Mesh manuell ein StaticBody und CollisionShape zuweisen. Alternativ können Sie das Menü "Mesh" verwenden, um den Kollisionskörper basierend auf den Mesh-Daten automatisch zu erstellen.

../../_images/gridmap_create_body.png

Beachten Sie, dass ein "konvexer" Kollisionskörper für einfache Netze besser funktioniert. Wählen Sie für komplexere Formen "Statischen Trimesh-Körper erstellen". Sobald jedem Mesh ein Physikkörper und eine Kollisionsform zugewiesen wurden, kann Ihre Mesh-Bibliothek verwendet werden.

../../_images/gridmap_mesh_scene.png

Materialien

Beim Generieren der MeshLibrary werden nur die Materialien aus den Meshes verwendet, auf den Nodes festgelegte Materialien werden ignoriert.

Exportieren der MeshLibrary

Um die Bibliothek zu exportieren, klicken Sie auf Szene -> Konvertieren in .. -> MeshLibrary .. und speichern Sie sie als Ressource.

../../_images/gridmap_export.png

Eine bereits exportierte MeshLibrary finden Sie im Projekt "MeshLibrary.tres".

Verwenden von GridMap

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

../../_images/gridmap_main.png

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

Jetzt können Sie mit dem Entwerfen der Ebene beginnen indem Sie eine Kachel aus der Palette auswählen und mit der linken Maustaste im Editorfenster platzieren. Um eine Kachel zu entfernen halten Sie Shift gedrückt und klicken Sie mit der rechten Maustaste.

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

../../_images/gridmap_menu.png

Halten Sie Shift gedrückt und ziehen Sie mit der linken Maustaste um ein Auswahlfeld 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 auf der Sie zeichnen und die Zeichnungsebene auf 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 Mitgliedsvariablen des Nodes.