Налаштування ігрової зони
У першій частині ми збираємося створити ігрову зону. Почнемо з імпорту стартових активів і налаштування ігрової сцени.
We've prepared a Godot project with the 3D models and sounds we'll use for this tutorial, linked in the index page. If you haven't done so yet, you can download the archive here: Squash the Creeps assets.
Завантаживши його, розпакуйте архів .zip на комп’ютері. Відкрийте менеджер проектів Godot і натисніть кнопку Імпортувати.
In the import popup, enter the full path to the freshly created directory
3d_squash_the_creeps_starter/. You can click the Browse button on the right to
open a file browser and navigate to the project.godot file the folder
contains.
Click Import to open the project in the editor.
Може з’явитися вікно зі сповіщенням про те, що проект створено старішою версією Godot. Натисніть Конвертувати повний проект, щоб конвертувати проект у поточну версію Godot.
If it doesn't open immediately open the project from your project list.
Початковий проект містить піктограму та дві папки: art/ і fonts/. Там ви знайдете активи та музику, яку ми будемо використовувати в грі.
Там є дві 3D-моделі, player.glb та mob.glb, деякі матеріали, які належать цим моделям, і музичний трек.
Налаштування зони гри
Ми збираємося створити нашу головну сцену з простим Node як її коренем. У док-станції Scene натисніть кнопку Add Child Node, представлену значком «+» у верхньому лівому куті, і двічі клацніть на Node. Назвіть вузол Main. Альтернативним способом перейменування вузла є клацання правою кнопкою миші Node і вибір Rename (або F2). Крім того, щоб додати вузол до сцени, ви можете натиснути Ctrl + A (Cmd + A на macOS).
Збережіть сцену як main.tscn, натиснувши Ctrl + S (Cmd + S на macOS).
Ми почнемо з додавання підлоги, яка запобігатиме падінню персонажів. Для створення статичних коллайдерів, таких як підлога, стіни чи стелі, ви можете використовувати вузли StaticBody3D. Їм потрібні дочірні вузли CollisionShape3D для визначення області зіткнення. Вибравши вузол Main, додайте вузол StaticBody3D, а потім CollisionShape3D. Перейменуйте StaticBody3D на Ground.
Ваше сцена має виглядати так
Біля CollisionShape3D з’являється попереджувальний знак, оскільки ми не визначили його форму. Якщо натиснути піктограму, з’явиться спливаюче вікно з додатковою інформацією.
Для створення форми виберіть CollisionShape3D, перейдіть до Інспектора і натисніть поле [порожньо] поруч із властивістю Shape. Виберіть Новий Box Shape3D.
Форма коробки ідеально підходить для плоскої землі і стін. ЇЇ товщина робить надійним блокування навіть об'єктів, що рухаються із великою швидкістю.
Каркас коробки з’являється у вікні перегляду з трьома помаранчевими крапками. Ви можете клацнути та перетягнути їх, щоб інтерактивно редагувати розміри фігури. Також ми можемо точно встановити розмір в інспекторі. Натисніть на BoxShape3D, щоб розгорнути ресурс. Встановіть його Size на 60 для осі X, 2 для осі Y і 60 для осі Z.
Форми зіткнення невидимі. Нам потрібно додати візуальну підлогу, з якою будуть вони будуть стикатися. Виберіть вузол землі Ground та додайте MeshInstance3D в якості нащадка.
У Інспекторі натисніть на поле поруч з Mesh і створіть ресурс BoxMesh (Коробка меша), щоб створити видимий куб.
Знову ж таки, він занадто малий за замовчуванням. Клацніть піктограму куба, щоб масштабувати його, і встановіть Size на 60, 2 та 60.
Ви повинні побачити широку сіру плиту, яка покриває сітку і сині та червоні осі в вікні перегляду.
Ми перемістимо землю вниз, щоб побачити сітку підлоги. Для цього можна використовувати функцію прив’язки сітки. Прив’язку сітки можна активувати двома способами в 3D-редакторі. Ґ Перший – натиснути кнопку Use Snap (або натиснути клавішу Y). По-друге, вибравши вузол, перетягнувши дескриптор гізмо, потім утримуючи Ctrl, продовжуючи натискати, щоб увімкнути прив’язку, доки Ctrl утримується.
Почніть із налаштування прив’язки за допомогою бажаного методу. Потім перемістіть вузол Ground за допомогою осі Y (зелена стрілка на gizmo).
Примітка
Якщо маніпулятор 3D-об'єктів не відображається, як на зображенні вище, переконайтеся, що Режим виділення активний на панелі інструментів над вікном перегляду.
Перемістіть землю вниз на 1 метр. Мітка в нижньому лівому куті вікна перегляду повідомляє вам на скільки ви перетягуєте вузол.
Примітка
Разом із вузлом Ground вниз тягнуться і обоє його нащадків. Переконайтеся, що ви переміщуєте вузол Ground, а не MeshInstance3D, чи CollisionShape3D.
Врешті-решт transform.position.y для Ground має бути -1
Давайте додамо спрямоване світло, щоб наша сцена не була повністю сірою. Виділіть вузол Main і додайте дочірній вузол DirectionalLight3D.
Нам потрібно перемістити та повернути вузол DirectionalLight3D. Перемістіть його вгору, клацнувши та перетягнувши зелену стрілку маніпулятора, а потім клацніть і перетягніть червону дугу, щоб повернути його навколо осі X, доки земля не засвітиться.
В Інспекторі для відображення тіней покладіть галочку в Shadow -> Enabled.
На даний момент ваш проект повинен виглядати так.
Це наша відправна точка. У наступній частині ми будемо працювати над сценою гравця і базовим рухом.