Original size 800x1280
This project is a student project at the School of Design or a research project at the School of Design. This project is not commercial and serves educational purposes

Инструмент Chaos Cloth.

Unreal Engine использует Chaos Cloth solver — низкоуровневый солвер для ткани, отвечающий за симуляцию частиц, которые управляют тканью [8]. Данный солвер одежды позволяет легко и обширно вносить изменения в симуляцию, так как пользователь обладает более быстрым доступом к параметрам, по сравнению с другими солверами (при сравнении с тем же Houdini, например).

big
Original size 1500x756

Epic Games | Алгоритм работы с Chaos Cloth

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

В данном исследовании применяется версия Unreal Engine 5.4.2, и алгоритм проведенной работы работает также для более поздних версий программы.

Подготовка анимированной модели персонажа и модели ткани.

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

Платье поделено на группы с помощью сетапа из Houdini FX: группы созданы отдельно для юбки — наиболее активной части, для верха с рукавами, а также для пояса. Это обеспечит дополнительное удобство при прорисовке карты весов на будущих этапах.

Также сетка платья оптимизирована благодаря ноде Remesh и сглажена нодой Smooth во избежание вылетов программы UE. Важно следить за тем, чтобы подол платья не был слишком узким, его должно хватать хотя бы на длину одного шага, иначе возрастает риск нежелательных пересечений с анимированным телом.

Original size 2144x1508

Ульяна Ковалева | 2025 | Модель платья и скин героини

Важным нюансом является строгое соблюдение размеров объектов при импорте (геометрия тела и одежды должны соответствовать друг другу).

Готовую геометрию импортируем, перетащив файлы в Content Browser, либо кнопкой Import из списка, появляющегося при нажатии ПКМ в окне Content Browser. Анимацию импортируем аналогично.

Необходимые плагины.

Original size 1886x1364

Анастасия Тучина | 2025 | Плагины для работы с инструментом Chaos Cloth в Unreal Engine

Подключаем необходимые плагины Chaos Cloth и Chaos Solver, необходимые для работы системы. После проставления всех галочек, необходимо перезапустить программу.

Ассет ChaosCloth.

Loading...

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

Нодовый Set-Up

Анастасия Тучина | 2025 | Вид импортированной модели одежды | Тело персонажа и анимация для превью симуляции

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

Анастасия Тучина | 2025 | Импорт модели платья через StaticMeshImport

В первую очередь, необходимо импортировать модель одежды в Dataflow. Для этого применяется нода Static Mesh Import из категории Cloth. В Node Datails в качестве Static Mesh выбираем необходимый элемент одежды.

Анастасия Тучина | 2025 | Перенос весов с тела персонажа на элемент одежды

На следующем шаге осуществляется перенос карты весов со скина персонажа при помощи ноды Transfer Skin Weights, — благодаря этому возможен также и перенос анимации с персонажа на платье и более гибкая настройка симуляции на последующих этапах.

Анастасия Тучина | 2025 | Кнопка Add Weight Map и соответствующая нода

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

Для того, чтобы выделить участки платья для их дальнейшей симуляции, используем кнопку Add Weight Map в верхнем левом углу.

Original size 1041x624

Анастасия Тучина | 2025 | Прорисовка маски для симулируемых участков модели одежды

Анастасия Тучина | 2025 | Прорисовка карты весов | Начальный вариант карты весов

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

В окне настройки кисти очень важно дать название маске MaxDistance в разделе Update Node, чтобы участки симулировались корректно. Когда маска готова, применяем ее кнопкой Accept в нижней части окна прорисовки весов.

Original size 1869x737

Анастасия Тучина | 2025 | Нода SimulationDefaultConfig

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

Original size 2722x878

Анастасия Тучина | 2025 | Нода SimulationMaxDistanceConfig

Прорисованная карта весов подсоединяется ко входу Max Distance Weight Map ноды SimulationMaxDistanceConfig.

0

Анастасия Тучина | 2025 | SimulationCollisionConfi | SetPhysicsAsset | ClothAssetTerminal

Анастасия Тучина | 2025 | Нода SetPhysicsAsset

Подключение Physics Asset необходимо для работы коллизии.

Original size 3750x782

Анастасия Тучина | 2025 | Сетап Cloth Asset Dataflow

Loading...

Сборка сетапа завершается нодами SimulationCollisionConfig, отвечающей за коллизию; SetPhysicsAsset для импорта физического ассета для корректной работы коллизии; а также ClothAssetTerminal, чтобы симуляция отображалась в окне предпросмотра.

Теперь наглядно видно, как работает собранный сетап.

Original size 3445x638

Анастасия Тучина | 2025 | Сетап с нодой SimulationAerodynamicsConfig

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

Работа с параметрами.

Анастасия Тучина | 2025 | Параметры симуляции по умолчанию

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

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

Original size 3840x2078

Анастасия Тучина | 2025 | Физический ассет

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

Анастасия Тучина | 2025 | Модель платья с расширенной юбкой | Итоговая модель платья с добавленными складками

Loading...

Анастасия Тучина | 2025 | Промежуточные параметры

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

Анастасия Тучина | 2025 | Карта весов для симуляции всей юбки | Карта весов для устранения ошибки коллизии с руками

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

Loading...

Получается более приятный результат.

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

Set-Up для более детальной проработки коллизии.

Original size 999x1274

Анастасия Тучина | 2025 | Параметры экспорта

Анастасия Тучина | 2025 | Параметры импорта

Для более тонкой настройки коллизии вместо Physics Asset можно использовать саму геометрию тела персонажа. Для этого необходимо экспортировать его и импортировать назад в сцену особым образом — в качестве Static Mesh вместо Skeletal Mesh [12].

Original size 2646x1884

Анастасия Тучина | 2025 | Перенос карты весов на импортированный коллайдер

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

Анастасия Тучина | 2025 | Выделение участка тела для коллизии | Соединение полученных коллекций

Original size 3173x942

Анастасия Тучина | 2025 | Настройка коллизии

На данном этапе важно обратить внимание на входы ноды SimulationSelfCollisionConfig, чтобы правильно передать параметры с выделенного коллайдера и карты весов платья.

Анастасия Тучина | 2025 | Настройка параметров аеродинамики

Original size 3798x744

Анастасия Тучина | 2025 | Итоговый сетап Cloth Asset Dataflow

Финальные параметры позволили добиться желаемого результата и существенно улучшить симуляцию.

Анастасия Тучина | 2025 | Финальные параметры

Loading...

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

Тестирование симуляции в сцене.

Original size 792x840

Анастасия Тучина | 2025 | Добавление Cloth Component к объекту в сцене

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

Loading...

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

II. Поэтапное создание симуляции в UE5.
Chapter:
1
2
3
4
5
6