Up to date

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

Usando GridMaps

Introducción

Gridmaps son una herramienta para crear niveles de juego en 3D, similar a la forma en que TileMap funciona en 2D. Comienzas con una colección predefinida de mallas 3D (una class_MeshLibrary`) que pueden ser colocadas en un gruid, como si estuvieras construyendo un nivel con una cantidad ilimitada de bloques de Lego.

Las colisiones y la navegación también se pueden añadir a las mallas, como se haría con los tiles de un mapa de tiles.

Proyecto ejemplo

To learn how GridMaps work, start by downloading the sample project: gridmap_starter.zip.

Descomprime este proyecto y agrégalo al Gestor de Proyectos usando el botón "Importar".

Creando una MeshLibrary

To begin, you need a MeshLibrary, which is a collection of individual meshes that can be used in the gridmap. Open the "mesh_library_source.tscn" scene to see an example of how to set up the mesh library.

../../_images/gridmap_meshlibrary1.png

As you can see, this scene has a Node3D node as its root, and a number of MeshInstance3D node children.

Si no necesitas nada de física en tu escena, entonces estás acabado. Sin embargo, en la mayoría de los casos querrás asignar cuerpos de colisión a las mallas.

Colisiones

You can manually assign a StaticBody3D and CollisionShape3D to each mesh. Alternatively, you can use the "Mesh" menu to automatically create the collision body based on the mesh data.

../../_images/gridmap_create_body.png

Tengan en cuenta que un cuerpo de colisión "Convexo" funcionará mejor para las mallas simples. Para formas más complejas, seleccione "Crear cuerpo estático Trimalla". Una vez que cada malla tenga asignado un cuerpo físico y una forma de colisión, su biblioteca de mallas estará lista para ser utilizada.

../../_images/gridmap_mesh_scene.png

Materiales

Sólo se utilizan los materiales del interior de las mallas para generar la biblioteca de mallas. Los materiales establecidos en el nodo serán ignorados.

Exportación de MeshLibrary

To export the library, click on Scene > Export As... > MeshLibrary..., and save it as a resource.

../../_images/gridmap_export.png

Puedes encontrar una MeshLibrary ya exportada en el proyecto llamado "MeshLibrary.tres".

Usando GridMap

Crea una nueva escena y añade un nodo GridMap. Añade la librería de mallas arrastrando el archivo de recursos desde el panel del Sistema de Archivos y soltándolo en la propiedad "Theme" en el Inspector.

../../_images/gridmap_main.png

La propiedad "Celda/Tamaño" debe ser ajustada al tamaño de sus mallas. Puedes dejarla en el valor por defecto para la demostración. Poner la propiedad "Centrar Y" en "Apagado".

Now you can start designing the level by choosing a tile from the palette and placing it with Left-Click in the editor window. Use Right-click to remove a tile.

Use the arrows next to the "GridMap" menu to change the floor that you are working on.

Haga clic en el menú "GridMap" para ver las opciones y los atajos. Por ejemplo, presionando S gira una baldosa alrededor del eje y.

../../_images/gridmap_menu.png

Manteniendo pulsado Mayúscula y arrastrando con el botón izquierdo del ratón se dibujará un cuadro de selección. Puede duplicar o borrar el área seleccionada usando las respectivas opciones de menú.

../../_images/gridmap_select.png

En el menú, también puede cambiar el eje sobre el que está dibujando, así como desplazar el plano de dibujo más arriba o más abajo en su eje.

../../_images/gridmap_shift_axis.png

Usando Gridmap en código

Ver GridMap para detalles sobre los métodos del nodo y las variables de miembros.