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

«Олли потерялся», 2022. Режиссер Питер Рэмзи. Анализ референса для грума
Характер шерсти, которая изображена в сериале "Олли потерялся" на персонаже по имени Рози довольно близок к тому, что предполагается в этом туториале. На изображении видно то, как примерно могут выглядеть в будущем направляющие гайды.
Важно отметить: 1 / Кудрявость придает яркость персонажу 2 / Длина шерсти позволяет менее проблемно анимировать персонажа и впоследствии создавать симуляцию и рендер. Это же возможно упростит задачу с определением направления участков волос, так как, скорее всего, в большинстве областей шерсть не мешает другим элементам. 3 / Выразительные черты (отмечены стрелками на изображении) в виде порванного уха, пришитых лапок с различным грумом и заплатки несомненно повлияют на грум и разнообразят его.

«Третий лишний», 2012. Режиссер Сет Макфарлейн. Анализ референса для грума
Характер шерсти, которая изображена в фильме «Третий Лишний» на персонаже по имени Тэд имеет более явные направляющие и заметную, но при этом оптимальную длину.
Важно отметить: 1 / Реалистичность шерсти и шейдеров 2 / Толщину волосинок, которая часто встречается у плюшевых игрушек на полках магазинов. 3 / Проработку шерсти на мордочке, на которой заметно разделение на швы рта, при том что сами швы не видны. 4 / Ткань, просвечивающую на животе. Такое решение может разнообразить грум или скрывать неравномерное распределение волос.
«История игрушек: Большой побег», 2010. Режиссер Ли Анкрич. Анализ референса для грума
Шерсть, которая изображена на персонаже по имени Лотсо в мультфильме «История игрушек» очень выразительна и имеет довольно очевидные направляющие.
Важно отметить: 1 / Клампы явно читаются, это вместе с шейдерами дает характерную стилизацию грума. 2 / Контраст в цветах, характере, длине грума в разных областях персонажа: нежная, спокойная и аккуратная короткая белая шерсть в сочетании с длинной ярко-розовой шерстью, поделенной на явные кластеры. 3 / Клампы на животе также имеют интересную геометрию и придают еще больший эффект стилизации персонажа.
2. Подготовка модели
Для того, чтобы правильно создать маски и грум, необходимо подготовить импортированную модель.
1 / Импортируем модель в Houdini, сверяем размеры. 2 / Подключаем к импортированной модели три Null-ноды, чтобы создать выходы для последующих манипуляций. Не забываем про нейминг. 3 / В ноде VDB from Polygons меняем параметр Voxel Size до тех пор, пока VDB-модель почти полностью совпадет по объему и важным элементам с импортированной моделью.


Подготовка модели
Imported model -> VDB (voxel size 0.01) -> VDB (voxel size 0.001)
3. Создание масок
Для того, чтобы правильно распределить различные типы шерсти и как-то разграничить волосяной покров, важно создать маски, отвечающие за те или иные области грума. Для данного этапа полезными для применения нодами являются:
1 / Attribute Create: создает атрибут-маску и название 2 / Attribute Paint: позволяет рисовать/стирать маски 3 / Attribute Combine: комбинирует разные маски, зачастую используется для операции вычитания
Создание группы для атрибута density
Для удобства необходимо создать маску density, которая будет определять места, в которых шерсть отсутствует или присутствует. В данном примере удобнее это сделать через создание группы, а не вручную.
1 / К импортированной модели подключаем ноду group, определяем название (Name) и выбираем те участки, которые никак не будут участвовать в процессе грума: в данном примере это швы, нос, глаза, пальцы.
2 / Далее подключаем ноду Attribute Create, выбираем созданную ранее группу (hair_goup) и выставляем значение value = 1
Как включить видимость маски: навести курсор на ноду -> info -> mask on
После создания маски density необходимо создать маски для каждой части грума. Ниже будет представлен пример создания отдельной маски для тела персонажа с использованием Attribute Paint и Attribute Combine.
1 / Создаем ноду Attribute Create, даем название атрибуту (body) и выставляем значение value = 0
2 / Создаем ноду Attribute Paint, во вкладке Attributes выбираем Attribute Name, созданное ранее (body), включаем по необходимости симметрию и настраиваем параметры кисти. Соответственно, если FG float = 1, кисть рисует маску, если FG float = 0 - нет. Параметр shape выбирается по удобству.
3 / Рисуем маску: можно заметить, что кисть заходит на ненужные части (швы, пальцы) - для этого существует нода Attribute Combine.
4 / Создаем ноду Attribute Combine, c помощью которой можно вычитать/умножать/добавлять различные маски. В данном примере Destination
- маска body, Source - density, Operation - multiply
Настройки: attribute create -> attribute paint -> attribute combine
Таким образом необходимо создать маски для различных частей грума, это зависит от предпочтений пользователя, его целей и предполагаемых видов шерсти и шейдеров. В данном примере будут выделены следующие области:
0 / все области грума - density 1 / тело с длинной шерстью - body 2 / области вокруг швов на теле - body_seams 3 / хвост - tail 4 / короткий мех на животе - stomach_short 5 / короткий мех на ступнях - feet_short 6 / часть головы с длинной шерстью - head 7 / уши с короткой шерстью - ears_short 9 / мордочка с короткой шерстью - face_short 10 / области вокруг швов на голове - head_seams 11 / области вокруг швов на бровях - brow_seams 12 / области вокруг рта - mouth_seams 13 / отверстие для петарды - hole
Маски, на которые разбита геометрия
4. Создание гайдов — Guide Groom
Следующим этапом создания шерсти является создание гайдов с помощью ноды Guide Groom. В самой ноде надо обратить внимание на следующие параметры:
1 / Rest Skin Source - здесь должен быть указан путь
к нулю рестовой геометрии.
2 / Rest Skin VDB - здесь должен быть указан путь
к нулю VDB.
3 / Density - тут регулируется количество
и расположение гайдов. В данном случае оставим количество дефолтным. Также важно поменять
при работе с масками параметр "No Override"
на "Skin Attribute".
4 / Create Guides в данном примере стоит отключить.
5 / Density Attribute - важно выбрать необходимую для грума маску (в примере - body).
6 / Length - длина гайдов, оставляем дефолтным.
7 / Display as subdivision curves - отключить
для удобства.
Настройка ноды guide groom
Далее ныряем внутрь ноды Guide Groom
На видео-инструкции ниже продемонстрировано начало работы внутри ноды Guide Groom:
1 / Разделяем ветки с выходами Skin VDB, Skin и Guides. 2 / Подключаем ноду Hair Generate к выходу Guides, при этом на вход подаем выход Skin, упакованный в ноду Object Merge для удобства. 3 / В ноде Hair Generate выставляем значение Total Count, выбираем нужную маску в параметре Density Attribute (маска body) и убираем галочку с параметра Use Guides. 4 / В ноде Hair Generate также можно выставить любую удобную толщину гайда (Thickness Attribute) или убрать совсем.




