Создание 3D моделей для игр. Или "Геймдев на постсоветском пространстве, ч3."

Создание 3D моделей для игр. Или "Геймдев на постсоветском пространстве, ч3."

Не просто так дал третьей, заключительной части из серии блога "Геймдев на постсоветском пространстве" другое название. Ведь тут скорее будет разобран технический аспект работы, а именно я попробую на основе нескольких сделанных для данного блога 3д моделей, по крупицам, разобрать весь пайплайн тридешника.

Все начинается с основ!

Как и обычные художники чего-либо, мы всегда начинаем с базы, а именно с формы самого ассета.

Важная часть работы художника - изучить объект, c которым ему предстоит работать, для этого мы собираем рефлист. Он состоит из дюжины (желательно сильно больше) картинок, блюпринтов (чертежей) и различного рода референсов. Мы должны попытаться понять объект, изучить его.

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

Разберем основные термины:

<b>Рефлист</b> лентяя. Картинок желательно должно быть в <b>2-3</b> раза больше.
Рефлист лентяя. Картинок желательно должно быть в 2-3 раза больше.

Бейзмеш - что это?

Все очень просто: бейзмеш - это то, с чего наш ассет начинается.
То есть самая базовая его форма. Бейзмеш затрагивает лишь форму будущей модели, ни в коем случае на этапе его построения не следует пытаться моделить более мелкие детали, вы попросту потеряете время.
Мы словно строим дом и начинаем с фундамента, обставлять его мебелью пока нет основы - бессмысленно.

Как правило Б.М делается на основе картинки-чертежа, если такая имеется, конечно.

<b>Бейзмеш</b> будущей модельки.
Бейзмеш будущей модельки.

Лоу-Поли - это чо такое?

Лоу-поли если говорить простым языком - это та самая моделька, которая окажется в игре, то есть Лоу-поли это основа. Делается на основе готового Бейзмеша, по факту это выглядит так: Мы смотрим на референсы/смотрим на наш чертеж/смотрим на модельку и потихоньку усложняем ее, форму стараемся привести к идеалу, добавляем более мелкие детальки, все элементы ассета ставим на свои места. Звучит просто, но на самом деле это чуть ли не самый сложный процесс во всей задаче.
Хорошая Лоу-поли - это следование всем правилам топологии. Топология - это формирование сетки вашего ассета. То есть, модель строится из треугольников, а те, в свою очередь, строятся в одну большую сетку, которая и образует саму модель. Правил у топологии очень много. Проще потом будет написать целую статью исключительно про это, чем обрывками пытаться донести информацию тут.
Как только Лоу-поли закончена, сетка проверена и поправлена - поздравляю! Основа готова, дальше идут чисто технические аспекты. Если конечно не считать текстуры

Пустая лоуполи.
Пустая лоуполи.
Сетка поверх текстуры.
Сетка поверх текстуры.

UV map или ювиха.

Сложно подобрать слова, чтобы простым языком рассказать, что такое UV карта, но я все-таки попробую:
Если вкратце, UV нужна, чтобы отрисовывать на ней текстуры. Модель как бы разбивается на мелкие шеллы и переносится в 2д формат, правильным языком это называется развёртка, и в этом 2д формате уже текстурится, результат чего мы будем наблюдать уже на 3д модельке. Самая простая ассоциация которая приходит мне в голову - оригами, если вы развернете оригами обратно в лист бумаги - вы получите ту самую развертку, о которой и шла речь. Для корректной визуализации в играх нам необходим этот процесс, потому что просто рисовать на 3д модельке нельзя, движкам просто необходимо для отрисовки текстур иметь 2д карты.

Визуально развертка выглядит вот так.
Визуально развертка выглядит вот так.

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

1) Мы раскладываем нашу модельку в специальном софте на много шеллов,
2) Выравниваем их, ставим чекер (временный заменитель текстуры/текстура в виде шахматной доски или эмо из 2007)
3) По чекеру проверяем, что разложили модельку качественно, без косяков, после чего складываем все в большой квадрат, который является фундаментом для текстур в будущем.

Чекер.
Чекер.

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

Интерфейс Rizom UV, одной из программ, которая обладает функциями автопаковки, причем очень хорошего качества.
Интерфейс Rizom UV, одной из программ, которая обладает функциями автопаковки, причем очень хорошего качества.

Пора делать текстуры? Не, пока только Хай-Поли.

Следующий этап - Хай-поли. Простыми словами, это ваша же модель, но с большим объемом полигонов, которая может превышать Лоу-поли в сотни раз а то и больше.

Наглядная разница между <b>Лоу-поли</b> и <b>Хай-поли</b> сетками. 
Наглядная разница между Лоу-поли и Хай-поли сетками. 

Зачем она нужна? Все просто - для Карты Нормалей.

Нормали — это векторы, определяющие корректное отражение света на поверхности. То есть Карта Нормалей - это карта, придающая вашей модельке корректное отражение света.

<b>Карта Нормалей</b> собственной персоной.
Карта Нормалей собственной персоной.

Кажется, что это какая-то сложная, бессмысленная ерунда, на самом деле сложного в этом мало, а чтобы понять все на девяносто процентов - достаточно посмотреть на модельку с картой нормалей и без. Но почему для ее создания нужна Хай-поли? А потому, что преимущество ХП модельки как раз заключается в том, что у нее больше полигонов, а чем больше полигонов - тем выше качество различного рода фасок, переходов, в общем всего того, что используется в карте нормалей и транслируется на Лоу-поли. То есть, простым языком, мы берем из Хай-поли информацию о корректном отражении света, качественные фаски и переносим их на нашу Лоу-поли модель. Но для начала Хай-поли нужно создать. Тут тоже есть свои правила, создание Хай-поли это процесс, кардинально отличающийся от создания Лоу-поли в плане принципа работы, однако не имеющий ничего сложного. Особенно щас, современный софт помогает превратить процесс создания Хай-поли в праздник или рутину, решайте сами, где все что вам нужно - нажимать 2-3 кнопки и проверять результат. Правила для ХП - лишь условность. Самое главное - должно выглядеть красиво. Какими путями вы этого добьетесь - исключительно ваше дело.

