Найти в Дзене
Stronghold of gamedev

Мягкие тела в играх

Оглавление
Soft-ball racing
Soft-ball racing

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

Деформация стены происходила в результате определения столкновений и перемещения вершин модели, ткань же дополняла это подверженностью игровой физике, а soft body механики позволяют работать с любой геометрией.

Примеры с разными настройками
Примеры с разными настройками

Где применяется?

Применить исходя из логики можно на любое предположительно мягкое тело, но разработчики в целях оптимизации ограничиваются лишь самым полезным и заметным.
Например шины колес в
Spintires : для прохождения бездорожья на грузовиках и джипах, машинам очень кстати приходятся большие размеры колес, на практике их так же немного сдувают для увеличения площади сцепления, а значит и проходимости.

Spintires
Spintires

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

Wreckfest
Wreckfest

Грудь. Сложно не упомянуть новый для запада и древний для востока тренд физики груди. Ну или живота, если вам так угодно. Если с пониманием можно было отнестись к корейским разработчикам, покоряя их MMORPG, то у запада с этим проблем быть точно не должно. Где-то грудь анимируют вместе с остальным скелетом (что сложно и долго), где-то груди дают подверженность физике и она прыгает как камень, а вот в Street Fighters V использовали как раз физику мягких тел!

Те что справа
Те что справа
Увы игр, использующих soft body как важную механику я не нашел. Придется делать самому =)

Как работает?

Для наглядной демонстрации я сооружу небольшую сцену в Blender:

Шар
Шар

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

24 фпс, как в кино!
24 фпс, как в кино!

Можно сделать его более желеобразным :

А вот тут 40
А вот тут 40

Может немного окружения?

Новый игрок одолжил фпс
Новый игрок одолжил фпс

А это он вообще не упругий :

Наконец 60
Наконец 60

Упругость играет роль ограничителя расстояния между вершинами. Если вершинам можно смещаться лишь немного (упругий), то они отпружинят не сильно. Если вершинам вообще не задано ограничение как в последнем примере, то пропадает всякая геометрическая форма и пружинить он точно не будет.

На этом всё. Подписывайтесь на канал, оценивайте статью и пишите, о чем бы вы хотели узнать в следующей статье.

Читайте так же :
Разрушаем объекты и мнем стены на мини-проекте
Физика ткани в играх на примере платка и флажка
3D графика для маленьких