ИтроИ так, настало время для первого дневника разработчика. Неделю назад я в подробностях рассказал историю моего проекта Forest Adventure, сейчас же напомню вкратце, что он из себя представляет.Это шутер от первого лица с исследованием небольшой лесной локации. Приключение на вечерок. Целевая платформа — PC, движок — Unreal Engine.Делаю я его один, поэтому девлоги будут состоять из двух частеймини отчет за последний период разработки.обзор механик, которые я уже давно сделал и/или разбор интересной для меня темы в рамках геймдева.В этом девлоге речь пойдёт о пользовательском интерфейсе (UI) и ощущении живости рук в шутере от первого лица. UIНа данном этапе я решил сосредоточиться на менюшках, не трогая HUD. Почти в любой игре они работают одинаково, поэтому нет никаких рисков. Эта работа точно не пропадёт.В моей игре предполагаются три основных экранаГлавное меню.Меню паузы.Меню отдыха у костра.Сверстать их не составило проблем, и вот как они выглядятГлавное меню, Меню паузы, Меню отдыхаЛегко, но дальше интереснее, переходим к настройкам. Мне не хотелось захламлять десятками опций, но даже обходясь минимумом, у меня получилось 3 окна: основные настройки, настройки графики и настройки управления.Настройки управления пока в процессе, в сязи с переводом проекта на новую систему ввода Enhanced Input. И по окончанию перевода, завезу управлением клавишами и геймпадом в меню, пока только мышь.Настройки работают и сохраняются, могут возвращаться в первоначальное состояние.Теперь посмотрим на приятности. Попапы подтверждения важных действийАнимации и звукиДля завершения всех работ по менюшкам осталось закончить перевод на Enhanced Input, чем я и займусь на этой неделе.Сейчас же перейдем к фиче, которую я сделал давным-давно.Oщущении живости рукКогда я сделал базовый функционал (прицеливание, переключение пушек, присяд и бег), я задумался над тем, как это ощущается. Всё выглядело вымученно и как-то деревянно.Для оружия я захотел добавить веса, чтоб при его перемещении оно давало инерцию. Я нашел два способа это сделать — анимации и «нативный».Анимации я сразу отбросил, ведь делать их долго и они будут работать только с одим скелетом, что я посчитал расточительством. И решил сделать по-своему.Я сделал компонент, который отслеживает изменение скорости передвижения персонажа и изменение поворота. Теперь я знал, как и куда персонаж двигается, и мог спокойно это обрабатывать.Поворот рук в приседе. Имитируя недостаток пространства для рук (референс — приседание в Apex Legends). Наверное самое важное — поворот рук при повороте камеры.Реакция на передвижение передвижение. Смещение при движении вперед/назад и поворот при движении вправо/влево.Поворот рук при прыжке и приземлении.Всё вместе смотриться вот такУ всех вышеперечисленных параметров отдельные настройки для режима прицеливания. Кроме этого, каждая пушка имеет свои настройки, чтоб передавать её вес. Все значения будут редактироваться и подгоняться на этапе полишинга, так что клипы камеры в оружие надеюсь уйдут :)Плюсом данной реализации является то, что я знаю как она работает и могу вертеть ей. С анимациями я бы умер.Минус же — очень много параметров для настройки, на этапе полишинга я буду ругаться на себя :)Если хотите сделать что-то подобное, вам понадобится FMath::Clamp() FMath::FInterpTo() FVector::VectorPlaneProject() FVector::DotProduct()Тут буквально больше никакой логики.РекомендасьонМой телеграм канал/чат, если хотите побольше пообщаться.Enhanced Input — это мощный плагин, которым эпики начинают заменять Input Component, что показывают их демо проекты на UE5Крутая статья с примерами работы Camera Shake, в том числе эффекты взрыва, получения урона, бега и многие другие.Небольшой разбор дизайнерских решений в Zelda: Breath of the WildСпасибо за внимание, буду рад обратной связи. Побежал работать дальше 🐗
Хорош
спасибо)
Выглядит отлично)
спасибо)
а как наклон применяется? к каким то костям меша?
вращается только меш целиком и сцен компонент, к которому меш прикреплен
никакой привязки к контенту, может быть любой меш
Управление выглядит отзывчиво, хотя возможно уровень тряски надо ещё полишить. лайк