Up to date

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

Використання GridMap (Карт ґратки)

Вступ

Gridmap (Карта ґратки) - це інструмент для створення рівнів 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

Відзначимо, що Опукле тіло зіткнення буде краще працювати для простих мешів (сіток). Для складніших фігур виберіть Створити увігнуте статичне тіло. Після того, як кожен меш отримає фізичне тіло та форму зіткнення, ваша бібліотека мешів буде готова до використання.

../../_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. Додайте бібліотеку мешів, перетягнувши файл ресурсу з панелі Файлової системи у властивість "MeshLibrary" в Інспекторі.

../../_images/gridmap_main.png

Властивість "Cell/Size" має бути виставлена під розмір ваших мешів. В цьому занятті ви можете не змінювати її значення. Зніміть галочку "Увімкнено" з властивості "Center Y".

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.

Натисніть на меню Карта ґратки, щоб побачити опції та параметри. Наприклад, натискання S обертає плитку навколо осі y.

../../_images/gridmap_menu.png

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

../../_images/gridmap_select.png

У меню також можна змінити вісь, на якій ви малюєте, а також змістити площину малювання вище, або нижче, по осі.

../../_images/gridmap_shift_axis.png

Використання GridMap в коді

Докладніше про методи та змінні-члени вузла дивіться в GridMap.