Для чего нужна ретопология
Виды моделирования. Основы скульптинга, ретопологии и развертки
В этой статье мы поговорим про скульптинг, ретопологию и развертку. Но сначала нужно определиться с целью. Что мы будем моделировать, и каким способом?
Предположим, что мы решили создавать персонажа для игры, но что если это будет окружение, архитектура или что-то еще? Сначала нужно узнать какие бывают способы моделирования и понять какой нам больше подходит.
Способы моделирования
1. Полигональное моделирование
Это, наверное, самый популярный способ разработки 3D модели. Суть заключается в создании и редактировании сетки из полигонов, которые состоят из вершин и ребер. Нажимая на левую клавишу мыши мы создаем новую вершину, которая соединяется ребром.
Такой процесс моделирования можно представить как форму, например, лица, покрытую прямоугольниками с разной степенью перспективного искажения.
Говоря простым языком: «Мы создаем сетку, которая состоит из примитивных фигур (примитивов)». В результате получается многогранник. Чтобы лучше ассоциировать, можно вспомнить как в фильмах и анимации много маленьких роботов превращались в одного большого. Так же и с полигональным моделированием. Много примитивов составляют одну большую модель.
Кстати, чаще всего у полигона четыре грани, но бывает и три. Примитивы с тремя гранями используются только в определенных случаях, а вот больше четырех граней быть не может. Привязки к реальным единицам измерения нет, поэтому модель получается неточной. Соответственно, такой способ не подходит для моделирования каких-то деталей или архитектурных проектов, где важен каждый миллиметр.
Вы просто передвигаете вершину, ребро или весь полигон, ориентируясь на внешний вид. Полигональное моделирование хорошо подойдет, если вы моделируете художественную вещь, и вам не важны точные размеры. Это может быть персонаж, локация уровня игры или животное.
2. NURBS моделирование
Основное отличие этого способа от полигонального моделирования в плавности. NURBS модель состоит не из полигонов, а из кривых (сплайнов), однако при визуализации все равно преобразуется в полигоны, хотя внутри системы моделирования остается в кривых. Используется для создания плавных органических форм и моделей.
Допустим, нужно представить сложную трехмерную поверхность природного происхождения. Ее можно описывать вершинами и разбивать на примитивы, но на это уйдет много времени, а изменять кривизну поверхности в полигонах будет просто не удобно. В таких случаях как раз и применим способ NURBS моделирования.
3. Точное моделирование в Сапрах
В этом способе модель задается математическими формулами, поэтому поверхность модели будет абсолютно гладкая при любом приближении, а настроить ее можно с точностью до миллиметра.
Используется, когда важна точность, а не художественная выразительность. Чисто теоретически, таким способом можно создать персонажа, но но это займет огромное количество времени и усилий, в отличие от полигонального моделирования и скульптинга.
Про полигоны
Возвращаемся к полигона. Почему в каких-то моделях их больше, а в каких-то меньше?
Дело в том, что модели делятся по количеству полигонов:
В играх на ПК и консоли чаще всего используют mid-poly, иногда hi-poly (в AAA проектах), а в мобильных играх low poly.
Скульптинг
Приступаем к части моделирования под названием «Скульптинг». Это первый 3D этап в создании персонаж. В нем персонаж лепится как из глины, отсюда и название. На этом этапе можно окунуться в творчество и лепить не задумываясь о полигонах. А их будет много. Не волнуйтесь, позже все это дело мы упростим. Кстати, для обучения скульптингу хорошо бы приобрести графический планшет.
И так, плавно переходим к основной теме статьи. Но я ничего же не сказал про программы. Предлагаю взять Zbrush для скульптинга и 3D Coat для ретопологии и развертки. Первым делом нужно запустить Zbrush. Мы попадаем в основной экран программы. Сначала нам нужно создать сферу.
Во вкладке Tool, которая находится в правой части экрана, выбираем пункт «Sphere3D». Вытягиваем сферу в рабочей области нажатием лкм.
Для перемещения используем горячие клавиши:
Появляется панель с кистями. Для редактирования сферы нажимаем «Edit».
Чтобы не получать такое сообщение нужно нажать «Make PolyMesh 3D » в панели Tool.
Теперь можно скульптить. Осталось только включить симметрию на клавишу «X». При нажатии на alt кисть начинает работать в обратную сторону. Если кисть выдавливала, то наоборот будет вдавливать. Для ушей, глаз, носа лучше всего создавать отдельные сферы и скульптить их отдельно. Со временем сетка будет меняться и понадобится пересчитать полигоны. Для этого во вкладке Geometry нужно нажать DynaMesh.
Если работать только с одной сферой, то вся детализация сойдет на нет при пересчете полигонов. Так что лучше делать это отдельными объектами, а под конец работы объединить.
Если нет идей для скульптинга, можно зайти на artstation.com и найти понравившуюся работу. Можно найти концепт-арты, добавить Zbrush и использовать как референс для тренировки.
В процессе работы над моделью может понадобиться инструмент «маска». Применить его можно нажав на ctrl. Маска — это область на которую не реагирует кисть. Таким образом можно лепить много чего интересного.
Под конец работы над моделью получится примерно 1 — 3 миллиона полигонов. Такую модель будет сложно открыть в другой программе, поэтому нужно сократить количество полигонов. Для этого во вкладке Zplugin выберем пункт «Decimation Master» и нажмем на Pre-process All. Zbrush запустит процесс и сократит количество полигонов.
Готовую модель можно вывести в формате obj. Его кушают практически все редакторы. Сохранить можно нажав на «Export» в панели Tool.
Ретопология
В нашей модели еще достаточно много полигонов. Чтобы упростить нужно как бы покрыть модель полигонами вручную, сохраняя форму. Это и есть процесс ретопологии. Чтобы приступить, нужно перейти во вкладку Retopology. Тут нам нужно фактически вручную рисовать полигоны. Вот пример того, как они должны располагаться.
Вокруг глаз и рта полигоны выстраиваем кругом. На месте сгибов добавляем больше полигонов, а на неподвижных частях полигоны могут быть большие и в малом количестве, например, на затылке и лбе.
Развертка
Развертка или UV mapping очень важный процесс в разработке модели. На этом этапе мы уже подготавливаем модель к текстурированию.В чем суть? Представьте картонную коробку, которую разложили на плоскости. Коробку разобрали и теперь она в виде одного листа картона. Так же и с нашей моделью, мы разложили ее в 2D пространстве.
Нажимаем на вкладку uv mapping. 3D Coat показывает развертку модели на данный момент. Синим и красным цветом отмечены артефакты. Чтобы текстура без проблем ложилась на модель нужно, чтобы во вкладке UV Preview был только серый цвет. Как это сделать? На shift + лкм нужно удалить ненужные швы так, чтобы модель разделилась на части. UV развертка нужна для удобства текстурирования и экономии ресурсов.
После того, как на модели не останется артефактов нужно нажать упаковать UV, а потом применить UV раскладку. Поздравляю, модель окончательно готова к анимации и текстурированию.
Ретопология стилизованного персонажа
Привет! Мы продолжаем цикл статей по пайплайну разработки стилизованных персонажей. Сегодня ты узнаешь что такое этап ретопологии и как его делать на примере нашей модели.
Ретопология — второй этап ААА-пайплайна. На прошлом этапе мы сделали скульпт, а сейчас будем делать lowpoly модель.
Что тебя ждёт сегодня
Не забудь подписаться на нас, чтобы не пропустить следующий выпуск!
Мы в VK, Facebook, Instagram и Youtube.
#1 Что такое ретопология, зачем нужна?
Как ты помнишь, мы показываем весь пайплайн производства стилизованных персонажей. Мы уже сделали скульпт нашего персонажа:
Скульпт нашего персонажа
В дальнейшем хотим добавить на него текстуры, сделать риг и анимацию. И чтобы эту модель можно было использовать для компьютерной игры.
Проблема в том, что у нашего скульпта 7 миллионов полигонов:
У нашего скульпта более 7 миллионов полигонов
Затем мы перенесём детализацию с нашего скульпта на lowpoly модель через Normal Map, используя технологию запечки.
Чтобы ты понял, как работает эта технология, мы написали огромную теоретическую статью про сетку. Обязательно прочитай её, если хочешь понять как работает комбинация: Lowpoly + Normal Map.
Как это работает, ты узнаешь в этой статье.
С теорией мы закончили.
Сейчас нам нужно сделать lowpoly модель, то есть создать упрощённую сетку для нашего персонажа.
Этот процесс начинается с того, что нужно подготовить наш скульпт в ZBrush к ретопологии.
#2 Экспорт скульпта из ZBrush
Открываем наш скульпт в программе Zbrush:
Наш скульпт в ZBrush
Для наглядности мы покажем процесс ретопологии на примере шлема, а затем рассмотрим особенности ретопа других элементов нашего стилизованного персонажа.
Этот шлем сегодня будем ретопить
Начало работы
Когда мы лепили нашу модель, мы почти не думали о топологии. Тогда нашей задачей было передать форму и стилистику.
Сейчас нам нужно проверить всю геометрию и слегка оптимизировать.
Первым делом, ищем зазоры в местах стыков двух разных элементов:
Чтобы не создавать лишних полигонов, по возможности, желательно прижать ремешок к поверхности:
Прижимаем геометрию, чтобы не было зазора
Раз мы внесли изменения в наш скульпт, не забываем сохранить изменения, чтобы в дальнейшем, скульпт и lowpoly модель были идентичной формы.
Прежде чем мы пойдём дальше, необходимо покрасить модель в разные цвета, чтобы в будущем запечь эти цвета в ID Map.
#Шаг 1: Красим модель для ID Map
Эта карта нужна, чтобы в процессе текстурирования было удобно выделять разные элементы нашей модели. Например, чтобы можно было выделить только шлем или только рога, или только ткань.
На этом этапе мы не запекаем карту, а просто красим модель в разные цвета.
Это не текстуры и не цвета будущей модели, нужно визуально разделить разные объекты, чтобы при текстурировании можно было выбирать их по отдельности.
Потому что когда будем ретопить, вся сетка будет единой. И выбрать, например, только рога на шлеме уже не получится. Для этого разделяем объекты, красим в разные цвета в Zbrush. Все похожие детали = одинаковый цвет.
Цвета могут быть любыми, главное чтобы они были контрастными и отличались друг от друга.
Для этого:
— Берём кисть Move, жмём кнопку Y, чтобы переключиться на линейку.
— Жмём CTRL + Shift.
— Ведём курсор к границе с другим объектом.
— Так выберется тот объект, на который мы кликали.
Выбираем только шлем, без рогов и тряпки через кисть Move
Так мы выбрали только середину шлема.
Потом назначаем ей любой цвет во вкладке Color:
Красим выбранную область.
Всё хорошо, только покрасилось наоборот. Поэтому в нашем случае маску необходимо инвертировать.
Для этого жмём CTRL и жмём на пустое пространство:
Таким же образом красим все элементы в разные цвета:
Красим объекты в разные цвета для ID Map
#Шаг 2: Сохраняем хайполи
Готовим модель к ретопологии
Когда мы скульптили шлем, рога и тряпку на них, всё это было создано из разной геометрии.
В тот момент, когда мы в Maya будем создавать новую сетку, желательно на этапе скульпта объединить все элементы в одну топологию. Так будет проще работать в дальнейшем.
Шаг 1: Объединяем все элементы в одну сетку
Dynamesh объединил геометрию, но потерял детализацию из-за низкого разрешения
Как видишь, геометрия объединилась, но мы потеряли всю детализацию.Поэтому, не забываем подобрать подходящий Resolution, чтобы её сохранить.
Внешне ничего не изменилось, зато теперь геометрия единая
Геометрия объединилась, детализация сохранилась и работа в Maya стала немного проще.
Но, как ты помнишь, сетка в Zbrush супер плотная, сейчас только у шлема более 800 000 точек. А у всего персонажа их всё ещё более 7 миллионов, Maya скорее всего не сможет открыть такой файл.
Шаг 2: Убираем лишние полигоны
После этого, мы можем сказать программе, какой процент от текущего количества полигоном мы хотим оставить:
Оставляем 5% от текущего количества полигонов
Таким образом у нас осталось всего 43 000 полигонов, а формы сохранились.
На этом этапе нас это количество устраивает. А после ретопа в Maya останется ещё меньше.
#3 Ретопология в Maya
Если модель при импорте расположена как-то странно, это легко исправить.
Модель лежит не той оси
Такое происходит из-за того, что у разных программ есть разное понимание «верха» модели.
Теперь модель расположена нормально
Теперь нужно нажать на «магнитик», чтобы модель нельзя было выбрать или редактировать, а все новые полигоны лежали только на её поверхности:
Жмём на магнитик, чтобы запретить редактирование модели
После этой функции программа понимает, что это та поверхность, на которую мы будем назначать новую топологию.
Инструменты для работы
Нам понадобится окно Modeling Toolkit.
Внутри него нас интересуют 4 кнопки в разделе Tools:
4 инструмента, которые нужны для ретопологии
Список горячих клавиш для ретопологии
Итак, у нас уже есть наша модель.
Особенности функции Quad Draw и горячие клавиши
Как только мы создали первые точки через функцию Quad Draw, если зажать Shift и навести на область между ними, то программа подсветит область между ними. Это значит, что из этих точек можно создать новый полигон. Жмём левой кнопкой мыши, чтобы его создать:
Ставим 4 точки, наводим мышку и создаём новый полигон, используя клавишу Shift
Разумеется, при нажатии на сам вертекс, можно изменить его положение:
Изменяем положение вертекса
А если выделить конкретный Edge (линию) и зажать D, то можно создать новый полигон, который одна из сторон которого будет прилегать к текущему полигону. Эта функция называется Extend.
Создаём новый полигон, прилегающий к уже существующему, используя Extend (клавиша D)
Все новые точки и полигоны крепятся к уже созданной нами модели, то есть повторяют её форму.
Ещё парочка полезных горячих клавиш.
Если навести на полигон и зажать CTRL, можно создать внутри полигона новый эдж:
Клавиша CTRL создаёт новые эджи внутри выбранного полигона
Если нажать CTRL + Shift, то при нажатии на Edge он удалится:
Удаляем эдж, используя CTRL + Shift
Только что ты узнал все основные инструменты, которые нужны для работы.
Их очень мало и они достаточно просты для понимания.
Находим симметрию
Прежде чем мы начнём создавать полигоны, давай определимся, какие части модели у нас симметричны.
В нашем случае, мы можем сделать ретопологию правой части шлема, затем скопировать её, потом отразить и доработать.
Находим симметрию у модели, если она есть
Дальше мы просто будем создавать новую сетку поверх текущей. Задача не очень сложная, но достаточно рутинная.
#4 Нюансы ретопологии
Сейчас мы будем создавать lowpoly сетку и параллельно покажем самые важные моменты, которые встретятся по ходу работы.
Равномерность сетки
Следи за плотностью сетки, она должна быть равномерной.
Лучше всего начать создание новой сетки с крупных полигонов.Начинать сразу с мелких полигонов не всегда удобно. Хотя, это дело вкуса, нам удобнее начинать с крупных полигонов.
Важный момент — для стилизованных персонажей хорошая практика использовать лоуполи сетку, где по большей части используются ровные прямоугольные полигоны (квады).Про это подробнее будет расписано в конце статьи.
Вот пример, как делать не стоит:
Плохой пример: полигоны кривые, разного размера
Слишком вытянутые и кривые полигоны, разного размера — плохая практика. Игровые движки не очень хорошо их воспринимают.
Вот ещё один плохой пример:
Не делай так, пожалуйста
Мелкие детали
Дальше мы просто создаём всё больше полигонов, используя по большей части функции Quad Draw и Multicut:
Разбиваем на треугольники
В подобных местах, разбивай полигон на треугольники:
Делается это вот так:
Выравниваем сетку
Полигоны должны повторять форму исходной геометрии. Если видишь, что линия неровная, жми Shift эта функция поможет выровнять сетку:
Выравниваем сетку через Shift
Сложные места разбиваем на более мелкие полигоны:
При необходимости можно создавать мелкие полигоны
Работа с острыми углами
По возможности нужно избегать острые углы, но в случаях когда не получается этого сделать, обычно используют хард эжди, либо добавляют дополнительный бевел.
Про то, как работать с хард эджами, мы уже писали вот здесь.
Избегаем проблем с запечкой
В подобных местах мы видим, что наша сетка выходит за пределы геометрии.
Такие моменты будут плохо выглядеть при запекании.
Чтобы избежать проблем при запечке, обязательно добавляем несколько новых полигонов, чтобы лучше повторить исходную форму:
Завершение ретопологии шлема
Итак, ретопологию шлема мы закончили, сетка выглядит вот так:
Точно таким же образом, делается ретопология всего стилизованного персонажа.
Если ты помнишь нашего «бугая», его лоуполи выглядит вот так:
Лоуполи модель нашего стилизованного персонажа
Слева — модель после функции Decimation в ZBrush.
Справа — лоуполи модель, сделанная в Maya.
#5 Чек-лист по ретопологии
Подведём итоги. Сохрани чек-лист, чтобы не потерять!
Этап 1: Подготовка в ZBrush
Этап 2: Создание lowpoly модели
— Жмём на «магнит», чтобы заблокировать модель
— Создаём новую сетку поверх текущей, используя Modeling Toolkit → Tools
— Сохраняем лоуполи модель
Вся теоретическая часть
Если ты хочешь узнать про то, что такое вертекс нормали и то, как Normal Map обманывает с их помощью поведение игрового света — вся теоретическая часть по ретопологии написана в нашей статье про сетку.
#6 Особенности ретопа стилизованных персонажей
Делая ретоп стилизованного персонажа, не забывай про то, что будет с твоей сеткой на других этапах пайплайна.
Анимация
Смотри, есть очень важный момент, который следует учитывать при ретопологии стилизованных персонажей. Связан он с тем, как работает анимация.
Вот 2 прямоугольника, один состоит из 2 частей, другой — из 4:
Анимация деформирует твою геометрию. Давай согнём оба прямоугольника посередине:
А теперь давай посмотрим, что получилось:
Приглядись и увидишь, что геометрия, где было меньше полигонов, деформировалась сильнее.
Давай посмотрим, как эта особенность анимации влияет на ретопологию нашего персонажа.
Складки, шмотки
Присмотрись к этой ретопологии ткани:
Момент 1: Складки сделали треугольниками.
Чтобы они лучше повторяли форму исходной геометрии.
Момент 2: Сетка состоит примерно из одного количества лупов на складках, что и на ногах
Обрати внимание, что полигоны на складках находятся примерно на той же горизонтали, что и полигоны на ногах:
Если у разных элементов нашей модели горизонтальные линии будут примерно на одном уровне, при анимации не будет глюков. Ноги и ткань будут деформироваться примерно схожим образом и не будут сильно пересекаться.
Пальцы, кости
Всегда учитывай то, что эти места будут анимироваться.
Твоя задача — сделать так, чтобы ключевые точки анатомии персонажа не потеряли свою форму и персонаж не анимаровался как «пластилиновый».
Нужно усиливать сетку и повышать её плотность в таких местах.
Делается это следующим образом:
Сетка на местах, где находятся кости
В том месте, где находится кость, находится пересечение полигонов. А соседние полигоны расходятся по кругу.
Мышцы
Полигоны должны повторять форму мышцы и образовывать легко читаемую линию:
Ретопим мышцы груди
На этом скриншоте ты видишь, что мы добавили маленькие полигоны в нижней части мышцы (точка 1).
А в середине груди, в месте солнечного сплетения, мы сделали сетку из треугольников (точка 2). Так при анимации, например, повороте корпуса налево или направо, она точно не исказится.
Ретопология лица — отдельная, большая тема, достойная отдельной статьи.
Сложность в том, чтобы создать сетку, которая будет в дальнейшем реалистично анимироваться.
Мы нашли очень классную статью на PolyCount Wiki. Прочитав её, ты поймёшь, что ретопология лица персонажа, особенно с высокой степенью реализма — отдельная наука.
На крупных проектах, если ты моделишь людей, а не монстров, твоя работа выглядит следующим образом: тебе дают уже готовую сетку с лицом персонажа.
Там каждый полигон лежит на своём месте. А ты моделишь уже всё остальное.
У нашего персонажа всё гораздо проще, потому что у него высокая степень стилизации и низкая степень реализма. Соответственно, сетка достаточно простая:
Тем не менее, анимируется лицо вполне нормально, даже с такой простой сеткой:
Тестовая анимация для примера
#7 Технические моменты при ретопе персонажей
Работа с сеткой не так проста, как кажется на первый взгляд.
Давай разбираться!
Триангуляция
Работа выглядит следующим образом:
Шаг 1: Мы создаём лоуполи модель так, как мы писали в этой статье. На выходе получилась модель с квадами, в некоторых местах есть треугольники там, где они нужны. Эту версию лоуполи модели мы отправляем аниматору. С квадами ему будет проще работать.
Шаг 2: Непосредственно перед запечкой (на одном из последующих этапов пайплайна), мы сделаем триангуляцию, чтобы модель запеклась лучше.
Давай разберёмся, почему на шаге 1 мы создавали квады:
Как подружиться с аниматором
Как правило, аниматор — отдельный человек. Ты моделишь — он анимирует.
Всегда классно, когда вы хорошие друзья, поэтому при ретопе желательно учитывать то, как он будет работать с твоей моделью.
Аниматор будет привязывать к «костям» вертексы. Ему удобнее это делать в случае, когда модель состоит из квадов и есть лупы полигонов. В случае с ногой персонажа, как правило, это такие вертикальные или горизонтальные линии:
Вертикальные и горизонтальные эджи
Давай сравним, как будет выглядеть модель квадов и треугольников:
Слева — только треугольники. Справа — по большей части квады, плюс пара треугольников
Пробегись глазом по сетке и попробуй провести горизонтальную линию и почувствуешь, что когда есть куча треугольников, та же самая геометрия сложнее читается.
Именно поэтому многие трёхмерщики, в том числе и мы, делаем ретопологию стилизованных персонажем из немного вытянутых прямоугольников с примерно одинаковой плотностью.
Это не значит, что нельзя делать треугольники или квадраты. Там где они нужны, мы их добавляем, но основной «строительный материал» lowpoly сетки у нас — это прямоугольники.
На всякий случай скажем, в этом вопросе сложно найти однозначно 100% верный ответ. Читай ТЗ, общайся с командой разработки и поймёшь, каким полигонам отдать предпочтение.
Единая геометрия или нет
В нашем случае мы объединили почти всю геометрию в одну топологию.
Но шлем, меч и другие атрибуты мы сделали отдельной топологией.
Мы сделали так, потому что точно знали, что моделим персонажа для демонстрации работы по пайплайну, не более того.
Может быть ты видел шапки в Team Fortress или маски в PayDay 2?
Если на проекте будут разные скины брони или всевозможных шлемов и головных уборов — в таких случаях нужно их отдельной геометрией.
Обязательно читай ТЗ проекта, иначе потом будет больно. Уже слитую геометрию нельзя так просто разделить.
Задние стенки
Этот момент пишем для новичков.
В статье про сетку мы уже писали, почему у любого полигона передняя сторона видимая, а задняя — прозрачная.
Это значит, что если ты делаешь ретоп, например, шлема, не нужно делать сетку внутри. Почему? Камера в игре не увидит эту часть модели, поэтому экономь полигоны и своё время.
Внутреннюю часть не нужно делать, если её не видно в игре
Софт для ретопологии
Можно использовать любую удобную для тебя программу.
Мы работали Maya, но также для ретопа используют:
— 3Ds Max
— Blender
— 3D Coat
— Topogun
И другие программы. Принцип работы, который ты сегодня узнал универсален. Меняется только интерфейс и название функций.
Лимит на полигоны
Наш опыт показывает, что на большинстве проектов есть лимит в 20-80 тысяч полигонов на стилизованного персонажа. Иногда немного больше.
#8 Что делать после ретопологии
После ретопологии, следующий этап пайплайна — развёртка (UV).
А после развёртки мы будем запекать детализацию с хайполи на лоуполи.
Жди продолжения!
Подписывайся на нас, если ты ещё не с нами!
Мы в ВК, Facebook, Instagram и Youtube.
А если ты хочешь пройти весь пайплайн разработки стилизованного персонажа и получить индивидуальные фидбеки — ещё не поздно записаться на наш курс, который уже скоро стартует. Читай подробности в этой статье.
У нас есть бесплатный онлайн-курс, на котором ты сможешь узнать основы работы в ZBrush и создать свою первую модель за пару дней обучения
Зарегистрироваться