Сцена гравця та дій введення

В наступних двох уроках ми спроектуємо сцену гравця, зареєструємо спеціальні дії введення та закодуємо рух гравця. Зрештою, у вас вийде ігровий персонаж, який рухається у восьми напрямках.

Створіть нову сцену перейшовши в меню Сцена вгорі зліва і натиснувши Нова сцена. Створіть вузол KinematicBody в якості кореня і назвіть його Player.

image0

Кінематичні тіла доповнюють область і жорсткі тіла, що використовуються в посібнику з 2D-гри. Як і жорсткі тіла, вони можуть рухатися і стикатися з навколишнім середовищем, але рух їм задаєте ви, а не фізика рушія. Ви побачите, як ми використовуємо унікальні функції вузла під час кодування механізмів стрибка та розчавлювання.

Дивись також

Щоб дізнатися більше про різні типи фізичних вузлів, перегляньте Physics introduction.

На даний момент ми збираємося створити базовий конструкт (риг) для 3D-моделі нашого персонажа. Він дозволить нам обертати модель пізніше за допомогою коду, поки вона відтворює анімацію.

Додайте вузол Spatial в якості нащадка Player і назвіть його Pivot. Потім на панелі Файлова система розгорніть папку art/ двічі клацнувши її і перетягніть player.glb на вузол Pivot.

image1

Це має створити екземпляр моделі в якості нащадка Pivot. Можете перейменувати його на Character.

image2

Примітка

Файли .glb містять дані 3D-сцени на основі специфікації з відкритим вихідним кодом GLTF 2.0. Вони є сучасною і потужною альтернативою пропрієтарному формату, такому як FBX, який Godot також підтримує. Щоб створити ці файли, ми розробили модель в Blender 3D і експортували її в GLTF.

Як і у всіх видах фізичних вузлів, нам потрібна форма зіткнення, щоб наш персонаж стикався з навколишнім середовищем. Виберіть вузол Player ще раз і додайте CollisionShape. У Інспекторі призначте властивості Shape виставіть SphereShape. Під персонажем з'явиться каркас сфери.

image3

Це буде форма, яку фізичний рушій використовує для зіткнення з навколишнім середовищем, тому ми хочемо, щоб він краще підходив до 3D-моделі. Варто трохи зменшити його, перетягнувши помаранчеву крапку у вікні перегляду. Моя сфера має радіус близько 0.8 метрів.

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

image4

Ви можете перемикати видимість моделі, клацнувши значок ока поруч із вузлами Character або Pivot.

image5

Збережіть сцену під назвою Player.tscn.

Підготувавши вузли ми можемо переходити до кодування. Але спочатку необхідно визначити деякі дії введення.

Створення дій введення

Щоб перемістити персонажа, ми прислухаємося до введення гравця, наприклад, натискання клавіш зі стрілками. У Godot, хоча ми могли б прописати всі прив'язки клавіш в коді, є потужна система, яка дозволяє призначити мітку комбінаціям клавіш і кнопок. Це спрощує наші скрипти і робить їх більш читабельними.

Ця система є Картою введення. Щоб отримати доступ до редактора, перейдіть до меню Проект і виберіть пункт Параметри проекту....

Зображення

У верхній частині є кілька вкладок. Натисніть на Карту введення. За допомогою цього вікна ви можете додавати нові дії вгорі; це ваші мітки. У нижній частині ви можете прив'язати клавіші до цих дій.

image7

Проекти Godot поставляються з деякими заздалегідь визначеними діями, призначеними для дизайну інтерфейсу користувача, які ми могли б використовувати тут. Але ми визначаємо свої власні для підтримки геймпаду.

Ми назвемо наші дії move_left, move_right, move_forward, move_back, та jump.

Щоб додати дію, напишіть її ім'я в полі вгорі та натисніть Enter.

image8

Створіть п'ять дій. У вашому вікні повинні бути всі перераховані в нижній частині.

image9

Щоб прив'язати клавішу, або кнопку, до дії, натисніть кнопку "+" праворуч від неї. Зробіть це для move_left і в спливаючому меню натисніть Клавіша.

image10

За допомогою цього параметра ви можете додати введення клавіатури. З'явиться спливаюче вікно в очікуванні, коли ви натиснете клавішу. Натисніть клавішу зі стрілкою вліво та натисніть кнопку Гаразд.

image11

Зробіть те саме для клавіші А.

image12

Тепер додаймо підтримку лівого джойстика геймпада. Натисніть кнопку "+" ще раз, але на цей раз виберіть Вісь джойстика.

image13

Спливаюче вікно дає вам два випадаючі меню. Ліворуч можна вибрати геймпад за індексом. Пристрій 0 відповідає першому підключеному геймпаду, Пристрій 1 відповідає другому і так далі. Ви можете вибрати джойстик і напрямок, який потрібно прив'язати до вхідної дії праворуч. Залиште значення за замовчуванням і натисніть кнопку Додати.

image14

Зробіть те ж саме для інших вхідних дій. Наприклад, прив'яжіть стрілку вправо, D і праву вісь лівого джойстика до move_right. Після прив'язки всіх клавіш ваш інтерфейс повинен виглядати так.

image15

Залишилося налаштувати дію jump. Прив'яжіть до неї клавішу пробілу та кнопку A геймпада. Щоб прив'язати кнопку геймпада, виберіть у меню опцію Кнопка джойстика.

image16

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

image17

Дія введення для стрибка має виглядати так.

image18

Це всі дії, які нам потрібні для цієї гри. За допомогою цього меню можна позначити будь-які групи клавіш і кнопок у ваших проектах.

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