Всем доброго времени суток. Меня зовут Александр и уже год я занимаюсь разработкой игр на движке Unreal Engine 4.
Данный пост расскажет о наболевшей теме по работе с анимацией, так как в интернете приходилось либо просматривать по 3 часа видео ролики, либо копать тонны литературы в поисках нужной информации.
Мой пример затронет бесплатный пакет анимации Animation Starter Pack, в котором имеется замечательная анимация Aim_Space_Ironsights. Она позволяет персонажу от третьего лица направлять свое оружие в сторону прицела.
Первым шагом следует сделать retarget anim assets на skeletal mesh своего персонажа. После этого открыть и остановить анимацию, выбрать нужный фрейм. Пусть наш персонаж смотрит вверх. Это 10 фрейм. Далее внизу на панели следует найти красную точку в белом кругу, которая обозначает record — запись и нажать ее. Указать путь куда следует загрузить анимацию и после остановить запись. Заходим в полученную анимацию и удаляем все фреймы, оставив только с 0 по 1.
Таким же образом задаем анимацию когда персонаж будет смотреть вниз.
И далее уже работаем стандартным способом, создаем BlendSpace1d указываем направление от -90 до 90.
В плеере создаем переменную Direction которая будет на Tick записывать данные на угол обзора игрока по координате Y. Берем GetController достаем из него функцию getActorRotation и получем координату Y.
Записываем данную переменную в наш BlueprintAnim в переменную direction прописав логику через cast To Player.
И в конечной стадии в графе AnimGraph в Анимационном Blueprints устанавливаем нашу анимацию
Так же для корректной работы следует анимацию подкорректировать и воспроизводить ее выше кости spine_02.
Таким образом анимация когда персонаж следит за вертикальной составляющей нашего прицела будет выполнятся не зависимо от того бежит персонаж, сидит или стоит на месте. Что бы заставить нашего персонажа по горизонтали следовать за прицелом, следует выставить в True значение UseControllerRotationYaw. Если данная логика должна срабатывать только на прицеливании то из Self получаем значение set UseControllerRotationYaw, в случае когда ее нужно выставить на постоянную работу то найти данное свойство можно в Pawn в компонентах в самом Character персонажа.
Таким образом на выходе мы получаем персонажа который направляет свое оружие в сторону прицела.
Автор: Железный человек