Войти
Unreal EngineФорумBlueprints

Модель крокодила на Move to location. Сделать повороты плавными

#0
(Правка: 18:25) 18:18, 21 фев. 2021

Если делать движение ботов через Move to location и все другие аналогичные ноды кроме  Add Movement input, то бот идет по маршруту до промежуточной точки и там резко поворачивает. Для двуногих это не проблема - развернуться на месте, но что делать, если бот крокодил или бегемот? У крокодила длинный хвост и его резкий разворот выглядит не реалистично. Для привязки анимации поворота, ему надо давать данные о повороте на всём протяжении поворота. Но если поворот длится одно мгновение, то и анимация проиграться не успеет.
Вопрос 1: Как замедлить эти повороты?
Не найдя ответа самостоятельно, я стал использовать нод Add Movement input, и сам прокладываю путь. Но при этом есть трудности с обходом препятствий. Приходится делать много трассировок по всей окружности, но когда бот цепляется за препятствие, то задерживается там прилипая.
Вопрос 2: Как отключить остановки от зацепов?
Чтобы не прокладывать путь самостоятельно, есть нод Find Path to Location Synchronously.
Вопрос 3: как достать из него координаты промежуточных пунктов маршрута, чтобы использовать для движения бота через нод Add Movement input?
Возможно я ищу сложный путь вместо простого решения. Ведь я делаю только первые шаги в UE.
Вопрос 4: Если есть простой путь решения этой проблемы, то может кто-нибудь знает более простой путь её решения. Подскажите плиз или ссылочку дайте на решение для плавных поворотов таких объектов. Может использовать шаблон автомобиля? Может там крокодил не будет прыгать на углах?
много трассировок - большая нагрузка на процессор | Модель крокодила на Move to location. Сделать повороты плавными
повороту нужно время | Модель крокодила на Move to location. Сделать повороты плавными


#1
(Правка: 22 фев. 2021, 15:19) 23:04, 21 фев. 2021

ivashko
> Сделать повороты плавными

вау, у меня такая же задача была не решенной, и чего я только не находил в гугле на эту тему.

У меня сейчас вроде быстро боты поворачивают, вроде через эту ноду https://www.youtube.com/watch?v=893RCg0og5s


P.S. ты бы ник сменил, а то есть здесь один ивашка, тебя с ним путать будут

#2
16:57, 22 фев. 2021

на попытку смены ника сайт пишет: " Сменить ник могут только пользователи с уровнем Участник". Выходит я не участник, так что придётся быть чьим-то двойником.
Да, предложенный по линку метод  не даёт желаемого результата, но кажется я нашёл кривенькое решение. Тема больше на актуальна.

#3
(Правка: 19:20) 19:19, 22 фев. 2021

ivashko
> но кажется я нашёл кривенькое решение.
И какое ? не поделишься ?

#4
14:54, 23 фев. 2021

нельзя при поиске пути указать радиус поворота, чтобы не было резких шпилей?

#5
15:09, 23 фев. 2021

leonardo98
нельзя

#6
(Правка: 19:23) 19:20, 23 фев. 2021
leonardo98
нельзя при поиске пути указать радиус поворота, чтобы не было резких шпилей?

Вот с этого места поподробнее можно? Где и как указать этот радиус?

endeavour_pr
но кажется я нашёл кривенькое решение.
И какое ? не поделишься ?

разбиваю путь на части в нав мэше и щупаю дорогу трейсингом. Пока не доделал полостью, но то что успел сделать, вроде бы уже не глючит. Много блупринтов. Вряд ли это оптимальное решение. Вся надежда на leonardo98. Он тут пишет, что нашёл где- то какой-то радиус. Если ответит, можно будет сносить все эти блупринты.
endeavour_pr
Ты не знаешь, где настройки цвета для PhysicsVolume? А то я покрасил всё под водой постпроцессом, а тень от плывущего крокодила на дне заметнее чем сам крокодил в воде. На неё постпроцесс не действует. А делать постпроцесс для крокодила это вообще извращение ИМХО если есть штатные методы движка.

#7
(Правка: 19:48) 19:47, 23 фев. 2021

ivashko
Плавный поворот можно сделать если двигать непись вручную, я что то похожее пробовал но у меня забаговалось и я плюнул, а потом нашел готовую ноду для вычислений.

В целом там у меня довольно много логики для начала ... Но дерево АИ стандартное по тутору, там кажется АИ сначала крутится на игрока чтобы выстрелить в него, если потерял цель то бежит через move to

С крокодилом будет сложнее потому что у него тушка больше  ...
Но я думаю там можно построить логику, какую именно еще может зависеть от анимаций которые у крокодила есть.
Ну например он крутится медленно топчась на месте в сторону где последний раз видел игрока, либо делает рывок если есть анимации, это все нужно детально разобрать.

Математику поворота на месте в сторону игрока я думаю можно найти в инете.

#8
19:57, 23 фев. 2021

endeavour_pr
это не решение это убегание от него в сторону
вот за углом крокодил тебя учуял и побежал тебя кусать и что мы видим? мы видим как забежав за поворот крокодил сделает молниеносный поворот в твою сторону...это лажа есть более красивые решения:
1. трейсить препятсвие впереди и делать свой мувмент и поиск пути с учётом радиуса циркуляции(минимальный радиус разворота обьекта)(https://www.youtube.com/watch?v=L591fS51F4I там внизу есть ссылка)
2. корректировать траекторию движения сглаживая углы

ни того ни того уроков для анриала нет и наврят появятся

#9
14:31, 24 фев. 2021

ivashko
> Вот с этого места поподробнее можно? Где и как указать этот радиус?
извини, я пишу не на unreal, просто это выглядит логично, может это называется не радиус, но какой-то подобный параметр для поиска пути

Unreal EngineФорумBlueprints