Запечка (bake) стилизованного персонажа

Привет! Мы продолжаем цикл статей по пайплайну разработки стилизованных персонажей.

Сегодня ты узнаешь, как устроен четвёртый этап ААА-пайплайна — запечка (bake), на примере нашей модели.

Запечка (bake) стилизованного персонажа

Что такое запечка

Этап запекания (bake) — полностью технический этап ААА-пайплайна, цель которого заключается в переносе детализации с хайполи модели на лоуполи с помощью специальных карт.

Для запекания карты необходимо загрузить хайполи и лоуполи-модель в любую программу для 3D-моделирования или специальную программу для запечки.

Все эти карты необходимы для следующего этапа — текстурирования.

Когда мы добавим эти карты к лоуполи-модели, они перенесут дополнительную детализацию, взятую с хайполи модели.

Запечка (bake) стилизованного персонажа

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

Наиболее полезны эти карты:

— Normal Map
— Normal (Object)
— AO (Ambient Occlusion)
— Curvature
— Vertex Color (Color ID)

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

Для запечки необходимо иметь:

  1. Хайполи модель (в нашем случае, это скульпт)
    С неё алгоритмы запечки будут снимать детализацию.
  2. Лоуполи модель, созданную на этапе ретопологии
    К ней мы добавим запечённые карты и тем самым перенесём информацию с хайполи модели.
  3. Готовую развёртку,
    Все карты пекутся именно на неё.
  4. Программу для «запечки»Marmoset/Substance Painter/Maya/3Ds Max или любую другую.

После этого этапа, в следующей статье, мы перейдём к текстурированию, — то есть к покраске нашей модели.

Ключевая мысль этой статьи

Процесс «запечки» написан на очень сложных и чувствительных алгоритмах.

У этих алгоритмов есть целый ряд требований к модели. А любая ошибка приводит к артефактам, которые могут испортить всю проделанную работу.

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

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

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

Подготовка хайполи под бейк

Ранее, когда мы показывали процесс скульптинга, сразу перед началом ретопологии, мы совершили два простых действия в ZBrush:

  1. Прижали геометрию

Потому что в таких местах часто появляются артефакты.

2. Покрасили хайполи для карты Color ID

Запечка (bake) стилизованного персонажа

Мы покрасили разные материалы в разные цвета и сохранили в отдельный файл. Из него сегодня мы запечём карту Color ID, — она необходима для текстурирования.

Подготовка лоуполи под бейк

В процессе подготовки к запечке наша лоуполи будет изменяться. Удалятся оверлапнутые элементы, добавится триангуляция и так далее.

Всё это будет сделано для того, чтобы запечка прошла без артефактов.

Нам крайне важно не потерять исходный файл.

Сделаем копию исходного файла: это будет отдельный файл лоуполи для запечки. Далее мы будем работать именно с ним.

Первый шаг

Объединяем всю топологию в один объект. Чтобы при нажатии на любую часть модели выделилась вся модель, а не конкретный элемент.

В конце именно эту версию модели мы отправим аниматору.Все остальные версии лоуполи-модели — технические.

Удаляем все элементы, на которых есть оверлапы

На прошлом этапе пайплайна мы сделали оверлапы, чтобы сэкономить место на UV. Но в процессе запечки лишние одинаковые элементы не нужны.

Оставляем только по одному оверлапнутому элементу на модели, остальные удаляем.

В нашем случае это элементы на броне и перчатках.

Слева — финальная модель. Справа — модель для запечки. Удалены объекты с оверлапами
Слева — финальная модель. Справа — модель для запечки. Удалены объекты с оверлапами

Разбиваем модель на несколько объектов

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

Чтобы этого избежать, нужно разделить модель на несколько объектов.

Внутри каждого объекта все элементы должны находиться на расстоянии друг от друга.

Распределяем элементы по разным объектам. Это выглядит так:

Внутри каждого объекта элементы находятся на расстоянии друг от друга.
Внутри каждого объекта элементы находятся на расстоянии друг от друга.

Если между элементами маленькое расстояние, у них будет пересекаться Cage (зона поиска). И снова появятся артефакты. Так делать не надо:

Объекты слишком близко друг к другу, так делать нельзя
Объекты слишком близко друг к другу, так делать нельзя

