Stride Warping или процедурное изменение шага в зависимости от скорости

Мега утрированный пример

Мой телеграм канал по unreal и анимации

Сначала включим плагин Animation Warping

Stride Warping или процедурное изменение шага в зависимости от скорости

Идем в Animation Blueprint Персонажа ( я буду показывать на ABP от эпиков)

Stride Warping или процедурное изменение шага в зависимости от скорости

Идем в AnimGraph , правая кнопка мыши и ищем Stride Warping

Stride Warping или процедурное изменение шага в зависимости от скорости

Левой кнопкой по Stride Warping , в режиме Mode выбираем Graph

Берем скорость нашего персонажа ( в дефолтном примере от эпиков она находится в переменной Velocity) ,берем от туда Vector XY и подключаем в Locomotion Speed

Stride Warping или процедурное изменение шага в зависимости от скорости

Дальше указываем Pelvis Bone и IK Foot Root Bone

IK_Foot_Root служит общим родительским объектом для двух отдельных IK-целей каждой ноги: ik_foot_l и ik_foot_r - у эпиковского скелета

Если в скелета вашего персонажа нет такой кости - можете указать обычную Root Bone

Stride Warping или процедурное изменение шага в зависимости от скорости

Идем дальше : Foot Definitions

И указываем наши кости , в IK Foot Bone - указываем ik_foot_l

Это спецальная косточка для IK - она полностью повторяет движение foot_l

Дальше указываем FK Foot Bone туда я указываю кость стопы

В Thigh Bone -указываю кость бедра

Тоже самое делаю для правой ноги

Stride Warping или процедурное изменение шага в зависимости от скорости

Дальше идем в Stride Scale Modifier

Ставим все галочки и оставляем дефолтные значения

1. Clamp Max

  • Этот параметр отвечает за длину шага, точнее, ограничивает, насколько сильно нога может подстроиться под фактическую скорость.
  • Значения 1.0 обычно хватает, однако, если скорость смещения сильно отличается от скорости в анимации, лучше ставить значение больше 1.0.

Дальше идем в Pelvis IK Foot Solver (Этот раздел отвечает за подстройку таза )

  • В этом разделе в параметре Pelvis Adjustment Alpha по умолчанию стоит 0.5.
  • Однако, если вы установите в Clamp Max, скажем, 1.5, то может возникнуть баг (артефакт) при возврате в состояние Idle (бездействие).
Stride Warping или процедурное изменение шага в зависимости от скорости

Исправить мы это может просто поставив значение 0 заместо Pelvis Adjistment Alpha или же в Pelvis Adjistment Interp поставить в

Stiffness Contrast 0 и в Dampeng Ratio 0

Stride Warping или процедурное изменение шага в зависимости от скорости

Рассмотрим Debug

это очень полезный инструмент, чтобы визуально отслеживать изменения, которые вносит эта система.

  1. Debug Draw Scale: Размер. Масштаб стрелок, сфер и линий отладки во вьюпорте
  1. Enable Debug Draw: Рубильник. Включает или выключает отображение всей визуализации отладки.
  1. Debug Draw IKFoot Origin: Было. Показывает, где находилась стопа в исходной анимации до применения варпинга.
  1. Debug Draw IKFoot Adjustment: Сдвиг. Вектор, показывающий, насколько и в какую сторону система сдвигает стопу (растягивает или сжимает шаг).
  1. Debug Draw Pelvis Adjustment: Таз. Показывает, насколько система опускает таз вниз, чтобы ноги могли дотянуться до новой позиции (тот самый параметр, что вызывал проваливание).
  1. Debug Draw Thigh Adjustment: Бедро. Показывает коррекцию вращения бедренной кости для адаптации к новому шагу.
  1. Debug Draw IKFoot Final: Стало. Финальная точка, где стопа находится сейчас, после всех искажений.
2
1
2 комментария