Skills Up School
Меню

Нажмите ESC для закрытия

Hard Surface24 октября 2022 г.

Создание реалистичных объектов для игр класса ААА в Unreal Engine 5

Художник по 3D-пропеллерным объектам Шьямсагар С поделился подробным разбором проекта «Электрический генератор», объяснил, как была смоделирована и текстурирована модель, а также продемонстрировал процессы освещения и рендеринга в UE5.

Создание реалистичных объектов для игр класса ААА в Unreal Engine 5

Введение

В этой статье я расскажу об общем процессе создания изображения работающего электрического генератора, который хранится на улице, на земле, и повреждён из-за плохой погоды. Для создания проекта я использовал PureRef, Maya, Substance 3D Painter, Photoshop и Unreal Engine 5.

Планирование и график

Создание ассета планировалось на две недели. Здесь вы можете увидеть общую разбивку задач, выполненных за каждый день.

Создание реалистичных объектов для игр класса ААА в Unreal Engine 5 - изображение 1

Сбор референсов

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

Настройка Maya и белый ящик

Поскольку Unreal Engine использует левостороннюю систему координат Z-up, в Maya ось установлена на Z-up, а единицы измерения в окне просмотра — в сантиметрах (в Windows > Setting/preferences). Затем в окне просмотра сбрасываются настройки по умолчанию.

Для масштаба используется средний рост человека (примерно 170 см). Затем создаётся белый ящик в соответствии с реальными размерами этого конкретного электрического генератора, то есть 52x33x46 см, и он служит ограничивающим ящиком, чтобы мы не вышли за пределы масштаба.

Создание реалистичных объектов для игр класса ААА в Unreal Engine 5 - изображение 2

Настройка камер для базового сопоставления и блокировки

На этом этапе я использовал ручной подход к сопоставлению камер с несколькими изображениями с разных ракурсов, чтобы получить точность объёма и форм на уровне 80–90 %. Я не стремился к 100 % точности, так как не планировал делать цифровой двойник или проекцию текстуры. Однако я бы посоветовал, даже если это концепт-арт для одного изображения или реальная ссылка, полезно сделать быстрый подбор камеры и разместить все основные формы и объёмы, а затем уточнить их путём наблюдения.

  • Сначала я выбрал лучшие изображения из собранных референсов, подготовил их в виде изображения размером 1k и сделал приблизительное выравнивание, наложив одно на другое в PS и сохранив по одному. Это помогает сохранить одинаковые соотношения сторон для всех изображений.
  • Затем создаются все камеры с соответствующими именами и добавляются плоскости изображений. Для атрибутов плоскости изображения можно установить параметр отображения «Атрибуты плоскости изображения > просмотр через камеру», чтобы изображение было видно только для определённой камеры. Также можно увеличить «Размещение > Глубина», чтобы изображение располагалось за сеткой.
  • Здесь я помечаю грани базовой сетки с помощью цветового кодирования, чтобы легко идентифицировать и сопоставить переднюю и заднюю части объекта в перспективе с соответствующими плоскостями изображения камеры. Например, здесь поверхность красного цвета — это передняя часть генератора (обращённая к оси X), зелёного — левая, а синего — верхняя.
Создание реалистичных объектов для игр класса ААА в Unreal Engine 5 - изображение 3
  • Затем белый ящик/серый ящик выравнивается для первоначального сопоставления камеры. Иногда приходится регулировать фокусное расстояние, чтобы получить хорошее совпадение, а стандартное фокусное расстояние в 35 мм не подойдёт. Если у нас нет всех свойств изображения, таких как фокусное расстояние и т. д., требуется некоторая догадка. Для этого полезно изучить, как выглядят фотографии при определённых фокусных расстояниях, потому что искажения затрудняют понимание формы и объёма ассета для лучшего сопоставления камеры. В сети есть много ресурсов, объясняющих эту тему. Вот два примера.
