Up to date

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

Использование GridMaps (карты тайлов)

Введение

Gridmaps - это инструмент для создания 3D уровней игры, подобно тому, как TileMap работает в 2D. Вы начинаете с предопределённой коллекции 3D сеток (библиотека MeshLibrary), которые могут быть размещены на сетке, как если бы вы строили уровень из неограниченного количества блоков Lego.

Столкновения и навигацию также можно добавить к сеткам, как это делается с плитками карт тайлов.

Пример проекта

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

Разархивируте этот проект и добавьте его в мэнеджер проекта используя кнопку "импортировать".

Создание 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.

Если вам не нужна физика в вашей сцене, то всё готово. Однако в большинстве случаев вы захотите назначить тела столкновения сеткам.

Столкновения

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

Обратите внимание, что тело столкновения "Convex" будет лучше работать для простых сеток. Для более сложных форм выберите "Create Trimesh Static Body". После того как каждой сетке назначено физическое тело и форма столкновения, ваша библиотека сеток готова к использованию.

../../_images/gridmap_mesh_scene.png

Материалы

При генерации библиотеки сеток используются только материалы из сеток. Материалы, установленные на узле, игнорируются.

Экспорт MeshLibrary

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

../../_images/gridmap_export.png

Вы можете найти уже экспортированную MeshLibrary в проекте под названием "MeshLibrary.tres".

Использование GridMap

Создайте новую сцену и добавьте узел GridMap. Добавьте библиотеку сетки, перетащив файл ресурсов из панели FileSystem и поместив его в свойство "Theme" в инспекторе.

../../_images/gridmap_main.png

Свойство "Cell/Size" должно быть установлено на размер вашей сетки. Для демонстрации можно оставить значение по умолчанию. Установите для свойства "Center Y" значение "Off".

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.

Нажмите на меню "GridMap", чтобы увидеть опции и сочетания клавиш. Например, нажатие S поворачивает плитку вокруг оси Y.

../../_images/gridmap_menu.png

Удерживая Shift и перетаскивая левой кнопкой мыши, можно нарисовать поле выделения. Вы можете дублировать или очистить выделенную область, используя соответствующие пункты меню.

../../_images/gridmap_select.png

В меню можно также изменить ось, по которой ведётся рисование, а также сместить плоскость рисунка выше или ниже по оси.

../../_images/gridmap_shift_axis.png

Использование GridMap в коде

Подробности о методах и переменных-членах узла см. в GridMap.