3,8K подписчиков

Как создают веревки в играх

610 прочитали
Жизненный цикл веревки.
От создания в статике до физики кратко.

На закате ушедшего года, бесцельно исследуя просторы местного ассет стора, довелось узреть тематический по событийной череде ассет -
табуреточка и веревочка.

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

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

Производство статичных веревок

Что есть веревка? Длинный меш округлой формы, изгибы которого, из удобства, создаются еще на этапе моделирования?
Экструдировать из кружка новый пучок вершин, повернуть их, экструдировать снова - несмотря на кропотливость работы, изящные изгибы получатся вряд ли, здесь помогут курвы. Курвы Безье.

Жизненный цикл веревки.
От создания в статике до физики кратко.-2

Что за курвы под покровительством Безье и почему представители древних профессий нагоняют представителей современных в CGI?
В сторону каламбуры. Кривые Безье, это, как не сложно догадаться, кривые, рисуемые на основе опорных точек.
Лучше меня объяснит суть их работы эта гифка :

Жизненный цикл веревки.
От создания в статике до физики кратко.-3

Цепочкой из кривых можно обнять любой предмет или изящно уложить на поверхности, после, последовательно нарастив сегменты из тех же мини-цилиндров вдоль одной длинной кривой.
Чем сегментов больше и чем они меньше - тем менее угловатым выглядит итоговый результат.

Веревочная физика

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

Итак, что мы имеем?

  • Это единый меш, меняющий свою форму, а значит предстоит работать с отдельными группами вершин ;
  • Извиваться ему предстоит на основе информации о столкновениях, но полагать что на всю веревку, будь то короткую или длинную, всего лишь один коллайдер, которому придется к тому же обновлять свою геометрию раз 60 в секунду - глупо. Вывод - каждой группе вершин свой коллайдер ;
  • Для, непосредственно, извивания, коллайдеры надо сцепить джойнтами (сочленениями) с определенными ограничениями на поворот относительно друг друга, дабы веревка не сложилась пополам.
    Ну а каждому коллайдеру - по компоненту физики, чтобы всё это не висело в воздухе ;
Жизненный цикл веревки.
От создания в статике до физики кратко.-4

Для объединения всех вышеописанных догматов в одну цельную систему велосипед изобретать не обязательно, можно воспользоваться простым и "народным" методом - косточками и рэгдоллом.

Жизненный цикл веревки.
От создания в статике до физики кратко.-5

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

Жизненный цикл веревки.
От создания в статике до физики кратко.-6

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