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

1. Подготовка и анализ референсов

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

big
Исходный размер 1500x628

«Олли потерялся», 2022. Режиссер Питер Рэмзи. Анализ референса для грума

Характер шерсти, которая изображена в сериале "Олли потерялся" на персонаже по имени Рози довольно близок к тому, что предполагается в этом туториале. На изображении видно то, как примерно могут выглядеть в будущем направляющие гайды.

Важно отметить: 1 / Кудрявость придает яркость персонажу 2 / Длина шерсти позволяет менее проблемно анимировать персонажа и впоследствии создавать симуляцию и рендер. Это же возможно упростит задачу с определением направления участков волос, так как, скорее всего, в большинстве областей шерсть не мешает другим элементам. 3 / Выразительные черты (отмечены стрелками на изображении) в виде порванного уха, пришитых лапок с различным грумом и заплатки несомненно повлияют на грум и разнообразят его.

big
Исходный размер 1500x804

«Третий лишний», 2012. Режиссер Сет Макфарлейн. Анализ референса для грума

Характер шерсти, которая изображена в фильме «Третий Лишний» на персонаже по имени Тэд имеет более явные направляющие и заметную, но при этом оптимальную длину.

Важно отметить: 1 / Реалистичность шерсти и шейдеров 2 / Толщину волосинок, которая часто встречается у плюшевых игрушек на полках магазинов. 3 / Проработку шерсти на мордочке, на которой заметно разделение на швы рта, при том что сами швы не видны. 4 / Ткань, просвечивающую на животе. Такое решение может разнообразить грум или скрывать неравномерное распределение волос.

Исходный размер 1105x621

«История игрушек: Большой побег», 2010. Режиссер Ли Анкрич. Анализ референса для грума

Шерсть, которая изображена на персонаже по имени Лотсо в мультфильме «История игрушек» очень выразительна и имеет довольно очевидные направляющие.

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

2. Подготовка модели

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

1 / Импортируем модель в Houdini, сверяем размеры. 2 / Подключаем к импортированной модели три Null-ноды, чтобы создать выходы для последующих манипуляций. Не забываем про нейминг. 3 / В ноде VDB from Polygons меняем параметр Voxel Size до тех пор, пока VDB-модель почти полностью совпадет по объему и важным элементам с импортированной моделью.

Подготовка модели

Исходный размер 1920x714

Imported model -> VDB (voxel size 0.01) -> VDB (voxel size 0.001)

3. Создание масок

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

1 / Attribute Create: создает атрибут-маску и название 2 / Attribute Paint: позволяет рисовать/стирать маски 3 / Attribute Combine: комбинирует разные маски, зачастую используется для операции вычитания

Исходный размер 2560x1364

Создание группы для атрибута density

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

1 / К импортированной модели подключаем ноду group, определяем название (Name) и выбираем те участки, которые никак не будут участвовать в процессе грума: в данном примере это швы, нос, глаза, пальцы.

2 / Далее подключаем ноду Attribute Create, выбираем созданную ранее группу (hair_goup) и выставляем значение value = 1

Исходный размер 2560x1364

Как включить видимость маски: навести курсор на ноду -> info -> mask on

Loading...

После создания маски density необходимо создать маски для каждой части грума. Ниже будет представлен пример создания отдельной маски для тела персонажа с использованием Attribute Paint и Attribute Combine.

Loading...

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
Исходный размер 2560x1364

Настройки: 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

Исходный размер 2230x838

Маски, на которые разбита геометрия

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 - отключить для удобства.

Исходный размер 2555x1362

Настройка ноды 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) или убрать совсем.

Loading...
Глава:
1
2
3
4
5
Мы используем файлы cookies для улучшения работы сайта НИУ ВШЭ и большего удобства его использования. Более подробную...
Показать больше