Полезное

Мы Вконтакте

Discord канал

#
Пред.
12
Модератор: icms
Аватара пользователя
Пользователь
Сообщения: 149
Имеются начальное и конечное положение - точки на сплайне. Как вычислить движение по дуге похожее на свободное падение тела брошенного горизонтально? То есть как скруглять тангенсы подобно ускоренному падению по дуге и хватит ли 2х точек?
Я так понял актор с компонентом projectile нельзя настроить чтобы от летел в конкретную точку?
Аватара пользователя
Пользователь
Сообщения: 469
Попробуйте зайти с обратной стороны https://github.com/RohitKotiveetil/UnrealEngine--ProjectilePathDisplay
_________________
Project SKIT
Аватара пользователя
Пользователь
Сообщения: 149
icms спасибо, буду копать в эту сторону.
Аватара пользователя
Пользователь
Сообщения: 2319
```То есть как скруглять тангенсы подобно ускоренному падению по дуге```
решить уравнение параболы...
найти фокус параболы, от фокуса построить квадратичную безье, из квадратичной перевести в кубическую - получаем тангенты.
Чистая математика:
Изображение
но правда с решенным уравнением сплайн перестает быть нужен
_________________
we need to go deeper
Аватара пользователя
Пользователь
Сообщения: 2319
Изображение
Изображение
_________________
we need to go deeper
Аватара пользователя
Пользователь
Сообщения: 2319
в общем-то получить тангенсы - нужно стартовый позиция, стартовый угол запуска, координаты цели.
в 2д при стартовой скорости V и призапуске из начала координат и Target.XY - известная координата цели

Код:
P_x(x) = x/2
P_y(x) = (x*V.Y)/(2*V.X)

T_1.XY = { P_x(Target.X), P_y(Target.X)}
T_2_XY = T_1.XY -Target.XY

первый_тангент = T_1.XY * 2/3
второй_тангент = T_2_XY * 2/3

_________________
we need to go deeper
Последний раз редактировалось Snake 04 мар 2019, 22:44, всего редактировалось 2 раз(а).
Аватара пользователя
Пользователь
Сообщения: 4069
Snake писал(а):
но правда с решенным уравнением сплайн перестает быть нужен


да, советую обратить автору внимание на это, лично я получаю нужную мне траэкторию в течении пары минут, методом тыка, с помощью сплайна с двумя точками.
Аватара пользователя
Пользователь
Сообщения: 2319
поправил, достаточно знать начальный вектор скорости(направление) и позицию цели, для тангентов этого достаточно.
но нельзя задать значение скорости,скорость будет зависеть от угла запуска.
https://www.desmos.com/calculator/mfb8zb1jjx
и вот чтоб расчитать угол запуска но с зато нужной скоростью , вот тогда и нужно из википедии взять формулу расчета угла по цели.
_________________
we need to go deeper
Аватара пользователя
Пользователь
Сообщения: 2319
Цитата:
лично я получаю нужную мне траэкторию в течении пары минут, методом тыка, с помощью сплайна с двумя точками.

только вот сплайн значительно(в порядки раз) дороже уравнения параболы...
сплайн - компонент(!) который нужно создавать/уничтожать, рендерить/нерендеритьб миллион ненужного сложного функционала
бикубическая интерполяцией векторов совсем не дешевая
(кому любопытно может загуглить формулу бикубической интерпляции она еле еле в ширину монитора помещается)
но есть бонусы конечно свои.

то-ли дело одна функция:
FTransform GetProjectileCoord(FVector ShootStart, FVector Velocity, FVector Target, float time){}
кормишь ее нужными данными из непостоянного только время... получаешь трансформ - профит. И при этом имеешь расово-верную траекторию в любой момент времени, даже в прошлом
_________________
we need to go deeper
Аватара пользователя
Пользователь
Сообщения: 4069
Snake писал(а):
сплайн - компонент(!) который нужно создавать/уничтожать, рендерить/нерендеритьб миллион ненужного сложного функционала


ну я спавню его на бегин плэее один раз(он у меня в отдельном акторе), потом просто делаю ему сет трансформ и т.д., и использую когда нужно, в основном для всяких прыжков.
Тоже всего использую две точки, на быстродействии фактически это не сказывается, ну от слова совсем.
По сравнению с другими вещами, капля в море.
Так как у меня много различных вариантов прыжков, ~ 30-40(climb system and parkour system), я бы охерел для каждого свою функцию писать(точнее подбирать параметры), так как траэктории различны, как и анимации.
Спорить я с тобой не буду, ты всегда прав, и одну функцию для всего этого можно приспособить, но мне очень удобно и кайфово его юзать.
Строю траэкторию, а потом запускаю по ней персонажа, скорость анимации в определенный момент(после отталкивания) начинает зависить от длины сплайна.
Есть функция в который описаны параметры для этих двух точек в зависимости от конкретной анимации. Для стрельбы очередями это возможно совсем не вариант, но в моем случае подходит идеально.


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

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