Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
Використання GridMap (Карт ґратки)
Вступ
Gridmaps є інструментом для створення 3D-рівнів гри, подібно до того, як TileMap працює у 2D. Ви починаєте з попередньо визначеної колекції 3D-сіток (a MeshLibrary) які можна розмістити на сітці, ніби ви будуєте рівень із необмеженої кількості блоків Lego.
Як і плиткам з карти плиток, мешам також можна додати зіткнення та навігацію.
Приклад проекту
Щоб дізнатися, як працюють GridMaps, почніть із завантаження прикладу проекту: gridmap_starter.zip.
Розпакуйте цей проєкт і додайте його до Менеджера проєктів за допомогою кнопки «Імпорт». Ви можете отримати спливаюче вікно з повідомленням про необхідність конвертації в новішу версію Godot, натисніть Конвертувати project.godot.
Створення MeshLibrary (Бібліотеки мешів)
Для початку вам потрібна MeshLibrary, яка є колекцією окремих сіток, які можна використовувати в карті сітки. Відкрийте сцену "mesh_library_source.tscn", щоб побачити приклад налаштування бібліотеки сіток.
Як бачите, ця сцена має кореневий вузол class_Node3D і кілька дочірніх вузлів MeshInstance3D.
Якщо вам не потрібна фізика у сцені, то ви закінчили. Однак у більшості випадків вам захочеться призначити мешам тіла зіткнення.
Зіткнення
Ви можете вручну призначити class_StaticBody3D і CollisionShape3D кожній сітці. Крім того, ви можете використовувати меню «Сітка», щоб автоматично створити тіло зіткнення на основі даних сітки.
Зверніть увагу, що тіло зіткнення типу "Опукла" краще працюватиме для простих сіток. Для складніших форм виберіть "Створити статичне тіло Trimesh". Після того, як кожній сітці буде призначено фізичне тіло та форму зіткнення, ваша бібліотека сіток готова до використання.
Матеріали
При генеруванні бібліотеки мешів використовуються тільки матеріали мешів. Матеріали, встановлені на вузлі, будуть проігноровані.
Lightmaps
Можна запекти світлові карти на GridMap. Дані світлової карти UV2 будуть повторно використані з сіток, якщо вони вже присутні. Якщо дані UV2 відсутні, вони будуть автоматично згенеровані під час запікання з розміром текселя світлової карти 0,1 одиниці. Щоб згенерувати дані UV2 з іншим розміром текселів світлової карти, ви можете встановити режим глобального освітлення в доці «Імпорт» на Статичні світлові карти і вказати там розмір текселів. Цю опцію необхідно змінити до перетворення сцени в MeshLibrary, оскільки її зміна пізніше не вплине на існуючі дані MeshLibrary.
Окрім цієї особливості, процес випікання карти освітлення такий самий, як і для будь-якої іншої 3D-сцени. Див. Використання глобального освітлення Lightmap для отримання додаткової інформації про випікання карти освітлення.
Формат MeshLibrary
Підсумовуючи конкретні обмеження формату MeshLibrary, сцена MeshLibrary має Node3D як кореневий вузол і кілька дочірніх вузлів, які стануть елементами MeshLibrary. Кожен дочірній елемент кореневого вузла повинен:
Бути MeshInstance3D, який стане елементом MeshLibrary. Буде експортовано лише цю візуальну сітку.
Майте матеріал у слоті матеріалу сітки, а не у слотах матеріалу MeshInstance3D.
Майте до одного дочірнього елемента class_StaticBody3D для зіткнення. StaticBody3D має мати одного чи кількох дочірніх елементів CollisionShape3D.
Майте до одного дочірнього class_NavigationRegion3D для навігації. NavigationRegion3D може мати одну або більше додаткових MeshInstance3D дочірніх елементів, які можна запікати для навігації, але не експортувати як візуальну сітку.
Розпізнається лише цей конкретний формат. Інші типи вузлів, розміщені як дочірні, не будуть розпізнані та експортовані. GridMap — це не система загального призначення для розміщення вузлів на сітці, а скоріше спеціальна, оптимізована система, призначена для розміщення сіток із зіткненнями та навігацією.
Експортування MeshLibrary
Щоб експортувати бібліотеку, натисніть Сцена > Експортувати як... > MeshLibrary... і збережіть її як ресурс.
Ви можете знайти вже експортовану MeshLibrary у проекті з назвою MeshLibrary.tres.
Використання GridMap
Створіть нову сцену та додайте вузол GridMap. Додайте бібліотеку сіток, перетягнувши файл ресурсів з панелі FileSystem у властивість Бібліотека сіток в Інспекторі.
Властивості інспектора
Налаштування Фізичний матеріал дозволяє вам перевизначити фізичний матеріал для кожної сітки в NavigationMesh.
У розділі Cells властивість Size має бути встановлена на розмір ваших сіток. Ви можете залишити її за замовчуванням для демонстрації. Зніміть позначку з властивості Center Y.
Параметри Колізія дозволяють встановити шар колізії, маску колізії та пріоритет для всієї сітки. Для отримання додаткової інформації про те, як вони працюють, див. розділ Фізика.
У розділі Навігація є опція «Запікати навігацію». Якщо її ввімкнути, вона створює область навігації для кожної комірки, яка використовує елемент бібліотеки сіток із сіткою навігації.
Якщо ви клацнете на самій MeshLibrary в інспекторі, ви зможете налаштувати параметри для окремих сіток, такі як їхня навігаційна сітка, навігаційні шари або чи відкидає сітка тіні.
Панель GridMap
Внизу редактора знаходиться панель GridMap, яка мала б відкритися автоматично після додавання вузла GridMap.
Зліва направо на панелі інструментів:
Трансформація: Додає до сцени гізмо, який дозволяє змінювати відносне положення та обертання карти сітки в сцені.
Виділення: Під час активації ви можете вибрати область у вікні перегляду, клацнути та перетягнути, щоб вибрати більше одного простору на сітці.
Стерти: Поки активна функція, клацніть у вікні перегляду та видаліть сітки.
Малювання: Поки активна панель, клацніть у вікні перегляду та додайте до сцени будь-яку сітку, що наразі вибрана на панелі GridMap.
Вибір: Під час активації, клацання на сітці сітки у вікні перегляду призведе до її вибору на панелі GridMap.
Заливка: Заповнити область, вибрану у вікні перегляду, будь-якою сіткою, вибраною на нижній панелі GridMap.
Перемістити: Перемістити будь-яку сітку або сітки, що наразі вибрані у вікні перегляду.
Дублікат: Створити копію вибраної сітки або сіток у GridMap.
Видалити: Подібно до стирання, але для всієї вибраної області.
Поворот курсора по осі X: Коли вибрано інструмент малювання, ця команда обертатиме сітку, яка буде намальована, по осі X. Також обертатиме вибрані області, якщо вони переміщуються.
Поворот курсора по осі Y: Коли вибрано інструмент малювання, ця функція обертатиме сітку, яка буде намальована, по осі Y. Також обертатиме вибрані області, якщо вони переміщуються.
Поворот курсора по осі Z: Коли вибрано інструмент малювання, ця функція обертатиме сітку, яка буде намальована по осі Z. Також обертатиме вибрані області, якщо вони переміщуються.
Change Grid Floor: Adjusts what floor is currently being worked on. Can be changed with the arrows, typing a value in the field, or Ctrl + Mouse wheel.
Фільтрувати сітки: Використовується для пошуку певної сітки на нижній панелі.
Масштаб: Керує рівнем масштабування сітей на нижній панелі.
Перемикачі макета: Ці дві кнопки перемикають різні макети для сіток на нижній панелі.
Випадаючий список інструментів: Ця кнопка відкриває випадаючий список із кількома додатковими опціями.
Натискання на Налаштування у цьому випадаючому списку відкриває вікно, яке дозволяє змінити Відстань вибору, яка є максимальною відстанню, на якій можна розміщувати плитки на GridMap відносно положення камери (у метрах).
Використання GridMap в коді
Докладніше про методи та змінні-члени вузла дивіться в GridMap.