Налаштування ігрової зони

У першій частині ми збираємося створити ігрову зону. Почнемо з імпорту стартових активів і налаштування ігрової сцени.

Ми підготували проект Godot з 3D-моделями та звуками, які ми будемо використовувати для цього посібник. Якщо ви ще цього не зробили, то можете завантажити архів тут: активи Squash the Creeps.

Після завантаження, розпакуйте .zip архів на своєму комп'ютері. Відкрийте диспетчер проектів Godot і натисніть кнопку Імпорт.

image1

У спливаючому вікні імпорту введіть повний шлях до щойно створеного каталогу squash_the_creeps_start/. Ви можете натиснути кнопку "Огляд" праворуч, щоб відкрити файловий браузер і перейти до файлу project.godot в цій теці.

image2

Натисніть (Імпортувати та редагувати), і проект відкриється в редакторі.

image3

Початковий проект містить піктограму та дві папки: art/ і fonts/. Там ви знайдете активи та музику, яку ми будемо використовувати в грі.

image4

Там є дві 3D-моделі, player.glb та mob.glb, деякі матеріали, які належать цим моделям, і музичний трек.

Налаштування зони гри

Ми збираємося створити нашу головну сцену з простим вузлом Node в якості кореня. На панелі Сцена натисніть кнопку Додати вузол, представлену значком "+" у верхньому лівому куті та двічі клацніть на Node. Назвіть вузол "Main". Як варіант, додати вузол на сцену, можна натиснувши Ctrl + a (або Cmd + a на macOS).

image5

Збережіть сцену як Main.tscn натиснувши Ctrl+s`(:kbd:`Cmd + s на macOS).

Почнемо з додавання підлоги, яка не дозволить персонажам падати. Для створення статичних колайдерів, таких як підлога, стіни або стелі, можна використовувати вузли StaticBody. Для визначення зони зіткнення потрібні дочірні вузли CollisionShape. Якщо вибрано основний вузол Main, додайте вузол StaticBody, а потім вузол CollisionShape. Перейменуйте StaticBody на Ground.

Зображення

Попереджувальний знак поруч із полем зіткнення CollisionShape з'являється, оскільки ми не визначили його форму. Якщо ви натиснете піктограму, з'явиться спливаюче вікно, яке дасть вам більше інформації.

image7

Для створення форми виберіть CollisionShape, перейдіть до Інспектора і натисніть поле [порожньо] поруч із властивістю Shape. Виберіть Новий Box Shape.

image8

Форма коробки ідеально підходить для плоскої землі і стін. ЇЇ товщина робить надійним блокування навіть об'єктів, що рухаються із великою швидкістю.

Каркас коробки з'являється в вікні перегляду з трьома помаранчевими крапками. Їх можна клацнути та перетягнути, щоб змінити масштаби фігури в інтерактивному режимі. Ми також можемо точно встановити розмір з Інспектора. Натисніть на BoxShape, щоб розгорнути Resource. Встановіть його Extents на 30 для осі X, 1 для осі Y і 30 для осі Z.

image9

Примітка

У 3D одиниці переміщення і розмірів вимірюються в метрах. Загальний розмір коробки в два рази перевищує її розмір: 60 на 60 метрів на площині і 2 одиниці заввишки. Площина визначається осями X і Z, тоді як вісь Y представляє висоту.

Форми зіткнення невидимі. Нам потрібно додати візуальну підлогу, яка поєднується з формою. Виберіть вузол землі Ground та додайте MeshInstance в якості нащадка.

image10

У Інспекторі натисніть на поле поруч з Mesh і створіть ресурс CubeMesh, щоб створити видимий куб.

image11

Знову ж таки, він занадто малий за замовчуванням. Клацніть піктограму куба, щоб масштабувати його, і встановіть Size на 60, 2 та 60. Оскільки ресурс куба працює з розміром, а не з масштабами, нам потрібно використовувати ці значення, щоб він відповідав нашій формі зіткнення.

image12

Ви повинні побачити широку сіру плиту, яка покриває сітку і сині та червоні осі в вікні перегляду.

Ми збираємося перемістити землю вниз, щоб можна було бачити сітку підлоги. Виберіть вузол Ground, утримуйте клавішу Ctrl натиснутою, щоб увімкнути прив'язку сітки (Cmd на macOS), натисніть і потягніть вниз по осі Y. Це зелена стрілка в проекції gizmo.

image13

Примітка

Якщо маніпулятор 3D-об'єктів не відображається, як на зображенні вище, переконайтеся, що Режим виділення активний на панелі інструментів над вікном перегляду.

image14

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

image15

Примітка

Разом із вузлом Ground вниз тягнуться і обоє його нащадків. Переконайтеся, що ви переміщуєте вузол Ground, а не MeshInstance, чи CollisionShape.

Давайте додамо спрямоване світло, щоб наша сцена не була сірою. Виберіть головний вузол і додайте йому DirectionalLight в якості нащадка. Ми повинні перемістити його і повернути. Перемістіть його вгору, натиснувши і перетягнувши зелену стрілку маніпулятора і натисніть та перетягніть по червоній дузі, щоб повернути його навколо осі X, поки земля не буде освітлена.

В Інспекторі для відображення тіней покладіть галочку в Shadow -> Enabled.

image16

На даний момент ваш проект повинен виглядати так.

image17

Це наша відправна точка. У наступній частині ми будемо працювати над сценою гравця і базовим рухом.