В Сети существует много гайдов для анимации шага в сторону, назад. А в этой статье – описана 1 функция – которая упростит создание данных анимаций в Anim BP.
Объявим публичную функцию в заголовочном файле. По задумке – Она будет возвращать нам значения типа float от -90 до 90. Данные значения будут высчитываться из того, в какое направление движется персонаж – Влево или Вправо.
UFUNCTION(BlueprintCallable, Category = "Movement") float GetMovementDirection();
Теперь сам функция. Достаточно простая, просто вставляем в cpp меняя имя класса, и она нам доступна на blueprints
- float ARD_Character::GetMovementDirection()
- {
- const auto VelocityNormal = GetVelocity().GetSafeNormal();
- const auto AngleBetween = FMath::Acos(FVector::DotProduct(GetActorForwardVector(), VelocityNormal));
- const auto CrossProduct = FVector::CrossProduct(GetActorForwardVector(), VelocityNormal);
- return FMath::RadiansToDegrees(AngleBetween) * FMath::Sign(CrossProduct.Z);
- }
Простая, но очень полезная функция, которая имеет сложные расчёты.
Вы всегда можете обратиться к нашей команде за помощью в разработке, обучению или заказать прототип под ключ. Вступайте в наш telegram канал: