Сьогоднішня невеличка стаття буде присвячена темі керування в Top Down проекті Unreal Engine 5.
За замовченням в Top Down проектах є керування персонажем по кліку миші. Для того аби додати керування звичним всім WASD треба зробити жекілька невеликих кроків. Відразу домовимось, що в нас проект котрий ми створили з дефолтного шаблону нашого рушія.
Отже спочатку в Content Drawer йдемо до теки TopDown/Input та створюємо нови Input - Input Action, та називаємо його для прикладу AC_Move. Відкриваємо його та змінюємо Value Type на Axis2D (Vector2D).
Далі в тій же теці відкриваємо IMC_Default та в розділі Mapping додаємо нові значення для керування. Нижче стандартних клік та тач додаємо нове значення та у списку обираємо наш AC_Move, для котрого додаємо чотири елемента, наші кнопки на клавіатурі
Для того щоб задати потрібну літеру при додаванні кнопки обираємо Keyboard та потрібну кнопку
В розділі Triggers додаємо елемент та обираємо для нього Down, таким чином подія буде викликатись коли ми натискаємо на кнопку
Створюємо для всіх чотирьох кнопок елементи. Але для SAD зробимо ще деякі доповнення.
В S ми додаємо Modifiers зі значення Negate
Для D задаємо Modifiers - Swizzle Input Axis Values та залишаємо YXZ
Для A додаємо також Swizzle Input Axis Values та додатковий Negative
Зберігаємо та відкриваємо стандартний контроллер в TopDown/Blueprints/Bp_TopDown Controller, переходимо в Event Graph та додаємо наступні блоки - Enhanced Input Action AC_Move, Get Controlled Pawn, Break Vector 2D, Add Movement Input та з'єднуємо все в такому порядку
Після чього компілюємо, зберігаємо та тестуємо наші рухи.
Також давайте додамо такий базовий рух як стрибок, бо за замовченням його теж немає. Для цього в нашому Input додаємо Input - Input Action та назовемо його IA_Jump, в ньому Value Type залишаємо Digital (bool). Повертаємось в нас IMC_Default та додаємо мапінг з обиранням нашого IA_Jump, кнопкою Space Bar та триггером Pressed
Повертаємось в наш BP_TopDownController та додаємо 4 блоки в Event Graph для стрибка - Enhanced Input Action IA Jump, Get Controlled Pawn, Cast to Character, Jump та з'єднуємо все в такій послідовності
Після чого компілюємо, зберігаємо та тестимо.
Якщо під час першого тесту вам буде здаватись, що персонаж якось занадто низько чи мало трибає, відкриваємо BP_TopDownCharacter та в полі Details шукаємо параметр Jump Z Velocity, котрий виставляємо на приклад на 600, зберігаємо та тестуємо.