Создание реалистичных объектов для игр класса ААА в Unreal Engine 5 - изображение 4
  • Используется двухпанельный вид: один для перспективы, другой для камер. Всё моделирование выполняется в перспективном виде, а каждая камера настраивается с помощью инструментов камеры, таких как трек, тележка, вращение и т. д. Камеры переключаются и проверяются одновременно для достижения хорошего совпадения. Я бы посоветовал не блокировать камеру, пока почти все камеры не будут совпадать. Всегда полезно начать подбор с больших и простых форм, таких как коробка или цилиндр, а затем перейти к деталям.
Создание реалистичных объектов для игр класса ААА в Unreal Engine 5 - изображение 5
  • После анализа референсов я увидел, что основную часть ассета можно сделать из четверти для базовых объёмов и формы, а затем позже сделать её уникальной. Я также добавляю петли, а затем применяю материалы к граням, чтобы различать разные панели и детали генератора.
  • На каждом этапе блокировки камера настраивается и сопоставляется, а также прорабатываются основные детали. Также полезно проанализировать, сколько треугольных полигонов мы можем использовать, и распределить их, чтобы получить более качественный низкополигональный и высокополигональный ассет.
Создание реалистичных объектов для игр класса ААА в Unreal Engine 5 - изображение 6
  • Сопоставление камеры блокировки.
Создание реалистичных объектов для игр класса ААА в Unreal Engine 5 - изображение 7

Создание высокополигональной модели

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

Этапы создания высокополигональной модели:

Соответствие финальной высокополигональной модели и высокополигональной модели камеры:

Создание низкополигональной модели

  • Целевое количество треугольников для низкополигональной модели — 7000 три/3500 полигонов.
  • Низкополигональная модель создаётся на основе начальной блокировки и высокополигональной модели путём удаления и добавления петель. Если с самого начала моделирования следовать хорошему потоку петель, этот процесс становится довольно простым. Я также следил за тем, чтобы баланс треугольников обеспечивал наилучший силуэт и формы.
  • После завершения работы над низкополигональной моделью выполняется очистка сетки и сброс преобразования. Это помогает найти и очистить все n-гоны, ламинарные грани и т. д. и правильно установить центральную точку. Эта проверка качества также проводится для высокополигональной модели.
  • Очистка с помощью инструмента очистки Maya.
Создание реалистичных объектов для игр класса ААА в Unreal Engine 5 - изображение 8
  • Сброс и заморозка преобразования.
Создание реалистичных объектов для игр класса ААА в Unreal Engine 5 - изображение 9
  • Назначается и называется единый материал. Что касается этого актива, мы собираемся перенести все свойства материала через текстурную карту с помощью рабочих процессов PBR. Также выполняется проход по группам сглаживания.
Создание реалистичных объектов для игр класса ААА в Unreal Engine 5 - изображение 10

Соответствие финальной низкополигональной модели и низкополигональной модели камеры, окончательный подсчёт треугольников — 6953:

Подготовка к запеканию UV

  • UV-развёртка завершается с равномерным соотношением Texel. Мелкие объекты немного увеличиваются, например, гайки и болты и т. д. Здесь я использую подход с полной уникальной/атласной картой с альфа-каналом (альфа-тест/альфа-смешивание) для решёток. Я выбрал соотношение Texel 1k /м для проверки, и актив будет работать как для 2k, так и для 4k. Если требуется полностью оптимизированная карта, мы можем использовать половину актива, но это сделает его менее уникальным и придётся пойти на компромисс по многим факторам дизайна и плиткам текстуры.
  • Проверка соотношения Texel с кубом 1k/м. Здесь мы получаем более 1k/м для текстуры 2k или 4k для генератора.
  • Создаётся хорошо упакованная компоновка UV/остров.
  • Окончательно определены группы сглаживания и все имена для подготовки к запеканию, чтобы запекать «по сетке по имени» в Substance 3D, чтобы избежать артефактов и растекания при запекании.
  • В высокополигональной модели создаётся идентификатор материала для упрощения выбора маски. Текстурирование выполняется в Substance 3D Painter.
