Полезное

Мы Вконтакте

Discord канал

#
Аватара пользователя
Пользователь
Сообщения: 21
Дано:
-Вид сверху, персонаж поворачивается за курсором мышки через AddControllerYawInput();
-камера не поворачивается, только следует за персонажем;
-движение персонажа не зависит от его поворота (w-движение вверх, s-вниз...).

Нужно найти два значения по которым будут смешиваться анимации.
Я по началу думал что можно взять эти значения из вектора скорости персонажа GetVelocity(). Проблема в том что если персонаж бежит вверх, а повёрнут вправо, то вектор скорости показывает что персонаж бежит вперёд, когда по логике вещей он бежит уже влево.
В общем нужно что-то делать с вектором скорости в зависимости от вектора направления взгляда персонажа GetActorForwardVector().
Я так понимаю, что можно это сделать через MirrorByVector(), но я так и не смог разобраться как это сделать.
Накиньте пожалуйста примерный путь решения этой задачки.
Аватара пользователя
Пользователь
Сообщения: 21
Или может как-то возможно привести вектор скорости GetVelocity() в локальное координатное пространство персонажа?
Аватара пользователя
Пользователь
Сообщения: 21
Нашёл решение:
FVector animVector = FRotationMatrix(FRotator(0, GetControlRotation().Yaw, 0)).InverseTransformVector(GetVelocity());


Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5

UEngine.ru © 2017
Все права защищены. При копировании материалов с сайта, ссылка на первоисточник обязательна.
Яндекс.Метрика
Главная страница