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

Как работает физика тканей в играх

Оглавление

Продолжая обширную тему стремления к реализму в играх в своих статьях, настало время задеть симуляцию ткани.
Механизмы для реализации технологии были доступны на этапах появления 3D игр, но по сей день разработчики не используют весь её потенциал.

В этой статье я расскажу и наглядно покажу как работает симуляция тканей в 3D среде.

Где используется?

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

Dark souls 3
Dark souls 3
Assassins creed Unity
Assassins creed Unity

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

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

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

Перейдем к примеру :

В blender я смоделировал кружку и буду кидать на неё платок

Антагонист
Антагонист

В роли платка выступит плоскость

Протагонист
Протагонист

Парой кликов я придал плоскости свойства ткани, приступим к действу

Завязка
Завязка

Ой. Кажется это не то, что вы ожидали увидеть? Сейчас плоскость имеет лишь 4 вершины, а значит на гибкость модели и не разогнаться. Получается качество симуляции ткани зависит от детализации модели. Может увеличим количество вершин? (а так же нагрузку на устройство)

Развитие действия
Развитие действия

Кажется теперь этот полигон стал похож на ткань! В одной из своих статей я писал что модель из треугольников обладает большей гибкостью, чем модель из полигонов (четырехугольники здесь), ткань идеально подходит для демонстрации

Кульминация
Кульминация

А вот слайд-шоу с еще более детализированной моделью :

Я устал
Я устал

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

Кстати, подробнее о 3D моделях и том, из чего они состоят, можно почитать в моей статье :
Основы 3D моделирования

На игровом движке

Для демонстрации ветра я создал флаг и он получился кажется слишком детализированным, для нормального поведения =)

-10

В действии :

-11

На этом всё, подписывайтесь на канал, оценивайте статью и пишите, о каких механиках в играх вы хотели бы узнать!

Статьи рядом :

Основы 3D моделирования

5 игр с технологиями будущего

Как создать игру в одиночку?