26/09/2022

FaceBuilder x MetaHuman: Как перенести человека с фото в Unreal Engine

FaceBuilder x MetaHuman: Как перенести человека с фото в Unreal Engine

Всем привет! Меня зовут Андрей, команда KeenTools. Мы разрабатываем VFX-плагины для Blender и Foundry Nuke, а в геймдев и 3D-сообществах в первую очередь известны по аддону FaceBuilder, позволяющему быстро создавать 3D-модель головы человека по нескольким фотографиям. С выходом Mesh to MetaHuman, часть пользователей стала использовать наш аддон как основу для генерации метахуманов из реальных людей. Единственная загвоздка была в текстуре — Mesh to MetaHuman не позволяет переносить текстуру с загружаемой 3D-модели, только форму головы. 

Чтобы улучшить связку FaceBuilder с MetaHuman, в последнем обновлении (2022.2) мы добавили специальную UV-развёртку ‘mh’ — она полностью совпадает с развёрткой MetaHuman, её можно использовать для создания реалистичной текстуры со всеми деталями с фотографий, а после — оборачивать ей лицо метахумана в Unreal Engine. Кажется, таким образом получился самый простой способ перенести человека в игровой движок!
 

В этой статье мы коротко расскажем, как это можно сделать.

Создаем 3D модель в FaceBuilder

Для начала вам понадобится Blender и наш плагин — FaceBuilder. После установки аддона нажмите кнопку ‘Create a new head’ и загрузите несколько фотографий человека, чью голову вы хотите сделать. Список добавленных изображений появится справа во вкладке ‘Views’. Кликните на любое из них, и вы перейдёте в режим пиннинга, в котором нужно будет разместить сетку модели поверх головы на фотографии. Начать пиннинг можно либо вручную, либо нажав кнопку ‘Align face’. Мы рекомендуем использовать функцию Align face. FaceBuilder распознает ключевые точки лица на фотографии и расположит 3D модель так, чтобы она соответствовала положению головы в кадре — вам останется только подкорректировать результат, перемещая уже существующие точки (мы называем их пины) и создавая новые левым кликом мышки. Если вам понадобится удалить какие-то из пинов — это можно сделать правым кликом.

Отметим, что первые три пина задают положение и масштаб сетки, четвертая и последующие точки влияют на форму модели. Для лучшего результата не стоит стараться идеально разместить сетку на каждом фото с первого раза, сначала задайте примерное положение на всех фотографиях — уделите особое внимание точкам в углах рта, носа и глаз, не надо сразу же пытаться сделать идеальную форму головы. Как только черновой вариант пиннинга будет готов на всех изображениях, можно переключиться на детали лица и общую форму, пройдясь по всем фотографиям ещё пару раз. 

Создаём текстуру и экспортируем 3D модель

Когда 3D голова готова, можно перейти к созданию текстуры. Откройте вкладку ‘Texture’, выберите UV-развёртку ‘mh’ и задайте её размер с одинаковым соотношением сторон — так она будет совпадать со стандартной развёрткой MetaHuman. Далее нажмите ‘Create texture’ и экспортируйте 3D модель в формате FBX при помощи кнопки ‘Export as FBX’ на ‘Blendshapes’ панели. Не забудьте также сохранить текстуру в формате PNG, нажав ‘Export’ на панели ‘Texture’.

Переносим модель в Mesh to MetaHuman

Теперь в дело вступает Unreal Engine. Создайте сцену с пустой сценой (‘Blank’) и загрузите экспортированный FBX-файл вместе с текстурой. 

Убедитесь, что у вас уже установлен плагин Mesh to MetaHuman. В нём создайте ассет MetaHuman Identity, дайте ему имя, откройте его и выберите ваш FBX-файл во вкладке 'Components from Mesh’. На этом этапе для большего удобства мы советуем сузить угол обзора до 20 градусов — так лицо будет меньше искажаться. Расположите камеру так, чтобы вид был фронтальным и запустите автотрекинг — спустя небольшое время на модели появятся лэндмарки (ключевые точки лица). Заблокируйте камеру, проверьте, что все лэндмарки размещены корректно и нажмите ‘Identity Solve’. 

В результате у вас получится модель MetaHuman на основе меша из FaceBuilder. Если какие-то детали перенеслись на модель некорректно, ничего страшного — просто поверните камеру так, чтобы проблемная часть головы или лица была хорошо видна, нажмите кнопку ‘+’ для создания кейфрейма и заново запустите автотрекинг. Поправьте лэндмарки вручную, чтобы они правильно лежали на геометрии, и нажмите ‘Identity Solve’. 

Осталось выбрать для модели тело из выпадающего списка слева. После этого нажмите кнопку ‘Mesh to MetaHuman’, и модель загрузится в онлайн-редактор MetaHuman.

Настраиваем внешний вид персонажа в MetaHuman Creator

Пришло время для кастомизации вашего персонажа: подберите ему подходящий цвет кожи, глаз, волос и так далее.

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

Подготавливаем текстуру для MetaHuman в Photoshop

В MetaHuman используются 4 текстуры для разных выражений лица, включая нейтральное. Наша задача — создать новый набор текстур, объединив каждую из них с созданной ранее в FaceBuilder.

Для этого мы переходим в Photoshop и загружаем текстуры из обеих программ. Если вы задали одинаковое соотношение сторон UV-развертки в FaceBuilder, то расположение частей лица на ней и на текстурах MetaHuman будет совпадать. Далее нужно выделить высокочастотные детали лица на текстуре из FaceBuilder. Для этого вычтите из исходной текстуры её размытую версию — чем сильнее размываем, тем больше деталей выделяем. Затем необходимо удалить высокочастотные детали лица со стандартной текстуры из MetaHuman, т.е. размыть текстуру в аналогичной области и наложить поверх детали, выделенные на предыдущем шаге. 

В итоге у вас получится текстура со всеми нюансами лица (веснушки, родинки, шрамы и так далее) человека с фотографий, но при этом без лишних деталей со стандартной текстуры MetaHuman

Добавляем новые текстуры в Unreal Engine

В Unreal Engine создайте сцену MetaHuman и загрузите своего персонажа из онлайн-редактора. После чего замените стандартных персонажей MetaHuman на созданного вами.

Последним шагом поменяйте стандартные текстуры поочерёдно для каждого выражения лица на созданные в Photoshop. 

В результате вы получите метахумана не только со схожей формой головы, но и с характерными особенностями кожи лица.

Скачать обновленный FaceBuilder можно на сайте.

Недавние статьи

Новая книга о разработке на UE5 и основах Blueprint

17/11/2022
Во-первых, перед нами — пособие по созданию игр и сцен на актуальной версии Unreal Engine 5, во-вторых, это наконец-то не переводная, а отечественная работа.

80 Level Job Digest: Great Positions for Artists & Game Designers

07/11/2022
7 крутых вакансий от Metaverse Game Studios, Flying Wild Hog, Streamline Studios, Moment, Bongfish, Roboto Games и The Gang.

Как дипломный проект стал путевкой в индустрию

24/10/2022
О приключенческой игре Jump Theory с аутичным мальчиком в главной роли мы уже писали. Рассказываем о прогрессе разработки, первых успехах и наградах.