Я рекомендую делать ХП на основе готовой ЛП, путем редактирования сетки, чтобы не потерять основную форму объекта. Скажу даже больше, cуществует Bevel Shader, шейдер, создающий фаски и карту нормалей автоматически, без необходимости создания Хай-поли, однако результат не будет соответствовать качеству "ручной" ХП. Его лучше применять на всякого рода мелких объектах окружения, или же отдаленных от игрока элементах, чтобы упрощать себе работу и при этом не выдавать халтуру.

Пример работы <b>Bevel Shader</b>.
Пример работы Bevel Shader.

Результатом постижения всего этого будет являться готовая Карта Нормалей.

Как <b>Карта Нормалей</b> дополняет визуал вашего объекта:
Как Карта Нормалей дополняет визуал вашего объекта:

Осталось чуть-чуть!

Перед тем, как мы начнем делать текстуру, нам нужно еще запечь АО карту, это вторая по важности дополнительная карта в модели, после Карты Нормалей.

Ambient Occlusion Map - это карта теней, то есть, на ней отрисовываются тени на вашей модели.

<b>Ambient Occlusion </b>собственной персоной.
Ambient Occlusion собственной персоной.

Запечь АО можно за секунду, если печь ее на Лоу-поли с самой себя. Этого для хорошего результата будет вполне достаточно. Все, что нужно от вас АО-шке, это дать ей пропечь тени в в укромных местах. Можно пойти более интересным и радикальным путем, но для этого печь АО нужно одновременно с Картой Нормалей,тогда можно спекать АО с Хай-поли, результат будет лучше, однако не настолько сильно по моему мнению, чтобы об этом запариваться.

Казалось бы, такая мелочь, какие-то непонятные тени, всего-то.
Но это не так! Дело в том, что АО карта нужна не столько для теней в вакууме, cколько для текстуринга в будущем. В темных местах практически автоматически будет рисоваться всякая грязь, пыль, итд итп, что сделает вашу текстуру в будущем заметно красивее.

Из всех этапов этот - самый простой и щадящий.

Важно: Как вы уже поняли, в современном моделлинге тени должны спекаться на отдельную карту, а не рисоваться поверх текстуры.

Текстуринг.

Вот мы и подошли почти к финалу. Если вкратце про текстуринг:
На данный момент в компьютерной графике в основном используется метод Физически корректного рендеринга, или просто PBR. Потоки света как бы рендерятся в реальном мире, что помогает приблизиться к фотореализму и избежать ощущения того, что модель вся склепана из какого-то одного материала по типу пластмассы. Простыми словами PBR - это каждому материалу достоверная визуализация, то есть, дерево будет выглядеть и отражать свет именно как дерево, металл как металл, пластик как пластик соответственно. Для этих целей существует дюжина дополнительных карт и несколько основных пайплайнов работы, карты, впрочем, создаются автоматически в специализированном софте.
Вот самые основные :

Albedo map - Ваша финальная текстура, другими словами карта цвета.

Metalness map - Карта имитации поверхности металла.

Roughnes map - Карта имитации шероховатости.

Слева направо : 1) <b>Albedo map</b> 2) <b>Metalness map</b> 3) <b>Roughnes map</b>
Слева направо : 1) Albedo map 2) Metalness map 3) Roughnes map

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

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

Ну вот и все!

На самом деле ничего сложного во всем этом нет, если разбирать каждый этап вдумчиво станет понятно, что в основном все делается словно на заводе, сделал этап по плану и переходишь к следующему. Рано или поздно полное понимание придет, даже если создается ощущение, что это тернистый, непроглядный лес. Это вовсе не так :).

Первое лицо.
Первое лицо.

Товарищи, если вам интересна тема геймдева - не стесняйтесь, пишите в личку, предлагайте новые темы для разбора. Если я что-то недообъяснил - спрашивайте, постараюсь ответить максимально развернуто и просто. Если вам нужна консультация по модельке - можете также присылать, мне одно удовольствие разобраться, открыть для себя что-то новое и вместе стать немного умнее и мудрее. Большое спасибо за внимание <3.

Небольшое послесловие для начинающих.

Если решите сделать свою первую модельку - начинайте с простого, как пример - ломик, вроде бы простая форма, но даже с такой просто формой можно отлично поиграться, плюсом идет маленькое количество деталей (что для первых работ правильно)

Ломик! Прямо как в Half-Life!
Ломик! Прямо как в Half-Life!
Создание 3D моделей для игр. Или "Геймдев на постсоветском пространстве, ч3."

На простых ассетах можно гораздо быстрее освоить навык.

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

3DS MAX - Инь и Янь всего моделлинга, тут все сходится воедино, иными словами - ваше основное средство для создания моделей

Blender - Пользуюсь для Bevel Shader.

UV Layout - Создание развертки.

Rizom UV - Автоматическая компоновка развертки.

Marmoset Toolbag - создание карты нормалей/АО/рендеринг модельки.

Substance 3D Painter - создание текстур.

Спасибо за внимание.

1717 показов
827827 открытий
11 репост
2 комментария