Семен Ломакин

+106
с 2020
3 подписчика
25 подписок

Ну, не совсем. В системе, которая показана на видео, используется физический движок для определения коллизий стрел с поверхностью, правда я нигде об этом не упоминал

1

Если дойдут руки, может еще напишу статью про создание имитации заваливания объекта без использования физических расчетов 

3

Честно говоря, я сам толком ничего не знал про кривые Безье, когда начинал искать варианты реализации системы...

2

Я решил не перегружать статью большим количеством информации, а дать краткую выжимку, достаточную для реализации системы. Если нужно могу сбросить свою дипломную работу, где я дотошно разбирал эту тему (правда ДП на украинском XD). Ещё закинул на GitLab пример реализации системы. Буду рад, если кому-то пригодится.

1

Спасибо за столь развернутый ответ, я о подобном подходе к реализации не задумывался. Однако с использованием физики необходимо подбирать время полёта, а в моём случае дистанции выстрела в начале и конце уровня сильно отличаются. Тут либо подбирать такое время, чтобы на любой дистанции выглядело приемлемо, либо привязывать время полёта к общей дистанции. Кривые Безье, в свою очередь, вообще не привязаны к времени полёта, правда, если захочешь, чтобы всегда была крутая траектория (даже на большой дистанции выстрела), нужно подвязывать высоту вспомогательной точки к общей дистанции.  Ну а насчет оптимизации полностью согласен - для того, чтобы увидеть весомую разницу в потребляемых ресурсах необходимо задействовать ОЧЕНЬ много подобных симуляций одновременно. Тем не менее две одновременно работающих функции интерполяции прямолинейного движения + LookRotation будут всегда шустрее работать, чем любые физические расчеты.

3

На самом деле, когда я изучал вопрос по применению кривых Безье в играх, то оказалось, что их, например, используют для создания полосы оптимальной траектории в гоночных играх. Ещё видел применение кривых Безье в алгоритмах поиска и построения оптимального пути

7