Исходный размер 1140x1600

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

Для удобства презентации поставим в сцене циклораму с освещением.

big
Исходный размер 1489x1025

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

big
Исходный размер 1880x700

Content Browser UE 5

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

Сцена с персонажем и циклорамой

Чтобы осуществить импорт грума, подключаем плагины Groom и Alembic Groom Importer. Волосы приходят в проект отдельно от персонажа, и их можно подогнать во вьюпорте по координатам. Пока что на них нет материала.

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

Подключение плагинов

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

Подключение плагинов

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

Грум во вьюпорте Unreal Engine

Если зайти в настройки ассета (в Content Browser ассет волос обозначается как грум), то здесь можно поварьировать параметры, например, толщину кончика или корня волос.
Тут же сталкиваемся с первой проблемой: волосы проросли насквозь головы, и это портит эстетику, хотя в Maya маска роста волос была сделана правильно и сохранена на диск, а гайды не проходили через меш. В дальнейшем можно попытаться поискать решение такого вопроса.

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

Настройки ассета грума

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

Волосы, проросшие насквозь

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

Волосы, проросшие насквозь

Следующей проблемой стал выбор способа соединения меша персонажа и грума, ведь они пришли в проект по отдельности. Для этого был создан блюпринт, в который добавлен скелетный меш бота и грум. Отельно был создан HeadSocket на кость, которая вращает голову. HeadSocket — это кластер, к которому был привязан грум. Далее внутри блюпринта можно подвинуть прическу так, чтобы она точно прилегала к голове, а в настройках физического ассета тела бота настроить капсулы физики (которые определяют зону коллизии). Теперь волосы двигаются синхронно с костью головы.

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

Создание Head Socket на джоинте

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

Причёска и меш внутри блюпринта

Остаётся добавить симуляцию. В настройках грума есть пункт Enable Simulation. Здесь нужно поставить галочку. Чтобы проверить, насколько правильно она работает, возвращаемся в блюпринт персонажа и видим, что амплитуда слишком большая. Далее эта проблема решается долгим подбором значений в параметрах симуляции, а чтобы волосы не пересекали меш головы, нужно грамотно поставить коллизию. С первого раза сделать такое очень трудно. Но уже заметно, что симуляция работает, а значит, можно сделать её физически корректной.

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

Подключение симуляции к груму

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

Изменение размеров капсул коллизии

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

Чрезмерно высокая амплитуда симуляции

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

Добавление персонажа в секвенсер для записи анимации

Исходный размер 3840x1600

Пример физики грума внутри Maya XGen. «Холодное сердце 2», 2019, Disney.

Модуль MetaHuman для UE5 позволяет создавать цифровых аватаров для внедрения в движок. Волосы MetaHuman представляют собой чистый грум, поддерживаемый плагином Groom. Следовательно, движок в принципе способен выдерживать нагрузку от грума, но метахьюман слишком тяжёл для геймдева.

Исходный размер 1200x600

Модели из MetaHuman

С плашками ситуация выглядит ещё интереснее. Их нужно импортировать в движок как скелетный меш. Для этого пришлось достроить дополнительные джоинты от головы и прискинить их к мешу плашек.

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

Экспорт частей персонажа из Maya в формате .fbx

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

Работа над скином в Blender

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

Работа над скином в Blender

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

Работа над скином в Blender

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

Работа над скином в Blender

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

После распределения весов в скине меш причёски движется вместе с костью головы

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