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

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

нет селф-коллизий
анимация загружена в fbx или abc
все паттерны соединены между собой (например, рукав не отваливается от остальной футболки) - если не соединены, то воспользоваться нодой fuse
разделение одежды на части
верх и низ желательно просчитывать отдельно, а потом собирать кэши
разделение на части
некоторые части (как накладки, карманы, ботинки, перчатки) можно не симулировать вообще, а деформировать сразу через point deform
деформация через point deform
импорт анимации и создание преролла
общий принцип:
- настройка констрейнтов
- симуляция в vellum solver
- кэш в vellum i/o
- доработка в vellum post process
- перенос с лоу-поли на оригинальную геометрию при помощи point deform
- сборка всех элементов одежды
fbxcharacterimport (импорт анимации и персонажа) + bonedeform
преролл
при необходимости можно использовать rig pose для анимированной позы, чтобы исправить положение рук/ног в случае, если они пересекаются с одеждой
преролл — создание короткой анимации между т-позой и анимированной позой персонажа. необходима для корректной симуляции, так как одежда шьется на т-позе
преролл осуществляется при помощи ноды skeletonblend между т-позой и анимированной позой (около 15 кадров). первый ключ параметра weight ставится на т-позу, а второй на анимированную
в ноде skeletonblend нужно указать, что мы забираем данные только по ротейту костей (либо по rotate и translate)
по определению данные с одного скелета на другой переносятся через аттрибут name, поэтому необходимо иметь одинаковые наименования на всех костях
pin group animation
если необходимо, чтобы часть геометрии оставалась статичной и не сползала (как, например, резинка на штанах), то эта часть выделяется отдельной группой (pin)
однако если просто запиннить ее, то выйдет, что точки остаются на месте, поэтому анимация на этот участок передается отдельно через point deform где на 1 вход одежда, 2 - timeshift первого кадра анимации, 3 - анимированный коллайдер, после чего это передается в солвере в advanced - target sop path
также необходимо создать vellum pin constraint, в котором будет указана эта группа и проставлена галочка match animation
настройка параметров солвера и констрейнов
общий принцип разделения:
для каждой части констрейны настраиваются отдельно, попарно совмещаются и подаются в солвер
верх - отдельно, низ - отдельно, шнурки/ремни - отдельно
vellum constraints — это условие, которое определяет, как элементы симуляции взаимодействуют друг с другом и сохраняют физические свойства, например, жёсткость, растяжение, изгиб и давление
визуализация pin to target constraint
констрейнты выделяются в виде сфер или линий на тех участках, где они действуют
substeps - это дополнительные промежуточные вычислительные шаги, которые делят основной временной шаг симуляции на более мелкие части. помогают повысить точность и стабильность расчёта динамики ткани
constraint iterations - количество проходов, которые выполняются для решения физических ограничений (constraints) на каждом сабстепе симуляции. чем больше значение, тем точнее и стабильнее будет симуляция, особенно при работе с жёсткими ограничениями
substeps / constraint iterations
увеличение сабстепов и констрейнтов влияет на создание более упругой и устойчивой одежды, однако увеличивает время просчета симуляции
увеличение сабстепов более задерживает симуляцию, чем увеличение констрейнтов, но дает более точный результат
bend - это жесткость изгиба, параметр контролирует сопротивление ткани или объекта сгибанию и образованию складок