Создание реалистичных объектов для игр класса ААА в Unreal Engine 5 - изображение 11
  • Сетка экспортируется как .fbx и выполняется тест запекания с низким разрешением 512/1024 для поиска артефактов, а затем, если всё хорошо, запекается финальное 2k/4k.
Создание реалистичных объектов для игр класса ААА в Unreal Engine 5 - изображение 12
  • Низкополигональная модель импортируется в SP, проверяются импорт UV, материала и высокополигональной модели.
Создание реалистичных объектов для игр класса ААА в Unreal Engine 5 - изображение 13
  • Даже после всего этого наступает момент истины: артефакты при запекании! Вернитесь к модели, настройкам и т. д., найдите решение и выполните повторное запекание. Здесь, например, это было быстрое исправление с простым поворотом и увеличением разрешения и подвыборки.
Создание реалистичных объектов для игр класса ААА в Unreal Engine 5 - изображение 14

Финальное запекание и запечённые карты:

Создание текстур и материалов

  • Как только запекание будет готово, текстура строится от базового цвета, блокировки до окончательных деталей.
  • Здесь я выбрал такой вид, который не слишком повреждён и заброшен, но всё же изношен, что может произойти из-за длительного использования и повреждений, вызванных природой и окружающими событиями. Для брендинга я следовал референсу.
  • Слои Substance 3D Painter:
Создание реалистичных объектов для игр класса ААА в Unreal Engine 5 - изображение 15
  • Начальные и финальные проходы текстуры:
  • Текстурные карты:
  • Наконец, я проверил валидацию PBR для более качественных рендеров PBR. Всё зелёное — хорошо. Немного жёлтого — нормально. Старайтесь избегать красного и фиолетового, что может быть связано либо с тем, что ваша текстура слишком тёмная (высокие значения чёрного), либо слишком яркая (высокие значения белого).
Создание реалистичных объектов для игр класса ААА в Unreal Engine 5 - изображение 16
  • Iray рендер:
Создание реалистичных объектов для игр класса ААА в Unreal Engine 5 - изображение 17

Интеграция и LookDev в UE5

  • Создаётся пустой проект с включённой трассировкой лучей. Затем мы ждём компиляции шейдеров!
  • Здесь мы будем использовать UE5 Lumen и тени трассировки лучей, а не виртуальные тени Lumen или запечённое освещение. Я изучил многие из этих техник, используемых в освещении, здесь на бесплатных ресурсах наставника Unreal Engine Уильяма Фоше.
  • В настройках > Настройки проекта > Рендеринг я включил «Поддержка аппаратной трассировки лучей» и «Использовать аппаратную трассировку лучей, когда доступно». Обратите внимание, что это будет работать только если GPU поддерживает аппаратную трассировку лучей, например, RTX NVIDIA GPUs.
  • Создаётся пустой уровень, и требуется несколько папок для организации всего содержимого, используемого в сцене.
  • Все необходимые модели и текстуры импортированы. В основном, оставляйте настройки по умолчанию, здесь я решил импортировать материал, а также автоматически сгенерировать столкновения.
  • Также создан простой мастер-материал, в который можно добавить Normal Map, чтобы начать работу над серым цветом.
Создание реалистичных объектов для игр класса ААА в Unreal Engine 5 - изображение 18
  • Создан экземпляр материала для фона, генератора и для отражения (Albedo V =0.9/Roughness 0.05) и матовых шаров (Albedo V =0.18/Roughness 0.4). Матовые шары и шары отражения помогут понять и контролировать экспозицию сцены.
  • Модели добавлены в сцену, и для освещения добавлен ключевой свет с помощью "Rect Light". Этот свет похож на освещение с помощью софтбокса в реальном мире.
  • Добавлены кинематографическая камера (Cine Camera Actor) и Sequencer. С помощью сеток наложения композиции можно настроить камеру. Для этого нужно выбрать свою кинокамеру и переключиться на кинематографический вид.
  • Затем добавлен второй вид для работы над добавлением дополнительных источников света, Post-Process Volume и т. д. в перспективе или других ортогональных видах, а также для проверки обновлений в кинематографической камере.
