Полезное

Мы Вконтакте

Discord канал

#
Пред.
12
Модератор: icms
Пользователь
Сообщения: 558
Делаю смещение бота после нанесения ему повреждений, нужно что бы он смещался назад, проблема заключается в том что зад у него может быть в любой стороне, и мне надо задать смещение относительно его зада(или переда), потыкавшись методом тыка по нодам, я нашел себе инструмент для реализации этой задачи, в моем случае это Get Forward Vector, я получаю значение этого вектора у моба и в зависимости от его значений, указываю куда смещать моба.


Вот пример для положения если моб находится строго внизу(он всегда смотрит в сторону персонажа), для того что бы добиться нормальной точности смещения мне надо указать 8 диапазонов, для хорошей точности 16 диапазонов, подскажите - есть ли способ проще и лучше?
Изображение
Аватара пользователя
Пользователь
Сообщения: 474
Откуда цифры 8 и 16 диапозонов ?А Форвард вектор лучше у актора брать а не у капсуль компонент наверное . Что обратный вектор получить (противоположный форварду) можно на -1 умножить.А вообще если есть анимация получения урона ,то можно включать движение относительно рута ,он сам отойдет на сколько нужно
Пользователь
Сообщения: 558
Да мне в принципе без разницы от какого именно вектора отталкиваться(например Get Right Vector), форвард капсулы моба вполне устраивает, вот может по скринам тебе будет понятна задача и мой подход.


Изображение



сама задача
Изображение

моб смещается в зависимости от анимаций, вот тут пример, завершается серия и он отлетает, но фактически он остается на месте и блокирует моего персонажа если пытаться идти вперед - https://www.youtube.com/watch?v=eAtYPW4dY4Y
Я пытался действовать с помощью Set Actor Location, и перезаписывать местоположение там где кончается анимация, но оно получается не красиво, дерганно. с помощью Add Movement гораздо лучше, но так и так, нужное мне смещение я могу задать в зависимости от вектора, другого способа заставить делать движок то что мне надо не знаю.
Пользователь
Сообщения: 558
Создавал тему в надежде что мудрый математик подкинет формулу, которая по местоположению моба и его вектору и задаст нужное смещение, хотя бы для стрельбы, а это назад, интуитивно я понимаю что это возможно, но на практике мне придется задавать 16 диапазонов и это будет не идеальная точность. Пока реализовал только один диапазон, для стрельбы если местоположение персонажа строго на 12 часов, другие не спешу, это не тяжело на самом деле, но может кто подскажет вариант лучше.
Диапазоны узнаю так - хожу вокруг моба и стреляю по нему - https://youtu.be/dda3sZ6CI5M
Пользователь
Сообщения: 558
Zhernovoy Sergey писал(а):
А вообще если есть анимация получения урона ,то можно включать движение относительно рута ,он сам отойдет на сколько нужно

Если ты имеешь ввиду Root Motion, то я им игрался по всякому, может дело в самой анимации, еще в блендере что то изменить надо было, незнаю, читал на форуме тут тему, там чел подобное пытался сделать и тоже с помощью Root Motion ничего не получилось.
Аватара пользователя
Пользователь
Сообщения: 564
Так тебе нужно, чтобы моб от удара смещался на свое назад или по направлению удара?
Аватара пользователя
Пользователь
Сообщения: 474
Прытков Саша писал(а):
Создавал тему в надежде что мудрый математик подкинет формулу, которая по местоположению моба и его вектору и задаст нужное смещение, хотя бы для стрельбы, а это назад, интуитивно я понимаю что это возможно, но на практике мне придется задавать 16 диапазонов и это будет не идеальная точность. Пока реализовал только один диапазон, для стрельбы если местоположение персонажа строго на 12 часов, другие не спешу, это не тяжело на самом деле, но может кто подскажет вариант лучше.
Диапазоны узнаю так - хожу вокруг моба и стреляю по нему - https://youtu.be/dda3sZ6CI5M

Зачем тебе математик , тут простая геометрия , берешь вектор моба ,ворфард вектор должен быть нормализированным ветором ,то есть единичной длины ,что бы смещение происходило на определенное расстояние ,то вектор нужно умножить на скаляр ,то есть получается в твоем случае : форвард вектор * (- расстояние) .Так как у тебя все это должно происходить в плоскости XY как я понимаю ,то из форвард вектора убери Z компаненту инвертируй вектор(* -1) * на расстояние которое должно произойти смещение.И не забудь ,после убирания форвард вектора нормализовать нужно его
Аватара пользователя
Пользователь
Сообщения: 474
Можешь видео посмотреть по ветокрам ,подробно объясняет что да как ,правда пример в гудини делается,но сути не меняется,этот функционал есть и в анриале https://vimeo.com/album/3229081/video/119849922
Аватара пользователя
Пользователь
Сообщения: 564
На первом скрине перса отбрасывает назад, на втором в зависимости от угла попадания, то есть если попадет в спину, то отбросит вперед.




Пользователь
Сообщения: 558
Спасибо за варианты попробую. Двигать мне надо не игрока а моба, но он тоже типа Pawn.

P.S. Hoyt Ridge подскажи название проги, с помощью который ты видео записываешь?.


Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 37

UEngine.ru © 2017
Все права защищены. При копировании материалов с сайта, ссылка на первоисточник обязательна.
Яндекс.Метрика
Главная страница