Оффтоп Starter Gear
410

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

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

В закладки

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

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

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

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

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

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

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

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

Что получилось.

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

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

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

Конец связи.

Материал опубликован пользователем. Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.

Написать
{ "author_name": "Starter Gear", "author_type": "self", "tags": [], "comments": 7, "likes": 13, "favorites": 1, "is_advertisement": false, "subsite_label": "flood", "id": 11854, "is_wide": false }
{ "id": 11854, "author_id": 30965, "diff_limit": 1000, "urls": {"diff":"\/comments\/11854\/get","add":"\/comments\/11854\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/11854"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 64955 }

7 комментариев 7 комм.

Популярные

По порядку

Написать комментарий...
1

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

Ответить
0

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

Ответить
0

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

Ответить
1

https://docs.unrealengine.com/latest/INT/Engine/Animation/RootMotion/index.html
Это другой тип анимации, в котором смещение рутовой кости скелета двигает актор, а не наоборот, как обычно, когда анимация подстраивается под не зависящее от нее движение. Вот тут (https://www.youtube.com/watch?v=i6SUqg1N2_s) есть туториальчик на основе анимаций отсюда: kubold.com/?page_id=134.
Понятно, что анимации должны быть специальные. Рут моушен дает заметно более качественную анимацию, но менее управляемую. Это критично, например, в шутерах или слешерах.

Ответить
0

Спасибо! А можно ли применять только на определённые анимации?

Ответить
0

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

Ответить
0

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjog" } } }, { "id": 10, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-250597-0", "render_to": "inpage_VI-250597-0-1134314964", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=clmf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudo", "p2": "ftjf" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvc" } } } ]
10 самых лучших блюд
(согласно инстаграму Хидео Кодзимы)
Подписаться на push-уведомления