Создание реалистичных объектов для игр класса ААА в Unreal Engine 5 - изображение 19
  • Перед переходом к освещению настраивается расстояние ручной фокусировки для угла камеры. Можно выбрать инструмент выбора и кликнуть там, где требуется фокус камеры, и соответствующим образом настроить значения.
Создание реалистичных объектов для игр класса ААА в Unreal Engine 5 - изображение 20
  • Добавлен HDRI-фон и перемещён вниз, чтобы он не пересекался без плоскости земли.
  • Чтобы начать работу с нейтральным освещением, я импортировал "Tomoco_Studio" HDRI и настроил интенсивность и вращение. Вы можете найти множество бесплатных HDRI в интернете. Попробуйте использовать 2k и выше, чтобы получить хорошее качество.
Создание реалистичных объектов для игр класса ААА в Unreal Engine 5 - изображение 21
  • Добавлен Post Process Volume.
  • Не имеет значения, где находится Post Process Volume, если вы включите настройки Post Process Volume>Infinite Extent(Unbound).
  • Чтобы отключить автоматическую экспозицию сцены и получить лучший контроль над экспозицией, оставьте Metering Mode в режиме Manual и включите Apply Physical Camera.
  • Теперь можно настроить компенсацию экспозиции, чтобы получить желаемую экспозицию без увеличения интенсивности света добавленных источников света.
  • Добавлен том важности света и помещён туда, где мы хотим, чтобы свет рассчитывался. Это помогает процессу освещения происходить в пределах объёма массы света и избегает обработки всей сцены. Затем также добавлена сфера захвата отражений и построены отражения.
  • Здесь мы используем трёхточечный свет. Все источники света настроены на перемещение.
Создание реалистичных объектов для игр класса ААА в Unreal Engine 5 - изображение 22
  • Ключевой свет (Intensity 1.2cd, Color-warm, Cast shadows — ON, Samples-2)
  • Заполняющий свет (Intensity 0.6 cd, Color-Cold, Cast shadows — OFF, Samples-2)
  • Задний свет (Intensity 0.5 cd, Color-White, Cast shadows — OFF, Samples-2)
  • HDRI (Intensity 0.35). Экспозиция также настроена в Post Processing Volume. Примечание: это итеративный процесс, пока мы не получим желаемый результат. Также вы можете увеличить количество выборок Lumen в настройках Post Process Volume для получения чистых результатов в зависимости от производительности оборудования.
  • Для более плавных теней, трассируемых лучами, с меньшей полосатостью включена опция "cast ray trace shadows".
  • Чтобы сделать простой поворотный стол, щёлкните правой кнопкой мыши на sequencer и добавьте кинокамеру и модель-актёр.
  • Затем установите начальный и конечный ключи для поворота на 360 градусов в Transform>Rotation>Yaw активатора объекта.
  • Кривая выбрана в редакторе кривых в Sequencer и сделана с линейной интерполяцией.
  • Кадры последовательности/кадров и скриншоты с высоким разрешением можно сделать с серой модели. Полезно сохранить настройки прогрева, чтобы сцена была готова перед захватом.
  • Затем я приступил к созданию простого мастер-материала для текстурированной версии.
  • Я внёс несколько незначительных изменений в шейдер и освещение, пока не был достигнут желаемый результат.
Создание реалистичных объектов для игр класса ААА в Unreal Engine 5 - изображение 23

Надеюсь, все, кто читает это, получат ценную информацию. Вы можете найти все окончательные рендеры высокого качества здесь. Вы также можете найти меня на LinkedIn, Twitter и Instagram. Спасибо.

Shyamsagar S, 3D Artist

Автор: Shyamsagar S

Материал подготовлен на основе статьи 80.lv. Перевод — Skills Up.