Что делать? Если видим, что два элемента геометрии лежат рядом, кладём их в разные группы:

Эти два элемента клади в разные группы, так как они пересекаются.
Эти два элемента клади в разные группы, так как они пересекаются.

Тело нашего стилизованного персонажа с парой тряпок на руках и ботинками у нас лежит в одной топологии, — поэтому под тело создаём отдельный объект.

Запечка (bake) стилизованного персонажа

Триангулируем модель

Теперь у нас есть две версии нашей лоуполи-модели.
Первый — модель для запечки, в которой объекты разбиты по группам.
Второй — финальная модель, где вся геометрия сшита в один объект.

Слева — модель для запечки. Справа — финальная модель.

Пока что обе модели сделаны в квадах.
Алгоритмы запечки лучше всего работают с треугольными полигонами.
Поэтому у версии лоуполи для запечки нам нужно сделать ещё одну копию и триангулировать.

Запечка (bake) стилизованного персонажа

Затем берём триангулированные группы и выгружаем в формат .obj.

Каждый триангулированный объект = отдельный файл в формате .obj
Каждый триангулированный объект = отдельный файл в формате .obj

Каждый файл .obj состоит из одного объекта. А в этом объекте геометрия не пересекается и лежит на расстоянии.

Запечка (bake) стилизованного персонажа

Далее полученные файлы нужно загрузить в Marmoset для запечки.Можно использовать любую программу, но Marmoset на данный момент — самый удобный вариант.

Открываем Marmoset

Первым делом создаём новые группы в бейкере:

Запечка (bake) стилизованного персонажа

В каждую группу бейкера загружаем файлы лоуполи и хайполи.

1 группа в бейкере = 1 файл .obj с хайполи и триангулированным объектом лоуполи модели.

Получилась такая структура внутри бейкера:

Запечка (bake) стилизованного персонажа

Затем выбираем, какие карты будем запекать.Для стилизованного персонажа я рекомендую создать именно эти карты:

— Normal Map
— Normal (Object)
— AO (Ambient Occlusion)
— Curvature
— Convexity
— Concavity
— Vertex Color (Color ID)

Затем указываем расширение (размер) карт:

Запечка (bake) стилизованного персонажа

Указывать нужно значение в два раза больше, чем будет в игре.Например, если нужны 2К текстуры для проекта, то запекаем в 4К.

Готовую карту мы в дальнейшем уменьшим в фотошопе, зато детализация запечётся гораздо лучше.

Другие настройки:

Формат: .psd (или другой, как удобнее)

Samples (уровень сглаживания): 16x (если поставить мало, то появятся «лесенки» на переходах от материала к материалу)

Format: 8 Bits/Channel (зависит от ТЗ проекта)

Padding Size: указываем размер паддинга равный паддингу на нашей UV.

В нашем случае настройки такие:

Запечка (bake) стилизованного персонажа

Дальше нажимаем кнопку со знаком «Р»:

Запечка (bake) стилизованного персонажа

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

Так как материал у нас один, то ничего больше делать не нужно.А один материал у нас потому, что развёртка всего персонажа сделана на одной UV.

Дальше мы, наконец-то, нажимаем кнопку Bake.

Запечка (bake) стилизованного персонажа

Когда всё готово, в папке появятся psd файлы со всеми картами:

Запечка (bake) стилизованного персонажа

Описание карт

Изначально, до запечки, модель выглядит вот так:

Запечка (bake) стилизованного персонажа

Сейчас я расскажу, как выглядят запечённые нами карты, и какую информацию о хайполи модели они переносят.

Normal Map

Содержит информацию о поверхности.

Карта создаёт виртуальные вертекс-нормали в каждой точке low poly модели и искажает поведение света. Если наложить запечённый нормал на модель, то она будет выглядеть почти как high poly.

Это одна из самых важных карт, которая запекается почти для каждой модели.

Более подробно о Normal Map мы писали здесь.

Запечка (bake) стилизованного персонажа

Normal (Object)

Информация о поверхности относительно окружающей среды.

Запечка (bake) стилизованного персонажа

По сути, эта карта учитывает то, что у модели есть верхняя и нижняя часть.

Главное визуальное отличие от Normal Map состоит в том, что на этой карте есть градиенты.

