Добавлен rsfghd
Кучу времени убил на это, страдая всякой ерундой, пытался раза 4 поискать в инете хоть какие-нибудь наработки, но видимо плохо ищу
В общем, как сделать снаряд, который игнорил бы впадины, ускорялся/замедлялся в зависимости от дуги и поворачивал бы свой носик на нужный градус (SetUnitLookAt)?
Может у кого есть наработка или ссылка?
upd я пока не в состоянии разобрать вектор и буду очень благодарен, если ответ будет через хэш-таблицу
1.26а
В общем, как сделать снаряд, который игнорил бы впадины, ускорялся/замедлялся в зависимости от дуги и поворачивал бы свой носик на нужный градус (SetUnitLookAt)?
Может у кого есть наработка или ссылка?
upd я пока не в состоянии разобрать вектор и буду очень благодарен, если ответ будет через хэш-таблицу
1.26а
Принятый ответ
Нужен мемхак или рефордж, чтобы поворачивать эффект по всем направлениям Yaw, Pitch, Roll
Всё остальное костыли 2005 года, оставьте их там же
(я про ту самую модель даммики с 360 анимациями для всех поворотов)
И разумеется 100% делать через эффект, никак юнитов
Всё остальное костыли 2005 года, оставьте их там же
(я про ту самую модель даммики с 360 анимациями для всех поворотов)
И разумеется 100% делать через эффект, никак юнитов
Тоже самое возможно на 126, 127, 128, просто возьмите это
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Отредактирован rsfghd
Ошибка с блоком была из-за отключённого AdicParser'a, но в мемхаке включить его низя, иначе другая ерунда вылезет
МрачныйВорон, пасиб большое, теперь хоть через впадины нормально перелетает)
Однако мне всё равно интересно как замедлить/ускорить снаряд до/от середины полёта и можно ли как-нибудь эту силу прикрутить к параболе?
Отредактирован MpW
Раскладываем скорость на векторы:
Vx=1,Vy=1,Vz=1 - изначально скорость нулевая, тк ракета еще не вылетела. Когда мы запустим, наша скорость будет равна 1. Скорости придает ускорение.
a=0 - ускорение. Изначально оно равно нулю, таймером каждую секунду увеличиваем наше ускорение. Когда снаряд достигнет середины дуги, или половины пройденного пути, тогда уже наше ускорение превращается в понижение. Будет постепенно понижаться до нуля.
изменяем нашу скорость. Вот здесь я не уверен. Надо самому потестить, устал. Но взял из учебников физики. av-physics.narod.ru/mechanics/acceleration.htm простенькая формула.
черт, забыл углы. ведь координаты, а тут углы. забыл относительно чего углы брать.Углы надеюсь сможешь понять как, а то лень через арккосинусОтредактирован scopterectus
Отредактирован rsfghd
Отредактирован MpW
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)
R - расстояние между тек точкой снаряда и серединой маршрута
L - это расстояние от начала движения до конечного
a = R/(L/2) - вот процент ускорения (от 1 до 0). чем ближе ваша точка находится к центру дуги или середины маршрута, тем ниже процент a. В центре дуги ускорения не останется (a=0). и она начнет убывать (a<0 - типа под гравитацией). когда долетает до середины дуги. мы меняем знак наверное? и надо делать со счетчиком времени t, типа убывать, а то обратно будет удвоенно понижать.
Вопрос: что делать дальше? после центра дуги параболы? Ведь нужно, чтобы скорость понижалась, ведь в центре дуги достигла макс скорости. Теперь она должна понижаться по формуле: U = U0 - at
Вторая проблема - это счетчик времени t, если продолжит дальше увеличиваться, то это сильно повлияет на скорость. Я не знаю точного ответа, надо тестить. надо простенький пример какой-то провести, чтоб проверить. Ведь счетчик времени является множителем, очень сильно торможение будет, так и не долетит до цели. Возможно стоит убавлять счетчик или обнулить.
Отредактирован rsfghd
quq_CCCP, мне нужно будет манипулировать снарядом как мне угодно
МрачныйВорон, я именно так и пробовал, но благодаря тебе я сейчас понял где допускал ошибку каждый раз, теперь я поправил это, спасибо)
ещё раз поблагодарю Ворона)