Симуляция / динамика волос в Houdini
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

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

Основные подходы к симуляции волос в Houdini

Houdini предоставляет несколько методов для симуляции волос, каждый из которых имеет свои преимущества и ограничения. Наиболее актуальным и используемым в современных производственных конвейерах является система Vellum Hair, представляющая собой позиционно-базированный решатель динамики (position-based dynamics), который обеспечивает высокую стабильность и предсказуемость при работе со стилизованной геометрией волос.

Альтернативными подходами являются использование Wire Solver для симуляции волос как проволочных структур и POP Solver для частичной симуляции через систему частиц. Однако для задачи данного исследования, предполагающей работу с готовой прической стилизованной геометрией, наиболее эффективным решением является Vellum Hair благодаря его встроенной поддержке кривых, лучшей интеграции с гайдами волос и возможностью прямого применения ограничений (constraints) к направляющим кривым.

big
Original size 1782x587

Нода для симуляции волос «vellum solver»

Подготовка геометрии и инициализация симуляции

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

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

Original size 800x418

Слияние трансформа и анимации на персонаже с помощью ноды «blendshape»

На первом этапе необходимо убедиться, что направляющие кривые волос правильно подготовлены. Кривые должны быть представлены в формате полилиний (polylines) с достаточным количеством точек для обеспечения гладкого движения, однако избыточная плотность точек может привести к замедлению вычислений. Оптимальное количество точек на кривую составляет 10-20 вершин в зависимости от длины и сложности причёски.

Использование Guide Deform для следования за анимированной геометрией

При работе с анимированным персонажем критически важно использовать Guide Deform вместо простого «Attach to Geometry» ограничения. Это связано с тем, что простое крепление действует как шарнир без трения, позволяя волосам вращаться вокруг точки крепления без сохранения ориентации относительно скальпа.​

Guide Deform выполняет жёсткую деформацию направляющих кривых в соответствии с движением скальпа ДО начала симуляции Vellum.

Это обеспечивает: ​ - Сохранение ориентации волос относительно движения головы​ - Естественное поведение волос при движениях персонажа​ - Стабильную и предсказуемую симуляцию

post

Таким образом, после создания анимированной геометрии и гайдов — в два последних входа «GuideDeform» подключаются необходимые данные, которые будут вести кайды за геометрией с анимацией.

Преобразование в Vellum-конфигурацию

post

Далее подключается узел «GuideSim», в котором будет происходить влияние физики на направляющие. При этом для контроля физики создается отдельный контейнер геометрии, где вручную настраиваются параметры солвера.

При создании симуляции в контейнере необходимо предварительно распаковать грум, который был сделан до этого. Нода «unpackgroom» создает возможность 4-х выходов информации, которая необходима в отдельном объеме для симуляции в солвере.

Original size 1920x780

Подключение Vellum constraints (Hair) с базовыми настройками

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

Конфигурация ограничений и закрепления

Создание группы точек для корней волос (обычно первая или несколько первых вершин каждой кривой) через узел Group.​​

Original size 1920x812

Создание дополнительной ноды «group expression» в Guide Groom, которая несет информацию только от начальных точках каждого волоса

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

Original size 1920x812

Прикрепление корневых точек («pin») с помощью ноды vellum constraints («pin to target»)

Применение узла Vellum Constraints в режиме «Pin to Target» с типом ограничения «Soft» для получения управляемой жёсткости.​

Активация опции «Match Animation» для автоматической синхронизации с анимацией персонажа.

Pin-ограничения (закрепление корней) Для обеспечения того, чтобы волосы оставались закреплены на скальпе и не падали, необходимо использовать Pin-ограничения (pin constraints) на корни волос. По умолчанию Vellum Configure Hair предлагает вариант простого закрепления точек, однако это может быть недостаточным для сложных причёсок с движущейся головой.​​

Оптимальный подход предполагает использование Soft Pin-ограничений («мягкое» закрепление) с опцией «Pin to Animation». Этот метод позволяет корням волос следовать за движением скальпа, сохраняя при этом жёсткую фиксацию в локальном пространстве.

Настройка параметров Vellum Solver

post

Bend Stiffness контролирует, насколько жёсткой является каждая волосяная прядь на изгиб. Для стилизованных причёсок с чётко определённой формой рекомендуются значения в диапазоне 10,000 — 100,000. Однако важное замечание: если увеличение Bend Stiffness на порядки величин не приводит к видимым изменениям в симуляции, это указывает на недостаточное количество iterations (итераций) констрейнтов в солвере.​

Критическое открытие, выявленное в исследовании, заключается в том, что увеличение Bend Stiffness в 10 раз не приводит к видимому эффекту при недостаточном количестве constraint iterations. Решением является увеличение Constraint Iterations в солвере с значения по умолчанию (обычно 100) до 500-2000 в зависимости от сложности прически.​

Stretch Stiffness предотвращает нежелательное растяжение волос и должен быть установлен на очень высокое значение (100,000 — 10,000,000) для обеспечения правдоподобного поведения. Однако слишком высокие значения могут привести к нестабильности, особенно при высокой скорости движения или интенсивных коллизиях.​

Управление силами и взаимодействиями

post

Гравитация по умолчанию установлена на -10 м/с² и обеспечивает естественное падение волос под действием силы тяжести. Эта величина обычно не требует изменения для стандартных сцен.

Wind Strength (напряжение ветра): 0.1 — 1.0 для субтильного эффекта, 1.0 — 5.0 для более явного воздействия ветра​

Noise Amplitude (амплитуда шума): 0.1 — 0.5 для создания турбулентного, непредсказуемого движения​

Noise Frequency (частота шума): 0.5 — 2.0 для управления скоростью изменения ветра

Параметр Velocity Damping (гашение скорости) в Vellum Solver управляет тем, как быстро энергия движения рассеивается из симуляции. Низкие значения (0.01 — 0.05) сохраняют больше энергии и приводят к долгому «звону» волос после движения. Высокие значения (0.1 — 0.3) быстро демпфируют движение, придавая волосам более «влажный» или «под водой» вид.

Кэширование и оптимизация вычислений

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

post

Была разработана стратегия переноса атрибутов позиции и скорости засимулированный направляющих, на направляющие в статичном виде. С помощью ноды «Attribute Copy» были перенесены параметры «P» и «v».

Original size 800x450

Кэшированные направляющие с физическими свойствами «vellum solver» (Hair)

Симуляция волос в Houdini с использованием Vellum Hair представляет собой мощный и гибкий инструмент для достижения физически обоснованной динамики волос при сохранении высокого уровня контроля для стилизованных причёсок. Ключ к успешной симуляции лежит в тщательной балансировке между физической точностью и художественным намерением, а также в систематической отладке параметров солвера для достижения стабильного и воспроизводимого результата. Правильное использование ограничений, особенно Guide Deform для следования за анимацией персонажа, обеспечивает интеграцию симуляции с движением персонажа. Установка адекватных параметров коллизий и сил позволяет получить реалистичное поведение волос при взаимодействии с окружающей геометрией.

Симуляция / динамика волос в Houdini
Chapter:
3
4
5
6
7
We use cookies to improve the operation of the website and to enhance its usability. More detailed information on the use of cookies can be fo...
Show more