Запечка (bake) стилизованного персонажа

Карта Ambient Occlusion (AO)

Это карта затенения. Она показывает самые глубокие тени в объекте. В основном это тени в углублениях и на пересечениях.

Эту карту используют в игровых движках для создания корректного освещения, а также она очень полезна в текстурировании.

Запечка (bake) стилизованного персонажа

Даже когда объект ярко освещён, на нём всё равно есть тени. Именно их передаёт эта карта.

Запечка (bake) стилизованного персонажа

Curvature

Содержит информацию о глубинах и высотах.

Запечка (bake) стилизованного персонажа

Чёрный цвет показывает самые глубокие и плоские места, светлый цвет — острые и максимально выпуклые.

Запечка (bake) стилизованного персонажа

На самом деле, есть ещё две отдельных карты: Convexity и Concavity. Карта Convexity передаёт только информацию о высотах, а карта Concavity — только о глубинах. Если эти две карты объединить, то получится карта Curvature.

Но я люблю запекать сразу 3 карты: Curvature, Concavity и Convexity. Так проще работать во время текстурирования. В то же время, многие трёхмерщики запекают только карту Curvature, и этого зачастую вполне достаточно.

Convexity (необязательная карта)

Это карта выпуклостей. Помогает класть затертости и царапины на границах форм. Эту карту можно вытащить из АО и Curvature, но иногда удобнее запечь ее отдельно.

Запечка (bake) стилизованного персонажа

Concavity (необязательная карта)

Содержит информацию только об углублениях. Помогает накладывать грязь и пыль в тонкие места. Эту карту тоже можно сгенерить с помощью АО, но её тоже бывает полезно запечь отдельно.

Запечка (bake) стилизованного персонажа

Vertex Color (Color ID)

Эта карта сохраняет маски по материалам, что позволяет быстро, в один клик, выбрать один конкретный материал при текстурировании.

У нашего персонажа есть рога, броня, ткань, болты и кожа. Всё это разные материалы, которые очень легко выбирать с помощью Color ID.

Запечка (bake) стилизованного персонажа

С картами разобрались.

Этап запечки почти закончен.

Добавляем карту нормалей к лоуполи и сразу видим результат:

Лоуполи + Normal Map
Лоуполи + Normal Map

Финальный этап — проверить карты на ошибки.

Проверять на артефакты нужно прежде всего Normal Map. А небольшие артефакты на других картах можно легко исправить во время текстурирования.

Проверяем запечку на артефакты

О нет, у нас артефакт на нормале! На модели появились небольшие странные полоски.

Запечка (bake) стилизованного персонажа

Артефакты появляются по целому ряду причин. Некоторые из них мы объясняли здесь.

Это нормально, просто артефакт нужно убрать. Для этого попробуем самые частые методы исправления артефактов:

1. Геометрия лоуполи и хайполи не совпадает

Нужно исправить геометрию — немного подвинем вертексы, чтобы они лучше совпадали:

Затем грузим этот изменённый кусок обратно в Мармосет, запекаем заново, меняем Cage.

Стало лучше, но, к сожалению, до конца не помогло. Значит, идём дальше.

2. Геометрия на лоуполи пересекается

Если геометрия пересекается внутри одной группы запечки, значит, мы неправильно разбили модель на группы — об этом шла речь в самом начале этой статьи.

Проверяем. В нашем случае этот кусок лежит далеко от других элементов.

Запечка (bake) стилизованного персонажа

Поэтому идём дальше.

3. Замазываем артефакт в фотошопе

Это самый кардинальный метод, который часто помогает. Нужно открыть запечённый Normal Map и замазать артефакт вручную.

Проблема в том, что на карте нужный кусок не так-то просто найти. Поэтому запечём одну дополнительную карту: Wireframe.

Эта карта поможет легко найти расположение любого элемента на UV.А благодаря этому мы легко найдём его же на Normal Map и сможем замазать артефакт.

Запечка (bake) стилизованного персонажа

Так выглядит эта карта:

Запечённая карта WireFrame
Запечённая карта WireFrame

Ищем нужное нам место на UV.

Искать, конечно, нужно внутри первого квадрата UV. Просто выделяем нужный объект на модели, и его расположение на UV подсветится.

Запечка (bake) стилизованного персонажа

