Далее приступаем к работе с игровым движком. Создаём проект, внутри которого будут два уровня: в одном будут производиться тесты грума, а в другом — тесты real-time волос.
Для удобства презентации поставим в сцене циклораму с освещением.

Окно управления проектами UE 5

Content Browser UE 5

Сцена с персонажем и циклорамой
Чтобы осуществить импорт грума, подключаем плагины Groom и Alembic Groom Importer. Волосы приходят в проект отдельно от персонажа, и их можно подогнать во вьюпорте по координатам. Пока что на них нет материала.
Подключение плагинов
Подключение плагинов
Грум во вьюпорте Unreal Engine
Если зайти в настройки ассета (в Content Browser ассет волос обозначается как грум), то здесь можно поварьировать параметры, например, толщину кончика или корня волос.
Тут же сталкиваемся с первой проблемой: волосы проросли насквозь головы, и это портит эстетику, хотя в Maya маска роста волос была сделана правильно
и сохранена на диск, а гайды не проходили через меш.
В дальнейшем можно попытаться поискать решение такого вопроса.
Настройки ассета грума
Волосы, проросшие насквозь
Волосы, проросшие насквозь
Следующей проблемой стал выбор способа соединения меша персонажа и грума, ведь они пришли в проект по отдельности. Для этого был создан блюпринт, в который добавлен скелетный меш бота и грум. Отельно был создан HeadSocket на кость, которая вращает голову. HeadSocket — это кластер, к которому был привязан грум. Далее внутри блюпринта можно подвинуть прическу так, чтобы она точно прилегала к голове, а в настройках физического ассета тела бота настроить капсулы физики (которые определяют зону коллизии). Теперь волосы двигаются синхронно с костью головы.
Создание Head Socket на джоинте
Причёска и меш внутри блюпринта
Остаётся добавить симуляцию. В настройках грума есть пункт Enable Simulation. Здесь нужно поставить галочку. Чтобы проверить, насколько правильно она работает, возвращаемся в блюпринт персонажа и видим, что амплитуда слишком большая. Далее эта проблема решается долгим подбором значений в параметрах симуляции, а чтобы волосы не пересекали меш головы, нужно грамотно поставить коллизию. С первого раза сделать такое очень трудно. Но уже заметно, что симуляция работает, а значит, можно сделать её физически корректной.
Подключение симуляции к груму
Изменение размеров капсул коллизии
Чрезмерно высокая амплитуда симуляции
Добавление персонажа в секвенсер для записи анимации
Пример физики грума внутри Maya XGen. «Холодное сердце 2», 2019, Disney.
Модуль MetaHuman для UE5 позволяет создавать цифровых аватаров для внедрения в движок. Волосы MetaHuman представляют собой чистый грум, поддерживаемый плагином Groom. Следовательно, движок в принципе способен выдерживать нагрузку от грума, но метахьюман слишком тяжёл для геймдева.
Модели из MetaHuman
С плашками ситуация выглядит ещё интереснее. Их нужно импортировать в движок как скелетный меш. Для этого пришлось достроить дополнительные джоинты от головы и прискинить их к мешу плашек.
Экспорт частей персонажа из Maya в формате .fbx
Работа над скином в Blender
Работа над скином в Blender
Работа над скином в Blender
Работа над скином в Blender
После распределения весов в скине меш причёски движется вместе с костью головы




