Кучу времени убил на это, страдая всякой ерундой, пытался раза 4 поискать в инете хоть какие-нибудь наработки, но видимо плохо ищу
В общем, как сделать снаряд, который игнорил бы впадины, ускорялся/замедлялся в зависимости от дуги и поворачивал бы свой носик на нужный градус (SetUnitLookAt)?
Может у кого есть наработка или ссылка?
upd я пока не в состоянии разобрать вектор и буду очень благодарен, если ответ будет через хэш-таблицу
1.26а

Принятый ответ

Нужен мемхак или рефордж, чтобы поворачивать эффект по всем направлениям Yaw, Pitch, Roll
Всё остальное костыли 2005 года, оставьте их там же
(я про ту самую модель даммики с 360 анимациями для всех поворотов)
И разумеется 100% делать через эффект, никак юнитов

Тоже самое возможно на 126, 127, 128, просто возьмите это
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
1
21
3 года назад
1
rsfghd, это нужно будет рассчитывать в зависимости от расстояния. Например, задаёте изначальную скорость и умножаете на процент пройденного пути. В итоге, когда снаряд долетит до конца пути - получит все 100 % ускорения. Или наоборот, тогда снаряд в конце будет иметь нулевое ускорение.

Ну или придумать свою формулу. Всё зависит от конкретного случая.
0
32
3 года назад
0
Как насчёт юзать аксид бомбу и не парится?
1
27
3 года назад
Отредактирован MpW
1
продолжение
углы надо найти, чтобы направление векторам задавать. Для этого нужно просчитать вектор движения dx,dy,dz
Ux,Uy,Uz - тек точка
Tx,Ty,Tz - конечная точка, куда должен прилететь снаряд
dx = Ux-Tx
dy = Uy-Ty
dz = Uz-Tz
theta = Atan2(SquareRoot(dx*dx + dy*dy), dz)
phi = Atan2(dy/dx)
rsfghd, ну вы должны сами понимать наскока она увеличивает/понижает скорость. Тут еще как бы есть время t, помноженное на ускорение a. t счетчик времени у вас растет? Очень сильно увеличивает вперед из-за времени. А еще как сильно понижаться будет?

Есть мысль, что половину пути L/2 приравнять - 100% или к max_a =1.00
R - расстояние между тек точкой снаряда и серединой маршрута
L - это расстояние от начала движения до конечного
a = R/(L/2) - вот процент ускорения (от 1 до 0). чем ближе ваша точка находится к центру дуги или середины маршрута, тем ниже процент a. В центре дуги ускорения не останется (a=0). и она начнет убывать (a<0 - типа под гравитацией). когда долетает до середины дуги. мы меняем знак наверное? и надо делать со счетчиком времени t, типа убывать, а то обратно будет удвоенно понижать.
Вопрос: что делать дальше? после центра дуги параболы? Ведь нужно, чтобы скорость понижалась, ведь в центре дуги достигла макс скорости. Теперь она должна понижаться по формуле: U = U0 - at
Вторая проблема - это счетчик времени t, если продолжит дальше увеличиваться, то это сильно повлияет на скорость. Я не знаю точного ответа, надо тестить. надо простенький пример какой-то провести, чтоб проверить. Ведь счетчик времени является множителем, очень сильно торможение будет, так и не долетит до цели. Возможно стоит убавлять счетчик или обнулить.
пример
a - коэф сильно зависит от расстояния.
в итоге это мб не то что нужно. дело в том, что до цели долетает совсем ослабленный снаряд. он долетит до цели со скоростью U=1. мб надо вначале придать ускорение увеличивать в 2 раза, чтобы не казался слабысм

1
Загруженные файлы
0
27
3 года назад
Отредактирован rsfghd
0
ScopteRectuS, я пытался через процент, но видимо косячил где-то..
quq_CCCP, мне нужно будет манипулировать снарядом как мне угодно
МрачныйВорон,
a = R/(L/2)
я именно так и пробовал, но благодаря тебе я сейчас понял где допускал ошибку каждый раз, теперь я поправил это, спасибо)

upd ох.. даже не знаю чей ответ то выбрать, все очень сильно помогли)
ещё раз поблагодарю Ворона)
1
27
3 года назад
1
rsfghd, а он реал работает? а то мне кажется что-то не правльно. легче чужоф код посмотреть
2
28
3 года назад
Отредактирован PT153
2
а pjass ты поставил последний?
Это не пжасс ошибку выдал, а жассхелпер. Там же написано vJass, step 2 (structs).
5
24
3 года назад
5
Господа, вы больны. Снаряд не замедляется и не ускоряется по горизонтали, не считая сопротивления воздуха, если только на снаряде не установлен реактивный двигатель. При движении по параболе изменяется только вертикальная составляющая скорости по мере приближения и удаления от вершины параболы.
2
28
3 года назад
2
Полностью согласен с прогом, из курса школьной физики должно быть известно, что вдоль земли снаряд летит с постоянной скоростью.
0
27
3 года назад
0
prog, а как надо?
1
24
3 года назад
1
МрачныйВорон, считаем отдельно горизонтальную скорость, отдельно вертикальную. К вертикальной применяем постоянное ускорение вниз, к горизонтальной либо вобще не применяем ускорение либо применяем минимальное чтобы симулировать сопротивление воздуха. Все, реалистичная модель движения по параболе готова. Вершина параболы достигается когда вертикальная скорость доходит до нуля и начинает идти в обратную сторону.
0
27
3 года назад
0
prog, боже, спасибо тебе, ты ж гений))
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.