UE4 Character: Плавный переход Stand-Moving

Предисловие: не претендую на истину в последней инстанции.

Приём, я на связи. На данный момент настраиваю контроллер персонажа, сразу скажу, что в примере используются некоторые объекты ассета Advanced Locomotion System V2, но сути не меняет.

Как вы знаете стандартный Character очень топорный, двигается неестественно. Данная статья покажет, как решалась одна маленькая, но невероятно нужная вещь - плавное перемещение, переход Stand-Moving. Много перекопал материала по этому поводу. И в большинстве случаев предлагают использовать громоздкие блупринты с привязкой к Delta Seconds и Timeline. Выглядит просто жутко.

По неизвестным мне причинам описания этих параметров и тем более такого метода в официальной документации я не нашёл. Может я дурак?

Итак, к делу. Для начала взгляните как двигается стандартный Char. Анимации специально убрал, чтобы сконцентрировать внимание на Pawn.

Эта сволота встаёт почти как вкопанная

Откроем actor, выбираем CharacterMovement (Inherited).

UE4 Character: Плавный переход Stand-Moving

Видим такие параметры: Макс ускорение, коэффициент трения при торможении, трение о землю и обратное ускорение (торможение).

UE4 Character: Плавный переход Stand-Moving

Крутим эти параметры как душе угодно и добиваемся нужного результата. Я остановился на таких: 1024, 1, 2, 1024 соответственно.

UE4 Character: Плавный переход Stand-Moving
Что получилось.

А можно вообще каток сделать. Аля Крутой Сэм на скользком полу.

В общем результат меня порадовал. Реализуется почти в два клика без блупринтов, хоть и доходил до этого долго.

Напоследок демонстрация с прикрученными анимациями.

Конец связи.

11 показ
3.7K3.7K открытий
7 комментариев

Даешь больше годноты по UE4! Желательно на плюсах!

Ответить

А можно просто использовать root motion.

Ответить

Было бы интересно почитать. Ссылку пожалуйста.

Ответить

На последней гифке, там проскальзывание заметное при остановке. Это надо бы замаскировать анимацией остановки или настройками бленда перехода из ходьбы в айдл (если у тебя это сделано отдельными стейтами).

Ответить