Налаштування ігрової зони¶
У першій частині ми збираємося створити ігрову зону. Почнемо з імпорту стартових активів і налаштування ігрової сцени.
Ми підготували проект Godot з 3D-моделями та звуками, які ми будемо використовувати для цього посібник. Якщо ви ще цього не зробили, то можете завантажити архів тут: активи Squash the Creeps.
Після завантаження, розпакуйте .zip архів на своєму комп'ютері. Відкрийте диспетчер проектів Godot і натисніть кнопку Імпорт.
У спливаючому вікні імпорту введіть повний шлях до щойно створеного каталогу squash_the_creeps_start/
. Ви можете натиснути кнопку "Огляд" праворуч, щоб відкрити файловий браузер і перейти до файлу project.godot
в цій теці.
Натисніть (Імпортувати та редагувати), і проект відкриється в редакторі.
Початковий проект містить піктограму та дві папки: art/
і fonts/
. Там ви знайдете активи та музику, яку ми будемо використовувати в грі.
Там є дві 3D-моделі, player.glb
та mob.glb
, деякі матеріали, які належать цим моделям, і музичний трек.
Налаштування зони гри¶
Ми збираємося створити нашу головну сцену з простим вузлом Node в якості кореня. На панелі Сцена натисніть кнопку Додати вузол, представлену значком "+" у верхньому лівому куті та двічі клацніть на Node. Назвіть вузол "Main". Як варіант, додати вузол на сцену, можна натиснувши Ctrl + a (або Cmd + a на macOS).
Збережіть сцену як Main.tscn
натиснувши Ctrl+s`(:kbd:`Cmd + s на macOS).
Почнемо з додавання підлоги, яка не дозволить персонажам падати. Для створення статичних колайдерів, таких як підлога, стіни або стелі, можна використовувати вузли StaticBody. Для визначення зони зіткнення потрібні дочірні вузли CollisionShape. Якщо вибрано основний вузол Main, додайте вузол StaticBody, а потім вузол CollisionShape. Перейменуйте StaticBody на Ground.
Зображення
Попереджувальний знак поруч із полем зіткнення CollisionShape з'являється, оскільки ми не визначили його форму. Якщо ви натиснете піктограму, з'явиться спливаюче вікно, яке дасть вам більше інформації.
Для створення форми виберіть CollisionShape, перейдіть до Інспектора і натисніть поле [порожньо] поруч із властивістю Shape. Виберіть Новий Box Shape.
Форма коробки ідеально підходить для плоскої землі і стін. ЇЇ товщина робить надійним блокування навіть об'єктів, що рухаються із великою швидкістю.
Каркас коробки з'являється в вікні перегляду з трьома помаранчевими крапками. Їх можна клацнути та перетягнути, щоб змінити масштаби фігури в інтерактивному режимі. Ми також можемо точно встановити розмір з Інспектора. Натисніть на BoxShape, щоб розгорнути Resource. Встановіть його Extents на 30
для осі X, 1
для осі Y і 30
для осі Z.
Примітка
У 3D одиниці переміщення і розмірів вимірюються в метрах. Загальний розмір коробки в два рази перевищує її розмір: 60
на 60
метрів на площині і 2
одиниці заввишки. Площина визначається осями X і Z, тоді як вісь Y представляє висоту.
Форми зіткнення невидимі. Нам потрібно додати візуальну підлогу, яка поєднується з формою. Виберіть вузол землі Ground та додайте MeshInstance в якості нащадка.
У Інспекторі натисніть на поле поруч з Mesh і створіть ресурс CubeMesh, щоб створити видимий куб.
Знову ж таки, він занадто малий за замовчуванням. Клацніть піктограму куба, щоб масштабувати його, і встановіть Size на 60
, 2
та 60
. Оскільки ресурс куба працює з розміром, а не з масштабами, нам потрібно використовувати ці значення, щоб він відповідав нашій формі зіткнення.
Ви повинні побачити широку сіру плиту, яка покриває сітку і сині та червоні осі в вікні перегляду.
Ми збираємося перемістити землю вниз, щоб можна було бачити сітку підлоги. Виберіть вузол Ground, утримуйте клавішу Ctrl натиснутою, щоб увімкнути прив'язку сітки (Cmd на macOS), натисніть і потягніть вниз по осі Y. Це зелена стрілка в проекції gizmo.
Примітка
Якщо маніпулятор 3D-об'єктів не відображається, як на зображенні вище, переконайтеся, що Режим виділення активний на панелі інструментів над вікном перегляду.
Перемістити землю вниз на 1
метр. Мітка в нижньому лівому куті вікна перегляду повідомляє вам на скільки ви перетягуєте вузол.
Примітка
Разом із вузлом Ground вниз тягнуться і обоє його нащадків. Переконайтеся, що ви переміщуєте вузол Ground, а не MeshInstance, чи CollisionShape.
Давайте додамо спрямоване світло, щоб наша сцена не була сірою. Виберіть головний вузол і додайте йому DirectionalLight в якості нащадка. Ми повинні перемістити його і повернути. Перемістіть його вгору, натиснувши і перетягнувши зелену стрілку маніпулятора і натисніть та перетягніть по червоній дузі, щоб повернути його навколо осі X, поки земля не буде освітлена.
В Інспекторі для відображення тіней покладіть галочку в Shadow -> Enabled.
На даний момент ваш проект повинен виглядати так.
Це наша відправна точка. У наступній частині ми будемо працювати над сценою гравця і базовим рухом.