А затем открываем карту с нормалом, увеличиваем и сразу видим наш артефакт:

Запечка (bake) стилизованного персонажа

Просто замазываем его:

Отлично! Теперь никто не узнает, что на нормале был артефакт:

Запечка (bake) стилизованного персонажа

4. Альтернативный метод исправления артефактов

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

Итак, этап запечки завершён! Мы разбили модель на группы запечки, создали все необходимые карты и убрали артефакт на нормале.

Если ты читал прошлую статью про запечку, написанную Игорем Дятловым, ты мог заметить, что на самом деле, этот этап гораздо сложнее. Отсюда вытекает логичный вопрос:

Почему так просто?

Почему запечка прошла так легко и без проблем?

Давай разбираться.

Пайплайн — это системная работа.И на всех предыдущих этапах пайплайна мы учитывали тот факт, что сегодня нам нужно будет делать запечку.

Мы учитывали особенности алгоритмов запечки на всех этапах, начиная со скульпта.

Вот некоторые из моментов, которые всегда нужно учитывать.

1. Правильная поза у персонажа

У персонажа руки раздвинуты немного в сторону.Поэтому геометрия не слипается.

Правильная поза для стилизованного персонажа
Правильная поза для стилизованного персонажа

Если, например, бицепс, будет пересекается с телом — в таком месте могут появиться артефакты. Вот пример, как не надо делать:

Пример неправильной позы у стилизованного персонажа
Пример неправильной позы у стилизованного персонажа

2. Правильная и простая группировка объектов

Все объекты в каждой группе запечки находятся на расстоянии друг от друга, поэтому их Cage не пересекается.

Это делается легко и просто, зато позволяет избежать большей части артефактов во время запечки.

Запечка (bake) стилизованного персонажа
Запечка (bake) стилизованного персонажа

Вот пример того, как делать не надо. Здесь Cage (зона поиска зелёного цвета) у двух разных объектов пересекается:

Пример с ошибкой, которую часто допускают новички
Пример с ошибкой, которую часто допускают новички

3. Чистый ретоп

Мы использовали функцию с «магнитиком», и поэтому, когда мы создавали лоуполи модель, все вертексы полностью прилегали к хайполи.

Именно поэтому хайполи и лоуполи почти идеально совпадают, а артефакты не появляются.

Вот пример плохого совпадения лоуполи и хайполи:

Если видишь нечто подобное — исправляй модель, иначе во время запечки будут проблемы.
Если видишь нечто подобное — исправляй модель, иначе во время запечки будут проблемы.

4. На этапе UV

Была создана ровная, без сильных потяжек, развёртка, с равномерным текселем на всех шеллах.

Запечка (bake) стилизованного персонажа

Все шеллы оптимально упакованы в квадрат без лишних пустот.

Запечка (bake) стилизованного персонажа

5. Продуманная модель

Ещё на этапе хайполи (скульпта) мы добавили фаски, которые позволяют избежать острых углов на модели.

Такие места, как правило, плохо запекаются и требуют дополнительных манипуляций с лоуполи моделью.

Запечка (bake) стилизованного персонажа

6. Прижатая геометрия

На модели, где это возможно, прижаты элементы одежды. За счёт этого мы избегаем ненужных пустот, с которыми сложно работать на этапе ретопологии.

Более того, такие места часто создают ненужные артефакты во время запекания.

Запечка (bake) стилизованного персонажа

Если хочешь научиться создавать полный цикл стилизованных персонажей для компьютерных игр и перенять опыт наших преподавателей — ещё не поздно записаться на наш курс STYL.

Тебя ждут целых пять месяцев обучения, индивидуальные фидбеки твоих работ и несколько сотен трёхмерщиков со всей России, с которыми ты познакомишься в отдельном Discord-сервере по персонажке. Читай подробности в этой статье.

Подписывайся, чтобы не пропустить новые выпуски цикла про пайплайн персонажей. Мы в VK, Facebook, Instagram, Youtube и Telegram.

Следующая статья будет про текстурирование, а затем — про риг и анимацию.

Материал подготовлен командой XYZ Media.

5454
81 комментарий

Комментарий недоступен

9
Ответить

Комментарий недоступен

10
Ответить

Комментарий недоступен

Ответить