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

Вступ

Gridmap (Карта ґратки) - це інструмент для створення рівнів 3D-ігор, подібно до, TileMap (Карти плиток) в 2D. Ви починаєте з попередньо визначеної колекції 3D-мешів (MeshLibrary), які можна розміщувати на ґратці і будувати рівень так, ніби це необмежена кількість блоків Lego.

Як і плиткам з карти плиток, мешам також можна додати зіткнення та навігацію.

Приклад проекту

Щоб зрозуміти, як працює GridMap, завантажте зразок проекту: gridmap_demo.zip.

Розпакуйте цей проект і додайте його до Керівника проектів за допомогою кнопки "Імпорт".

Створення MeshLibrary (Бібліотеки мешів)

Для початку вам знадобиться бібліотека мешів MeshLibrary, яка являє собою колекцію окремих мешів, які можна використовувати в карті ґратки. Відкрийте сцену "MeshLibrary_Source.tscn", щоб побачити зразок того, як налаштувати бібліотеку мешів.

../../_images/gridmap_meshlibrary1.png

Як бачите сцена має вузол Spatial, в якості кореня із рядом вузлів-нащадків MeshInstance.

Якщо вам не потрібна фізика у сцені, то ви закінчили. Однак у більшості випадків вам захочеться призначити мешам тіла зіткнення.

Зіткнення

Ви можете вручну призначити статичне тіло StaticBody і форму зіткнення CollisionShape кожному мешу. Як варіант, ви можете використовувати меню "Меш" для автоматичного створення тіла зіткнення на основі даних меша.

../../_images/gridmap_create_body.png

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

../../_images/gridmap_mesh_scene.png

Матеріали

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

Експортування MeshLibrary

Щоб експортувати бібліотеку потрібно перейти до Сцена -> Перетворити на.. -> Бібліотека мешів, і зберегти, як ресурс.

../../_images/gridmap_export.png

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

Використання GridMap

Створіть нову сцену та додайте вузол GridMap. Додайте бібліотеку мешів, перетягнувши файл ресурсу з панелі Файлової системи у властивість "MeshLibrary" в Інспекторі.

../../_images/gridmap_main.png

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

Тепер ви можете почати проектування рівня, вибираючи плитку з палітри і розміщуючи її клацанням лівою клавіші мишки у вікні редактора. Щоб видалити плитку, утримуйте Shift та використовуйте праву клавішу мишки.

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

../../_images/gridmap_menu.png

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

../../_images/gridmap_select.png

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

../../_images/gridmap_shift_axis.png

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

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