
Система прицеливания для метательного оружия с траекторией полета (UDK)
Геймдизом мне была поставлена следующая задача, сделать систему прицеливания, которая чертит траекторию для метательного снаряда, в частности гранаты. Понятно, что нарисовать траекторию не составит большого труда, можно создать динамический Mesh или просто расставить пару точек. Основная сложность заключалась в получении верной траектории для снаряда, а снаряды могут быть разные: некоторые скачут, некоторые ускоряются(на пример ракеты аля FGM-148 Javelin). Тогда я обнаружил алгоритм указанный выше. Основная идея алгоритма была в том чтобы пустить невидимый снаряд, точную копию реального снаряда, и записать его координаты через равные промежутки времени. Чуть поправив его логику уйдя от стандартного снаряда, к снаряду привязному к конкретному типу вооружения, я получил то что можно наблюдать на видео.
Через равные промежутки времени я генерирую сферу, которая находится в текущем местоположении снаряда-обманки. Так же я ускорил локальное время этого снаряда, чтобы он летел в разы быстрее чем настоящий снаряд.При изменение положения игрока, я удаляю старые сферы и рисую новые.
Плюсы Метода:
+Скорость выполнения
+По факту он не привязан к UDK, его с легкостью можно реализовать на любом движке
+Простота
+Нету ограничения в сложности поведения снаряда, он может вести как вам угодно.
Минусы Метода:
-Не возможно фактически создать траекторию за один кадр, поэтому нельзя её обновлять постоянно, т.к. снаряд болванка обладает конечной скоростью.
Надеюсь, Вам пригодится этот метод, если Вы реализуете его на других движках, оставьте ссылку в комментариях.
5 комментариев