
Данный раздел посвящён попытке автора создать волосы с помощью инструмента Maya XGen.
В качестве болванки можно взять готового персонажа с ригом, к примеру, с доступного ресурса Mixamo. На риг в дальнейшем можно будет записать анимацию, чтобы проверить, как поведут себя волосы в движке, когда к ним будет подключена физика.
Для тестов подойдёт X-bot, сохраняем его в Т-позе в формате .fbx.

Главная страница сайта базы анимаций Mixamo

Скачивание персонажа X-Bot

Скачивание персонажа X-Bot
Для симуляций XGen важно установить папку проекта с системой подпапок.
Окно установки проекта в Autodesk Maya
Содержимое папки проекта
После того как проект установлен, можно импортировать персонажа. Назначим ему новые материалы (выделяем персонажа в аутлайнере и с зажатой правой клавишей мыши выбираем Assign New Material, затем справа в attribute editor находим вкладку материала, подбираем цвет и задаём дополнительные настройки в случае необходимости).
X-Bot во вьюпорте программы Autodesk Maya
X-Bot с новыми материалами
Далее нужно дублировать меш с головой персонажа. Один из полученных мешей скрывается во вьюпорте с помощью комбинации клавиш Ctrl+H, а другой остаётся. Для удобства работы рекомендуется соблюдать правильный нейминг: скрытый меш называем, например, Char_Head_geo, а видимый — Char_Scalp_geo.
Первое слово — это чаще всего название проекта, второе — часть работы, например, какая-либо деталь модели, geo — префикс для обозначения геометрии в аутлайнере.
X-Bot с двойным мешем
Почему важно отделить просто меш персонажа от непосредственно скальпа? Гайдам в модуле XGen нужна полигональная привязка, и эту информацию они будут брать из меша скальпа. Он несёт исключительно техническую функцию, и вероятнее всего не пойдёт в экспорт, поэтому на финальных этапах работы над волосами его можно будет удалить.
Более того, меш скальпа не отображается на рендере в Maya — это можно проверить, если поставить любой источник света и открыть окно Render View.
Рендеру поддаётся только стандартный меш головы, и если включить его видимость (Shift + H), то можно посмотреть, как выглядит грум на цельном персонаже.
Скальп в окне рендера
Рендер меша, не привязанного к гайдам
После того, как меш сдублирован и правильно переименован, выбираем скальп и переходим в режим выделения полигонов: для этого при активном выделении нужно зажать правую клавишу мыши и выбрать режим Face.
Выбираем те полигоны, в которых приблизительно будет располагаться область роста волос (не запрещается выбрать большее количество полигонов).
Переход в режим Face
Выделение шапки из полигонов
Далее в верхней вкладке Generate выбираем Create Description. Дескрипция, или описание — это набор информации о том или ином типе волос, где будут заданы параметры и характерные особенности самой структуры волоса. На одном персонаже может находиться несколько дескрипций, и они все сохраняются в одну или несколько коллекций.
Сложные причёски могут состоять из нескольких дескрипций. К примеру, чёлка Ваниллопы — это одно описание, основная масса волос — второе описание, и третье описание — хвост. «Ральф против интернета»
Создание дескрипции для головы
Во вьюпорте появляется окно Create XGen Description. Здесь необходимо указать название нового описания и название коллекции, которую программа тут же автоматически создаст и в которую будут сохраняться новые описания. Также меняем настройки в последнем меню Control the primitives by. По дефолту здесь стоит настройка Using attributes controlled by expressions — она задаёт форму причёски через методы, а этот процесс очень сложен и требует дополнительных навыков. Вместо этого выбираем мод Placing and shaping guides, он наиболее распространённый. После нажатия Create справа во вьюпорте появляется меню настроек XGen. Если его нет, то его можно вызвать искусственно через Windows — Modeling Editors — Xgen Editor.
Настройки описания
Теперь можно работать с гайдами. На панели настроек над вьюпортом есть вкладка инструментов XGen, а также их можно брать из бокового меню — это зависит от того, кому как комфортнее работать. Выбираем инструмент Add guides и начинаем создавать гайды — условные линии, которые отвечают за направление роста волос. Их можно редактировать с помощью гизмо: например, скалировать или поворачивать. Ещё их можно скульптить. Для этого в плашке инструментов есть Sculpt Giudes. В режиме скульптинга гайды редактируются по аналогии с векторной линией, то есть они состоят из точек (Control Vertices, или CV).
Первый гайд на голове
Управление гайдом через гизмо
По дефолту гайд состоит из пяти контрольных точек, но их количество можно перестроить в боковом меню для каждого гайда. Чем больше точек, тем более детализирована причёска. На этом пункте возникает первая проблема. Так как данное исследование в некоторой степени посвящено уровню оптимизации того или иного способа симуляции волос, то можно предположить, что количество контрольных точек влияет на нагрузку, которую в дальнейшем грум окажет на игровой движок. Таким образом, контрольные точки — это один из параметров, от которых зависит вес файла. И в то же время, он отвечает за качество. В детализированных причёсках количество точек вполне может быть равным 20, 40 или 60.
Увеличение количества контрольных точек
Гайды с увеличенным количеством точек
Скульптинг гайда
Размещая гайды и модифицируя их, можно собрать любую причёску. Но важно помнить, что гайды обозначают только характер причёски и направление роста волос, а не их количество. Этот параметр уже настраивается в боковом меню в разделе Density. Назначение плотности также требует внимательности, потому что слишком большое количество волосков может сделать причёску неестественной, а слишком маленькое — лишить её объёма, вызвав «проплешины» в некоторых местах, например, в нижних слоях причёски. После того, как гайды поставлены на скальп, здесь сразу же появляется превью волос.
Несколько гайдов
Превью волос
Редактирование гайдов
Превью волос на разных этапах редактирования
Превью волос на разных этапах редактирования
Превью волос на разных этапах редактирования
Форма причёски, полученная в результате работы с гайдами
Форма причёски, полученная в результате работы с гайдами
Форма причёски, полученная в результате работы с гайдами
Форма причёски, полученная в результате работы с гайдами
Как только гайды установлены на скальп, приступаем к следующему этапу — созданию региональной маски (Region Map), которая дополнительно задаст направления роста массе волос и обозначит, какие зоны попадут под влияние того или иного гайда. Изначально цвет общей карты — красный, и чтобы покрасить зону влияния, нужно выбрать контрастный цвет в окне настроек кисточки.
Работа над региональной маской
Если причёска уже сформирована, и на ней нет ошибок или багов, нужно настроить характеристики самих волосков — их общую толщину, а также отдельно толщину у корня и толщину кончиков. После этого можно приступать к наложению модификаторов, которые придают ещё большую живость волосам. Самые базовые модификаторы: Clumping, Coil, Cut, Noise.
Окно модификаторов
Первый модификатор — это чаще всего Clumping, который отвечает за пучкование. После добавления в окно модификаторов, его нужно сохранить в карту. Здесь можно настроить её запись на свой вкус: сгенерировать по собственным значениям или же задать пучкование относительно расположенных на скальпе гайдов. После сохранения карты на диск можно отрегулировать интенсивность пучкования. Модификаторы можно наслаивать друг на друга, например, добавить второй модификатор пучкования, но с другими настройками.
Пучкование по направляющим
Пример пучкования по гайдам. «Город героев», 2014, Walt Disney Animation Studios.
Clumping позволяет создать эффект «анимешных» волос. «Город героев», 2014, Disney.
Генерация карты Clumping
Другой модификатор — Cut, отвечает за длину волос. Её можно сделать неравномерной, чтобы волосы выглядели естественными. Для этого можно воспользоваться функцией rand (), где указывается диапазон, из которого волосы будут забирать значение параметра.
Модификатор Coil завивает волос, а модификатор Noise добавляет выбившиеся волоски. Для усиления эффекта выбившихся волос можно использовать выражение stray () внутри модификатора, предварительно указав процент Stray в разделе Descriptions — Set Stray Percentage. Лучший атрибут внутри модификатора для установки Stray — маска.
Установка процента Stray
Модификатор Noise
Модификатор coil превращает прямые волосы в завитки. «Храбрая сердцем», 2012, Pixar Animation Studios.
«Шумовые» шерстинки на мордочке Джуди Хоппс. «Зверополис», 2014, Disney.
Ещё один важный элемент в работе с грумом — разграничение зоны, в которой будут расти волосы, и зоны, где их не должно быть. В боковом меню сразу же под настройками Density есть параметр Mask, где генерируется маска. Можно выбрать любой базовый цвет маски. Если выбираете чёрный базовый цвет, он будет блокирующим, а зона белого цвета будет обозначать область, в которой растут волосы. Маска редактируется в любой момент, но после каждых изменений важно сохранять её на диск. Из-за несоответствия расположения разных файлов проекта (в том числе маски), Maya может сломать проект, и превью волос не будет отображаться во вьюпорте.
Создание карты роста волос
Рисование карты волос
Благодаря карте Density можно ограничить зону роста волос и например, сделать такой ирокез. «Тролли: Мировой тур», 2020, DreamWorks Animation.
Рендер XGen в Maya — отдельный, уникальный элемент пайплана. Здесь нет универсального решения задачи, так как способов настроить рендер и материал существует огромное множество. В разделе материалов Hypershade содержится база пресетов материалов для волос Arnold, их можно накинуть на волосы сырыми или же закастомизировать, настроить распределение меланина или добавить градиент.
Также нет правил и ограничений в настройках рендера, наверное, главный критерий здесь — эстетика, техническое качество, грамотная подсветка и отсутствие шумов. Для презентации модели можно отрендерить волосы в любом модуле и софте, а если волосы создаются под движок, не обязательно создавать для них материал в Maya. В системе Unreal Engine также есть дефолтные пресеты материалов для волос, которые можно настроить под свой вкус и задачи.
Результат
Результат
Чтобы осуществить трансфер в движок, волосы конвертируются в формат Interactive Groom и экспортятся в формате Alembic. В процессе работы с грумом конструкционная история волос не чистится, так как этот процесс вызывает сбои.
Конвертация в интерактивный грум перед экспортом кэша
Это было краткое изложение базовых элементов пайплана волос в XGen. С точки зрения эстетики, XGen — это сильнейший инструмент для получения реалистичных волос. Он позволяет прорабатывать мельчайшие детали, шумы, выбившиеся волосы. Даже во вьюпорте заметны торчащие хаотичные мелкие волоски. Но при этом, как известно, XGen имеет большой информационный вес, так как симуляция состоит из ряда комплектующих: карт, гайдов, контрольных точек, значений на модификаторах и так далее. А качество причёски с эстетической стороны зависит от количества времени, потраченного на её создание, от подобранных индивидуальных параметров и от внимательного прохождения всех этапов пайплайна. В нашем случае волосы получились не совсем идеальными, но это даже плюс, потому что дополнительно можно будет взглянуть на ошибки внутри UE и проанализировать, какие параметры могут испортить симуляцию для движка.