Ретопология стилизованного персонажа
Привет! Мы продолжаем цикл статей по пайплайну разработки стилизованных персонажей. Сегодня ты узнаешь что такое этап ретопологии и как его делать на примере нашей модели.
Ретопология — второй этап ААА-пайплайна. На прошлом этапе мы сделали скульпт, а сейчас будем делать lowpoly модель.
Прошлые статьи из цикла:
Что тебя ждёт сегодня
План статьи:
- Что такое ретопология, зачем она нужна?
- Экспорт скульпта из ZBrush.
- Создание lowpoly модели в Maya.
- Нюансы ретопологии.
- Чек-лист.
- Особенности ретопа стилизованных персонажей.
- Технические моменты при ретопе персонажей.
- Что делать после ретопологии?
#1 Что такое ретопология, зачем нужна?
Как ты помнишь, мы показываем весь пайплайн производства стилизованных персонажей. Мы уже сделали скульпт нашего персонажа:
В дальнейшем хотим добавить на него текстуры, сделать риг и анимацию. И чтобы эту модель можно было использовать для компьютерной игры.
Проблема в том, что у нашего скульпта 7 миллионов полигонов:
Разумеется, такую модель никак не засунуть в игровой движок.Для этого нам нужно сделать lowpoly модель — то есть упрощённую модель с минимальным количеством полигонов. И уложиться в лимит в 20 000 - 80 000 полигонов на всего персонажа.
Затем мы перенесём детализацию с нашего скульпта на lowpoly модель через Normal Map, используя технологию запечки.
Чтобы ты понял, как работает эта технология, мы написали огромную теоретическую статью про сетку. Обязательно прочитай её, если хочешь понять как работает комбинация: Lowpoly + Normal Map.
С теорией мы закончили.Сейчас нам нужно сделать lowpoly модель, то есть создать упрощённую сетку для нашего персонажа.
Этот процесс начинается с того, что нужно подготовить наш скульпт в ZBrush к ретопологии.
#2 Экспорт скульпта из ZBrush
Открываем наш скульпт в программе Zbrush:
Для наглядности мы покажем процесс ретопологии на примере шлема, а затем рассмотрим особенности ретопа других элементов нашего стилизованного персонажа.
Начало работы
Когда мы лепили нашу модель, мы почти не думали о топологии. Тогда нашей задачей было передать форму и стилистику.
Сейчас нам нужно проверить всю геометрию и слегка оптимизировать.
Первым делом, ищем зазоры в местах стыков двух разных элементов:
Раз мы внесли изменения в наш скульпт, не забываем сохранить изменения, чтобы в дальнейшем, скульпт и lowpoly модель были идентичной формы.
Прежде чем мы пойдём дальше, необходимо покрасить модель в разные цвета, чтобы в будущем запечь эти цвета в ID Map.
#Шаг 1: Красим модель для ID Map
Эта карта нужна, чтобы в процессе текстурирования было удобно выделять разные элементы нашей модели. Например, чтобы можно было выделить только шлем или только рога, или только ткань.
На этом этапе мы не запекаем карту, а просто красим модель в разные цвета.
Это не текстуры и не цвета будущей модели, нужно визуально разделить разные объекты, чтобы при текстурировании можно было выбирать их по отдельности.
Потому что когда будем ретопить, вся сетка будет единой. И выбрать, например, только рога на шлеме уже не получится. Для этого разделяем объекты, красим в разные цвета в Zbrush. Все похожие детали = одинаковый цвет.
Цвета могут быть любыми, главное чтобы они были контрастными и отличались друг от друга.
Для этого:
— Берём кисть Move, жмём кнопку Y, чтобы переключиться на линейку.
— Жмём CTRL + Shift.
— Ведём курсор к границе с другим объектом.
— Так выберется тот объект, на который мы кликали.
Так мы выбрали только середину шлема.Потом назначаем ей любой цвет во вкладке Color:
Всё хорошо, только покрасилось наоборот. Поэтому в нашем случае маску необходимо инвертировать.
Для этого жмём CTRL и жмём на пустое пространство:
Таким же образом красим все элементы в разные цвета:
#Шаг 2: Сохраняем хайполи
Сохраняем то, что мы только что покрасили. Это и есть хайполи нашей модели.Сохраняем его в отдельный файл в формате .obj.С него мы будем запекать все необходимые карты на этапе пайплайна под названием «запечка».
Готовим модель к ретопологии
Когда мы скульптили шлем, рога и тряпку на них, всё это было создано из разной геометрии.
В тот момент, когда мы в Maya будем создавать новую сетку, желательно на этапе скульпта объединить все элементы в одну топологию. Так будет проще работать в дальнейшем.
Шаг 1: Объединяем все элементы в одну сетку
Для этого нам понадобится уже знакомая тебе функция:Tool -> Geometry -> Dynamesh
Как видишь, геометрия объединилась, но мы потеряли всю детализацию.Поэтому, не забываем подобрать подходящий Resolution, чтобы её сохранить.
Геометрия объединилась, детализация сохранилась и работа в Maya стала немного проще.
Но, как ты помнишь, сетка в Zbrush супер плотная, сейчас только у шлема более 800 000 точек. А у всего персонажа их всё ещё более 7 миллионов, Maya скорее всего не сможет открыть такой файл.
Шаг 2: Убираем лишние полигоны
Вкладка Zplugin -> Decimation Master позволяет пересчитать сетку и убрать очень много лишних полигонов.
Первым делом нужно просто нажать функцию Pre-process Current:
После этого, мы можем сказать программе, какой процент от текущего количества полигоном мы хотим оставить:
Таким образом у нас осталось всего 43 000 полигонов, а формы сохранились.На этом этапе нас это количество устраивает. А после ретопа в Maya останется ещё меньше.
Жмём Tool -> Export и сохраняем в формате .objПодготовка модели к ретопологии в Zbrush на этом этапе заканчивается.
#3 Ретопология в Maya
Если модель при импорте расположена как-то странно, это легко исправить
Такое происходит из-за того, что у разных программ есть разное понимание «верха» модели.
Заходим в настройки: Preferences -> Settings -> World Coordinate System = 'Y'
Теперь нужно нажать на «магнитик», чтобы модель нельзя было выбрать или редактировать, а все новые полигоны лежали только на её поверхности:
После этой функции программа понимает, что это та поверхность, на которую мы будем назначать новую топологию.
Инструменты для работы
Нам понадобится окно Modeling Toolkit.Внутри него нас интересуют 4 кнопки в разделе Tools:
Теперь, когда модель заблокирована, если мы нажмём во вкладке Modeling Toolkit -> Quad Draw, то все созданные вертексы будут лежать на поверхности нашей модели, как мы и хотели:
Кстати, если развернуть вкладку Modeling Toolkig -> Keyboard/Mouse Shortcuts, то мы увидим список всех горячих клавиш, которые нам пригодятся для работы:
Итак, у нас уже есть наша модель.
Наша задача - создать абсолютно новую сетку поверх текущей,с минимальным количеством полигонов.
Особенности функции Quad Draw и горячие клавиши
Как только мы создали первые точки через функцию Quad Draw, если зажать Shift и навести на область между ними, то программа подсветит область между ними. Это значит, что из этих точек можно создать новый полигон. Жмём левой кнопкой мыши, чтобы его создать:
Разумеется, при нажатии на сам вертекс, можно изменить его положение:
А если выделить конкретный Edge (линию) и зажать D, то можно создать новый полигон, который одна из сторон которого будет прилегать к текущему полигону. Эта функция называется Extend.
Все новые точки и полигоны крепятся к уже созданной нами модели, то есть повторяют её форму.
Ещё парочка полезных горячих клавиш.
Если навести на полигон и зажать CTRL, можно создать внутри полигона новый эдж:
Если нажать CTRL + Shift, то при нажатии на Edge он удалится:
Только что ты узнал все основные инструменты, которые нужны для работы.Их очень мало и они достаточно просты для понимания.
Находим симметрию
Прежде чем мы начнём создавать полигоны, давай определимся, какие части модели у нас симметричны.
В нашем случае, мы можем сделать ретопологию правой части шлема, затем скопировать её, потом отразить и доработать.
Дальше мы просто будем создавать новую сетку поверх текущей. Задача не очень сложная, но достаточно рутинная.
#4 Нюансы ретопологии
Сейчас мы будем создавать lowpoly сетку и параллельно покажем самые важные моменты, которые встретятся по ходу работы.
Равномерность сетки
Следи за плотностью сетки, она должна быть равномерной.
Лучше всего начать создание новой сетки с крупных полигонов.Начинать сразу с мелких полигонов не всегда удобно. Хотя, это дело вкуса, нам удобнее начинать с крупных полигонов.
Итак, начинаем:
Важный момент — для стилизованных персонажей хорошая практика использовать лоуполи сетку, где по большей части используются ровные прямоугольные полигоны (квады).Про это подробнее будет расписано в конце статьи.
Вот пример, как делать не стоит:
Слишком вытянутые и кривые полигоны, разного размера — плохая практика. Игровые движки не очень хорошо их воспринимают.
Вот ещё один плохой пример:
Мелкие детали
Если ты видишь, что на некоторых важных деталях нужны мелкие полигоны - смело создавай их, чтобы не потерять форму. Как, например, у нас в деталях на шлеме:
Дальше мы просто создаём всё больше полигонов, используя по большей части функции Quad Draw и Multicut:
Разбиваем на треугольники
В подобных местах, разбивай полигон на треугольники:
Делается это вот так:
Выравниваем сетку
Полигоны должны повторять форму исходной геометрии. Если видишь, что линия неровная, жми Shift эта функция поможет выровнять сетку:
Сложные места разбиваем на более мелкие полигоны:
Работа с острыми углами
По возможности нужно избегать острые углы, но в случаях когда не получается этого сделать, обычно используют хард эжди, либо добавляют дополнительный бевел.
Про то, как работать с хард эджами, мы уже писали вот здесь.
Избегаем проблем с запечкой
В подобных местах мы видим, что наша сетка выходит за пределы геометрии.
Такие моменты будут плохо выглядеть при запекании.
Чтобы избежать проблем при запечке, обязательно добавляем несколько новых полигонов, чтобы лучше повторить исходную форму:
Завершение ретопологии шлема
Итак, ретопологию шлема мы закончили, сетка выглядит вот так:
Точно таким же образом, делается ретопология всего стилизованного персонажа.
Если ты помнишь нашего «бугая», его лоуполи выглядит вот так:
Слева — модель после функции Decimation в ZBrush.Справа — лоуполи модель, сделанная в Maya.
#5 Чек-лист по ретопологии
Подведём итоги. Сохрани чек-лист, чтобы не потерять!
Этап 1: Подготовка в ZBrush
— Прижимаем геометрию— Красим модель в разные цвета для ID Map— Сохраняем модель в формате .obj— Объединяем геометрию через Dynamesh— Убираем лишние полигоны через Decimation Master— Сохраняем версию модели после Decimation в формате .obj— При ретопологии используем именно эту версию модели (после Decimation)
Этап 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).А после развёртки мы будем запекать детализацию с хайполи на лоуполи.
А если ты хочешь пройти весь пайплайн разработки стилизованного персонажа и получить индивидуальные фидбеки — ещё не поздно записаться на наш курс, который уже скоро стартует. Читай подробности в этой статье.
Жди продолжения!
Успехов тебе!
[ Конец статьи ]
Отличная статья! Респект школе XYZ!
Благодарим!)
Верните Луцая!
Нет
>Следи за плотностью сетки, она должна быть равномерной.
Все так говорят, но никто еще нигде не объяснил - почему. ) Что такого страшного произойдет при неравномерной сетке? ;)
>Слишком вытянутые и кривые полигоны, разного размера — плохая практика. Игровые движки не очень хорошо их воспринимают.Опять же. Еще нигде ни разу не видел примера плохого вида вытянутого полигона в игре. Просто даже хочется на это взглянуть хоть раз, интересно же, о чем собственно речь. Сам много раз делал и неравномерную сетку, и вытянутые полигоны - никаких проблем в движке это не вызывало. )
Комментарий недоступен
Равномерность размеров полигонов обеспечивает равномерное освещение на персонаже. Все вершины должны быть примерно равно удалены друг от друга. Если же будут длинные полигоны, то начнутся проблемы с корректностью освещения модели.