HTML Diff
1 added 1 removed
Original 2026-01-01
Modified 2026-02-21
1 <p><a>#статьи</a></p>
1 <p><a>#статьи</a></p>
2 <ul><li>7 фев 2025</li>
2 <ul><li>7 фев 2025</li>
3 <li>0</li>
3 <li>0</li>
4 </ul><p>Рекомендации от 3D-художника Джеймса Брейди.</p>
4 </ul><p>Рекомендации от 3D-художника Джеймса Брейди.</p>
5 <p>Иллюстрация: Colowgee для Skillbox Media</p>
5 <p>Иллюстрация: Colowgee для Skillbox Media</p>
6 <p>Считает игры произведениями искусства и старается донести эту идею до широких масс. В свободное время стримит, рисует и часами зависает в фоторежимах.</p>
6 <p>Считает игры произведениями искусства и старается донести эту идею до широких масс. В свободное время стримит, рисует и часами зависает в фоторежимах.</p>
7 <p>Создание ассета для AAA-игр требует не только художественных навыков, но и соблюдения<a>пайплайна</a>студии, в том числе технических требований к контенту. В ноябрьском номере журнала<a>3D World UK</a>вышла статья от 3D-художника Джеймса Брейди, где он подробно описал ряд этапов, через которые проходит 3D-контент высокого качества перед импортом в игровой движок. Редакция "Геймдев‎" Skillbox Media делится тезисами специалиста из этой статьи.</p>
7 <p>Создание ассета для AAA-игр требует не только художественных навыков, но и соблюдения<a>пайплайна</a>студии, в том числе технических требований к контенту. В ноябрьском номере журнала<a>3D World UK</a>вышла статья от 3D-художника Джеймса Брейди, где он подробно описал ряд этапов, через которые проходит 3D-контент высокого качества перед импортом в игровой движок. Редакция "Геймдев‎" Skillbox Media делится тезисами специалиста из этой статьи.</p>
8 <p><a><strong>Фриланс-художник</strong></a><strong>в области 3D-графики родом из Ирландии.</strong></p>
8 <p><a><strong>Фриланс-художник</strong></a><strong>в области 3D-графики родом из Ирландии.</strong></p>
9 <p>На протяжении своей карьеры он делал ассеты для Red Dead Redemption 2, Halo Infinite, Dying Light 2: Stay Human, Ghostbusters: Spirits Unleashed, Judas, Rogue Company, Life is Strange: Double Exposure и других известных игр.</p>
9 <p>На протяжении своей карьеры он делал ассеты для Red Dead Redemption 2, Halo Infinite, Dying Light 2: Stay Human, Ghostbusters: Spirits Unleashed, Judas, Rogue Company, Life is Strange: Double Exposure и других известных игр.</p>
10 <p>В своём материале Брейди дал ряд поэтапных рекомендаций по созданию ассета высокого качества, подходящего для импорта в видеоигру или фильм. В качестве примера он продемонстрировал цикл подготовки модели военной рации перед импортом в движок Unreal Engine. В рамках своего пайплайна художник работал в 3ds Max, ZBrush, Marmoset Toolbag и Substance 3D Painter.</p>
10 <p>В своём материале Брейди дал ряд поэтапных рекомендаций по созданию ассета высокого качества, подходящего для импорта в видеоигру или фильм. В качестве примера он продемонстрировал цикл подготовки модели военной рации перед импортом в движок Unreal Engine. В рамках своего пайплайна художник работал в 3ds Max, ZBrush, Marmoset Toolbag и Substance 3D Painter.</p>
11 <p>Хотя у каждой компании есть свой набор софта для создания цифрового контента, рекомендации Джеймса Брейди помогут оптимизировать процесс подготовки ассетов для последующего экспорта в движок.</p>
11 <p>Хотя у каждой компании есть свой набор софта для создания цифрового контента, рекомендации Джеймса Брейди помогут оптимизировать процесс подготовки ассетов для последующего экспорта в движок.</p>
12 <p>Даже если в качестве основного приложения для 3D-моделирования вы используете не 3ds Max, а Maya, из этого материала можно извлечь несколько полезных лайфхаков по блокингу, UV-развёртке, булевым операциям, запеканию деталей и достижению фотореализма в текстурировании. А в дальнейшем адаптировать их под свой пайплайн.</p>
12 <p>Даже если в качестве основного приложения для 3D-моделирования вы используете не 3ds Max, а Maya, из этого материала можно извлечь несколько полезных лайфхаков по блокингу, UV-развёртке, булевым операциям, запеканию деталей и достижению фотореализма в текстурировании. А в дальнейшем адаптировать их под свой пайплайн.</p>
13 <p>Подписывайтесь на наш<a>телеграм-канал "Чекпоинт"</a>. Это уютное место, в котором мы рассказываем об играх и о том, как они создаются, а также делимся полезными советами разработчиков и пишем о важных обновлениях популярного софта. Комментарии открыты: вы можете предложить идею для нового текста или просто обсудить всё, что связано с геймдевом.</p>
13 <p>Подписывайтесь на наш<a>телеграм-канал "Чекпоинт"</a>. Это уютное место, в котором мы рассказываем об играх и о том, как они создаются, а также делимся полезными советами разработчиков и пишем о важных обновлениях популярного софта. Комментарии открыты: вы можете предложить идею для нового текста или просто обсудить всё, что связано с геймдевом.</p>
14 <p>Прежде чем начать работу, убедитесь в том, что размеры будущего ассета соответствуют единицам метрической системы в программе для 3D-моделирования. Это важно для дальнейших манипуляций с низкополигональными и высокополигональными моделями. Единицы измерения в <a>программах</a>для создания цифрового контента должны соответствовать единицам в движке, для которого создаётся будущая модель.</p>
14 <p>Прежде чем начать работу, убедитесь в том, что размеры будущего ассета соответствуют единицам метрической системы в программе для 3D-моделирования. Это важно для дальнейших манипуляций с низкополигональными и высокополигональными моделями. Единицы измерения в <a>программах</a>для создания цифрового контента должны соответствовать единицам в движке, для которого создаётся будущая модель.</p>
15 <p>В данном случае Брейди делал рацию для игры на Unreal Engine 4, поэтому в программе для 3D-моделирования он выбрал в качестве единиц сантиметры, так как именно эту систему мер использует движок. К примеру, чтобы настроить систему единиц в 3ds Max, нужно перейти во вкладку<strong>Customise</strong>в главном меню программы и найти опцию<strong>Units Setup…</strong> - после этого откроется окно с кнопкой<strong>System Unit Setup</strong>. Именно там находятся настройки системы мер, которые отвечают за реальный масштаб объекта в сцене. Что касается<strong>Display Unit Scale</strong>, то эти настройки предназначены для определения единиц непосредственно во вьюпорте.</p>
15 <p>В данном случае Брейди делал рацию для игры на Unreal Engine 4, поэтому в программе для 3D-моделирования он выбрал в качестве единиц сантиметры, так как именно эту систему мер использует движок. К примеру, чтобы настроить систему единиц в 3ds Max, нужно перейти во вкладку<strong>Customise</strong>в главном меню программы и найти опцию<strong>Units Setup…</strong> - после этого откроется окно с кнопкой<strong>System Unit Setup</strong>. Именно там находятся настройки системы мер, которые отвечают за реальный масштаб объекта в сцене. Что касается<strong>Display Unit Scale</strong>, то эти настройки предназначены для определения единиц непосредственно во вьюпорте.</p>
16 <em>Изображение: James Brady / 3D World UK, 2024. №317</em><p>Блокинг, или блокаут, в 3D - это грубое построение объекта или локации из примитивных форм, которое создают в самом начале для определения общего масштаба будущей модели. Чтобы начать процесс блокинга в моделировании, создайте простой куб и подгоните его под размер и форму ассета. Очень важно соблюдать пропорции в соответствии с референсом, особенно когда передняя часть объекта отличается от задней, как, например, фаски по краям рации, представленные на слайде ниже. В этом случае сначала создают прямую поверхность, а затем делают скосы углов с той стороны, где это необходимо.</p>
16 <em>Изображение: James Brady / 3D World UK, 2024. №317</em><p>Блокинг, или блокаут, в 3D - это грубое построение объекта или локации из примитивных форм, которое создают в самом начале для определения общего масштаба будущей модели. Чтобы начать процесс блокинга в моделировании, создайте простой куб и подгоните его под размер и форму ассета. Очень важно соблюдать пропорции в соответствии с референсом, особенно когда передняя часть объекта отличается от задней, как, например, фаски по краям рации, представленные на слайде ниже. В этом случае сначала создают прямую поверхность, а затем делают скосы углов с той стороны, где это необходимо.</p>
17 Моделирование корпуса рации на стадии блокинга<em>Изображение: James Brady / 3D World UK, 2024. №317</em><p>На следующем этапе Брейди создал дополнительные верхние и нижние секции и добавил их к уже существующему примитиву. Таким образом получилась общая форма рации, и фаски на ней проглядываются уже более отчётливо. Затем художник добавил к конструкции передние части в виде цилиндров - микрофон и динамик. Таким образом модель постепенно обрастает всё новыми деталями, до тех пор, пока не завершится процесс блокинга.</p>
17 Моделирование корпуса рации на стадии блокинга<em>Изображение: James Brady / 3D World UK, 2024. №317</em><p>На следующем этапе Брейди создал дополнительные верхние и нижние секции и добавил их к уже существующему примитиву. Таким образом получилась общая форма рации, и фаски на ней проглядываются уже более отчётливо. Затем художник добавил к конструкции передние части в виде цилиндров - микрофон и динамик. Таким образом модель постепенно обрастает всё новыми деталями, до тех пор, пока не завершится процесс блокинга.</p>
18 Сетка рации в ортогональном режиме (вид сверху) и итоговый результат блокинга<em>Изображение: James Brady / 3D World UK, 2024</em><p>Получив оптимальный результат после блокинга, можно приступить к созданию высокополигональной модели. Во время этой стадии художник продублировал ассет, полученный в результате предыдущей фазы, и начал добавлять больше замкнутых рёбер в полигональную сетку. Необходимо разобрать модель, созданную путём блокинга, на отдельные сегменты и добавить на каждую часть больше замкнутых рёбер.</p>
18 Сетка рации в ортогональном режиме (вид сверху) и итоговый результат блокинга<em>Изображение: James Brady / 3D World UK, 2024</em><p>Получив оптимальный результат после блокинга, можно приступить к созданию высокополигональной модели. Во время этой стадии художник продублировал ассет, полученный в результате предыдущей фазы, и начал добавлять больше замкнутых рёбер в полигональную сетку. Необходимо разобрать модель, созданную путём блокинга, на отдельные сегменты и добавить на каждую часть больше замкнутых рёбер.</p>
19 <em>Изображение: James Brady / 3D World UK, 2024. №317</em><p>Во время этого процесса необходимо проследить за равномерным распределением рёбер вдоль всего меша. Забегая вперёд, стоит отметить, что эти манипуляции нужны для дальнейшего применения модификатора<a><strong>Turbosmooth</strong></a>, который сгладит полигональную сетку. И если подразделения выполнены хаотично, после применения этого инструмента структура некоторых элементов может получиться неравномерной.</p>
19 <em>Изображение: James Brady / 3D World UK, 2024. №317</em><p>Во время этого процесса необходимо проследить за равномерным распределением рёбер вдоль всего меша. Забегая вперёд, стоит отметить, что эти манипуляции нужны для дальнейшего применения модификатора<a><strong>Turbosmooth</strong></a>, который сгладит полигональную сетку. И если подразделения выполнены хаотично, после применения этого инструмента структура некоторых элементов может получиться неравномерной.</p>
20 <p>Закончив с распределением замкнутых рёбер по всем элементам, применяем модификатор<strong>Turbosmooth</strong>. В некоторых случаях необходимо добавить чуть больше рёбер для лучшего скругления углов. Тем не менее стоит помнить, что в дальнейшем этот объект будет экспортирован в ZBrush, где его полигональной сетке добавят подразделений. Чтобы не переборщить с уровнями подразделения в ZBrush, лучше создать ещё немного замкнутых рёбер при необходимости и вновь применить<strong>Turbosmooth</strong>, пока модель всё ещё находится в 3ds Max.</p>
20 <p>Закончив с распределением замкнутых рёбер по всем элементам, применяем модификатор<strong>Turbosmooth</strong>. В некоторых случаях необходимо добавить чуть больше рёбер для лучшего скругления углов. Тем не менее стоит помнить, что в дальнейшем этот объект будет экспортирован в ZBrush, где его полигональной сетке добавят подразделений. Чтобы не переборщить с уровнями подразделения в ZBrush, лучше создать ещё немного замкнутых рёбер при необходимости и вновь применить<strong>Turbosmooth</strong>, пока модель всё ещё находится в 3ds Max.</p>
21 Финальный вид меша верхней части рации после применения<strong>Turbosmooth</strong><em>Изображение: James Brady / 3D World UK, 2024. №317</em><p>Эти манипуляции необходимо провести и с остальными элементами модели, пока все меши не будут готовы к экспорту в ZBrush.</p>
21 Финальный вид меша верхней части рации после применения<strong>Turbosmooth</strong><em>Изображение: James Brady / 3D World UK, 2024. №317</em><p>Эти манипуляции необходимо провести и с остальными элементами модели, пока все меши не будут готовы к экспорту в ZBrush.</p>
22 <p>Конструкция рации предполагает множество мелких отверстий в области микрофона и динамика. Эти детали можно проработать с помощью булевых операций. В данном случае Брейди создал группу цилиндров, толщина которых соответствует предполагаемым отверстиям, и разместил их на модели в соответствии с референсом. Во время этого действия важно проследить, чтобы все цилиндры находились на одном уровне, в противном случае после булевых операций глубина отверстий получится неравномерной.</p>
22 <p>Конструкция рации предполагает множество мелких отверстий в области микрофона и динамика. Эти детали можно проработать с помощью булевых операций. В данном случае Брейди создал группу цилиндров, толщина которых соответствует предполагаемым отверстиям, и разместил их на модели в соответствии с референсом. Во время этого действия важно проследить, чтобы все цилиндры находились на одном уровне, в противном случае после булевых операций глубина отверстий получится неравномерной.</p>
23 Установка группы цилиндров для будущих отверстий на меш динамика<em>Изображение: James Brady / 3D World UK, 2024. №317</em><p>Аналогичные действия необходимо провести со всеми элементами, где требуются углубления, включая мельчайшие детали. Например, у рации художника рядом с антенной есть небольшое отверстие с гайкой.</p>
23 Установка группы цилиндров для будущих отверстий на меш динамика<em>Изображение: James Brady / 3D World UK, 2024. №317</em><p>Аналогичные действия необходимо провести со всеми элементами, где требуются углубления, включая мельчайшие детали. Например, у рации художника рядом с антенной есть небольшое отверстие с гайкой.</p>
24 Расположение цилиндра на меше верхней части рации<em>Изображение: James Brady / 3D World UK, 2024. №317</em><p>После того как все предназначенные для булевых операций примитивы вставлены‎ в меш, можно экспортировать модель в ZBrush в формате<strong>OBJ</strong>.</p>
24 Расположение цилиндра на меше верхней части рации<em>Изображение: James Brady / 3D World UK, 2024. №317</em><p>После того как все предназначенные для булевых операций примитивы вставлены‎ в меш, можно экспортировать модель в ZBrush в формате<strong>OBJ</strong>.</p>
25 <p>Загружаем<strong>OBJ</strong>-файл в ZBrush. После загрузки объекта в меню<strong>Tool</strong>открываем вкладку<strong>Subtool</strong>и, чуть прокрутив её вниз, находим кнопку<strong>Split</strong>, и нажимаем<strong>Split to Similar Parts</strong>.</p>
25 <p>Загружаем<strong>OBJ</strong>-файл в ZBrush. После загрузки объекта в меню<strong>Tool</strong>открываем вкладку<strong>Subtool</strong>и, чуть прокрутив её вниз, находим кнопку<strong>Split</strong>, и нажимаем<strong>Split to Similar Parts</strong>.</p>
26 <p>Программа автоматически распозн<strong>а</strong>ет задействованные в булевых операциях меши и отделит их от основных деталей. Все они появятся в категории<strong>Subtool</strong>в качестве отдельных элементов. Такой подход позволяет избежать заметных артефактов во время процесса. После этого необходимо проверить список разделённых сегментов на панели<strong>Subtool</strong>и убедиться, что меши, предназначенные для булевых операций, находятся выше мешей, в которых нужно проделать отверстия: в дальнейшем они объединятся во время выполнения функции<strong>DynaMesh</strong>.</p>
26 <p>Программа автоматически распозн<strong>а</strong>ет задействованные в булевых операциях меши и отделит их от основных деталей. Все они появятся в категории<strong>Subtool</strong>в качестве отдельных элементов. Такой подход позволяет избежать заметных артефактов во время процесса. После этого необходимо проверить список разделённых сегментов на панели<strong>Subtool</strong>и убедиться, что меши, предназначенные для булевых операций, находятся выше мешей, в которых нужно проделать отверстия: в дальнейшем они объединятся во время выполнения функции<strong>DynaMesh</strong>.</p>
27 Интерфейс загрузки мешей и их распределение в Subtool<em>Изображение: James Brady / 3D World UK, 2024. №317</em>Видеоинструкция, как найти функцию<strong>Split to Parts</strong>в ZBrush<p>В <strong>Subtool</strong>выделяем первый меш, над которым необходимо провести булеву операцию (в данном примере это микрофон или динамик). Прокрутив панель вниз, находим вкладку<strong>Dynamesh</strong>. В настройках этого инструмента Брейди обычно выставляет ползунок слайдера с разрешением на 1400. Такой вариант настроек обеспечит желаемую форму и плотность при дальнейшей конвертации меша.</p>
27 Интерфейс загрузки мешей и их распределение в Subtool<em>Изображение: James Brady / 3D World UK, 2024. №317</em>Видеоинструкция, как найти функцию<strong>Split to Parts</strong>в ZBrush<p>В <strong>Subtool</strong>выделяем первый меш, над которым необходимо провести булеву операцию (в данном примере это микрофон или динамик). Прокрутив панель вниз, находим вкладку<strong>Dynamesh</strong>. В настройках этого инструмента Брейди обычно выставляет ползунок слайдера с разрешением на 1400. Такой вариант настроек обеспечит желаемую форму и плотность при дальнейшей конвертации меша.</p>
28 <em>Изображение: James Brady / 3D World UK, 2024. №317</em><p>Затем необходимо выбрать объект, с помощью которого проводится булева операция, и назначить его отрицательным, то есть<a>нажать</a>на значок полумесяца рядом с объектом в меню<strong>Subtool</strong>. Это значит, что после выполнения операции сторонний меш, вставленный в основной объект, удалится, но отверстия от него останутся.</p>
28 <em>Изображение: James Brady / 3D World UK, 2024. №317</em><p>Затем необходимо выбрать объект, с помощью которого проводится булева операция, и назначить его отрицательным, то есть<a>нажать</a>на значок полумесяца рядом с объектом в меню<strong>Subtool</strong>. Это значит, что после выполнения операции сторонний меш, вставленный в основной объект, удалится, но отверстия от него останутся.</p>
29 <p>Убедившись, что выделены обе полигональные сетки, заходим во вкладку<strong>Polygroups</strong>и нажимаем<strong>Group As DynaMesh Sub</strong>, после чего во вьюпорте выделится извлекаемый меш. Осталось только объединить оба меша: удерживая<strong>Ctrl</strong>, нажимаем<strong>ЛКМ</strong>и перетаскиваем курсор в сторону. После этого на меше появятся отверстия.</p>
29 <p>Убедившись, что выделены обе полигональные сетки, заходим во вкладку<strong>Polygroups</strong>и нажимаем<strong>Group As DynaMesh Sub</strong>, после чего во вьюпорте выделится извлекаемый меш. Осталось только объединить оба меша: удерживая<strong>Ctrl</strong>, нажимаем<strong>ЛКМ</strong>и перетаскиваем курсор в сторону. После этого на меше появятся отверстия.</p>
30 <em>Изображение: James Brady / 3D World UK, 2024. №317</em><p>Аналогичный процесс необходимо повторить со всеми остальными элементами high-poly-модели, где требуются отверстия.</p>
30 <em>Изображение: James Brady / 3D World UK, 2024. №317</em><p>Аналогичный процесс необходимо повторить со всеми остальными элементами high-poly-модели, где требуются отверстия.</p>
31 <p>После всех преобразований объекты экспортируют обратно в софт для 3D-моделирования (в рамках рабочего пайплайна), чтобы создать низкополигональную версию модели. Самый быстрый способ - использовать в качестве основы изначальный меш, полученный на этапе блокинга.</p>
31 <p>После всех преобразований объекты экспортируют обратно в софт для 3D-моделирования (в рамках рабочего пайплайна), чтобы создать низкополигональную версию модели. Самый быстрый способ - использовать в качестве основы изначальный меш, полученный на этапе блокинга.</p>
32 <p>Каждую часть необходимо сопоставить с high-poly-аналогами. Возможно, high-poly-сегментов окажется больше, и недостающие элементы можно просто смоделировать вручную. Размеры high-poly- и low-poly-деталей должны полностью совпадать, иначе в дальнейшем могут возникнуть проблемы в процессе запекания, включая видимые артефакты, и ошибки, связанные с отсутствием перекрытий полигональных сеток.</p>
32 <p>Каждую часть необходимо сопоставить с high-poly-аналогами. Возможно, high-poly-сегментов окажется больше, и недостающие элементы можно просто смоделировать вручную. Размеры high-poly- и low-poly-деталей должны полностью совпадать, иначе в дальнейшем могут возникнуть проблемы в процессе запекания, включая видимые артефакты, и ошибки, связанные с отсутствием перекрытий полигональных сеток.</p>
33 <em>Изображение: James Brady / 3D World UK, 2024. №317</em><p>Продолжайте дорабатывать изначальный меш, полученный в результате блокинга, пока он не будет идеально сопоставлен с high-poly-деталями. Если в ассете есть несколько одинаковых мешей (к примеру, как динамики в рации Брейди), можно выбрать одну деталь и работать только с ней, а затем продублировать её после этапа с UV-развёрткой.</p>
33 <em>Изображение: James Brady / 3D World UK, 2024. №317</em><p>Продолжайте дорабатывать изначальный меш, полученный в результате блокинга, пока он не будет идеально сопоставлен с high-poly-деталями. Если в ассете есть несколько одинаковых мешей (к примеру, как динамики в рации Брейди), можно выбрать одну деталь и работать только с ней, а затем продублировать её после этапа с UV-развёрткой.</p>
34 Доработка низкополигональных мешей под размер высокополигональных<em>Изображение: James Brady / 3D World UK, 2024. №317</em><p>Если текущий результат вас устраивает и все детали корректно сопоставлены с high poly, можно перейти к созданию UV-развёртки. Для начала необходимо убедиться, что у будущей UV-развёртки отсутствуют растяжения и перекосы, и проверить плотность текселей с помощью специальных настроек.</p>
34 Доработка низкополигональных мешей под размер высокополигональных<em>Изображение: James Brady / 3D World UK, 2024. №317</em><p>Если текущий результат вас устраивает и все детали корректно сопоставлены с high poly, можно перейти к созданию UV-развёртки. Для начала необходимо убедиться, что у будущей UV-развёртки отсутствуют растяжения и перекосы, и проверить плотность текселей с помощью специальных настроек.</p>
35 <p>К примеру, чтобы сделать это в 3ds Max, нужно выбрать<strong>UV Unwrap Modifier</strong>: в списке модификаторов<strong>Modifier list</strong>он отмечен как<strong>Unwrap UVW</strong>. На панели<strong>Edit UVs</strong>нажимаем кнопку<strong>Open UV Editor…</strong>В появившемся редакторе находим в главном меню вкладку<strong>Options</strong>и выбираем<strong>Preferences</strong>. После этого откроется окно<a><strong>Unwrap Options</strong></a>, где можно настроить плотность текселей в пункте<strong>Checker Tiling</strong>.</p>
35 <p>К примеру, чтобы сделать это в 3ds Max, нужно выбрать<strong>UV Unwrap Modifier</strong>: в списке модификаторов<strong>Modifier list</strong>он отмечен как<strong>Unwrap UVW</strong>. На панели<strong>Edit UVs</strong>нажимаем кнопку<strong>Open UV Editor…</strong>В появившемся редакторе находим в главном меню вкладку<strong>Options</strong>и выбираем<strong>Preferences</strong>. После этого откроется окно<a><strong>Unwrap Options</strong></a>, где можно настроить плотность текселей в пункте<strong>Checker Tiling</strong>.</p>
36 Настройки<strong>Checker Tiling</strong>в 3ds Max<em>Изображение: James Brady / 3D World UK, 2024. №317</em><h2>Упаковка UV-островов</h2>
36 Настройки<strong>Checker Tiling</strong>в 3ds Max<em>Изображение: James Brady / 3D World UK, 2024. №317</em><h2>Упаковка UV-островов</h2>
37 <p>Подготовив UV-развёртку низкополигонального меша, необходимо её упаковать. Все<a>UV-острова</a>(шеллы) размещаются в UV-пространстве от 0 до 1.</p>
37 <p>Подготовив UV-развёртку низкополигонального меша, необходимо её упаковать. Все<a>UV-острова</a>(шеллы) размещаются в UV-пространстве от 0 до 1.</p>
38 <p>Что такое "от 0 до 1" в UV-развёртке?</p>
38 <p>Что такое "от 0 до 1" в UV-развёртке?</p>
39 <p>Как правило, разрешение текстур для моделей варьируется от 512×512 пикселей до 4K (4096×4096 пикселей). Поэтому при размещении UV-островов нет смысла использовать пиксельные координаты, и в качестве альтернативы выбрана специальная система координат 0-1. В буквальном смысле это небольшой квадрат, где точка 0 - это пересечение осей U и V, а 1 - точки на обеих осях. Координаты этого отрезка и сопоставляются с границами текстуры.</p>
39 <p>Как правило, разрешение текстур для моделей варьируется от 512×512 пикселей до 4K (4096×4096 пикселей). Поэтому при размещении UV-островов нет смысла использовать пиксельные координаты, и в качестве альтернативы выбрана специальная система координат 0-1. В буквальном смысле это небольшой квадрат, где точка 0 - это пересечение осей U и V, а 1 - точки на обеих осях. Координаты этого отрезка и сопоставляются с границами текстуры.</p>
40 <p>Величина UV-островов в UV-пространстве напрямую связана с применением и демонстрацией ассета в игре. Например, в UV-развёртке Брейди корпус рации представлен одним большим шеллом. Это обеспечит высокую детализацию фрагменту текстуры, и на нём будут легко считываться царапины, потёртости, маркировки и другие детали.</p>
40 <p>Величина UV-островов в UV-пространстве напрямую связана с применением и демонстрацией ассета в игре. Например, в UV-развёртке Брейди корпус рации представлен одним большим шеллом. Это обеспечит высокую детализацию фрагменту текстуры, и на нём будут легко считываться царапины, потёртости, маркировки и другие детали.</p>
41 Слева представлен общий вид UV-развёртки рации, справа выделен UV-остров корпуса, внизу - UV-острова динамиков<em>Изображение: James Brady / 3D World UK, 2024. №317</em><p>Художник рекомендует упаковывать развёртку таким образом, чтобы UV-острова одной детали находились рядом. Благодаря такому подходу не только проще заметить ошибку в текстурировании, когда, к примеру, уникальный элемент текстуры затронул другой остров, но и оптимизировать связующие UV-острова. Под ними подразумеваются смежные элементы, которые не видит игрок, но фактически они находятся в той же области, где расположен видимый UV-остров ассета.</p>
41 Слева представлен общий вид UV-развёртки рации, справа выделен UV-остров корпуса, внизу - UV-острова динамиков<em>Изображение: James Brady / 3D World UK, 2024. №317</em><p>Художник рекомендует упаковывать развёртку таким образом, чтобы UV-острова одной детали находились рядом. Благодаря такому подходу не только проще заметить ошибку в текстурировании, когда, к примеру, уникальный элемент текстуры затронул другой остров, но и оптимизировать связующие UV-острова. Под ними подразумеваются смежные элементы, которые не видит игрок, но фактически они находятся в той же области, где расположен видимый UV-остров ассета.</p>
42 <p>После того как все UV-острова распределены в пространстве 0-1, можно приступить к запеканию карт для текстурирования. Этот процесс удобнее всего выполнять в Marmoset Toolbag. Открываем программу и импортируем созданные low-poly- и high-poly-меши. Во избежание различных проблем с масштабированием и смещением, убедитесь, что обе модели импортированы как файлы<strong>.fbx</strong>. После загрузки моделей желательно назначить на каждую из них цветной материал, чтобы было проще их идентифицировать и отследить нежелательные выступы low-poly-меша.</p>
42 <p>После того как все UV-острова распределены в пространстве 0-1, можно приступить к запеканию карт для текстурирования. Этот процесс удобнее всего выполнять в Marmoset Toolbag. Открываем программу и импортируем созданные low-poly- и high-poly-меши. Во избежание различных проблем с масштабированием и смещением, убедитесь, что обе модели импортированы как файлы<strong>.fbx</strong>. После загрузки моделей желательно назначить на каждую из них цветной материал, чтобы было проще их идентифицировать и отследить нежелательные выступы low-poly-меша.</p>
43 Высокополигональные и низкополигональные модели, загруженные в Marmoset Toolbag и отмеченные разными цветами<em>Изображение: James Brady / 3D World UK, 2024. №317</em><p>В главном меню Marmoset Toolbag открываем вкладку<strong>Scene</strong>и переходим в <strong>New Object</strong> -<strong>Bake Project</strong>. После этого переместите high-poly- и low-poly-модели в соответствующие категории, которые появились в аутлайнере слева. Выделите<strong>Bake Project 1</strong>и убедитесь, что все карты в разделе<strong>Map</strong>отмечены галочкой, за исключением<strong>Material ID</strong>.</p>
43 Высокополигональные и низкополигональные модели, загруженные в Marmoset Toolbag и отмеченные разными цветами<em>Изображение: James Brady / 3D World UK, 2024. №317</em><p>В главном меню Marmoset Toolbag открываем вкладку<strong>Scene</strong>и переходим в <strong>New Object</strong> -<strong>Bake Project</strong>. После этого переместите high-poly- и low-poly-модели в соответствующие категории, которые появились в аутлайнере слева. Выделите<strong>Bake Project 1</strong>и убедитесь, что все карты в разделе<strong>Map</strong>отмечены галочкой, за исключением<strong>Material ID</strong>.</p>
44 Расширенный видеоурок о процессе запекания в Marmoset Toolbag<p>В разделе<strong>Output</strong>в пункте<strong>Samples</strong>укажите 64x, а в <strong>Resolution</strong> - 4096×4096. Запечённые детали получатся более чёткими и без зубчатых артефактов в хорошем разрешении. Перед запеканием проверьте<a>кейдж</a>и убедитесь, что он перекрывает все меши. Если расположение кейджа вас устраивает, просто нажмите<strong>Bake</strong>.</p>
44 Расширенный видеоурок о процессе запекания в Marmoset Toolbag<p>В разделе<strong>Output</strong>в пункте<strong>Samples</strong>укажите 64x, а в <strong>Resolution</strong> - 4096×4096. Запечённые детали получатся более чёткими и без зубчатых артефактов в хорошем разрешении. Перед запеканием проверьте<a>кейдж</a>и убедитесь, что он перекрывает все меши. Если расположение кейджа вас устраивает, просто нажмите<strong>Bake</strong>.</p>
45 Распределение high-poly- и low-poly-мешей в аутлайнере, предварительные настройки и установка кейджа<em>Изображение: James Brady / 3D World UK, 2024. №317</em><p>Запускаем Substance 3D Painter и выбираем<strong>New Project</strong>, после чего откроется стартовое окно с предварительными настройками. В данном примере ассет рации изначально создавался для проекта на движке Unreal Engine 4, поэтому в категории шаблона<strong>Template</strong>выбрана опция<strong>Unreal Engine 4 (starter_assets)</strong>, а в <strong>Document Resolution</strong> - разрешение 4096.</p>
45 Распределение high-poly- и low-poly-мешей в аутлайнере, предварительные настройки и установка кейджа<em>Изображение: James Brady / 3D World UK, 2024. №317</em><p>Запускаем Substance 3D Painter и выбираем<strong>New Project</strong>, после чего откроется стартовое окно с предварительными настройками. В данном примере ассет рации изначально создавался для проекта на движке Unreal Engine 4, поэтому в категории шаблона<strong>Template</strong>выбрана опция<strong>Unreal Engine 4 (starter_assets)</strong>, а в <strong>Document Resolution</strong> - разрешение 4096.</p>
46 <p>Загружаем низкополигональную модель ассета и набор<strong>PSD</strong>-файлов карт, экспортированных из Marmoset Toolbag. В карте нормалей необходимо инвертировать зелёный канал (<strong>Green</strong>), чтобы движок мог в дальнейшем корректно считать рельеф поверхности. Эту манипуляцию также можно проделать в Photoshop.</p>
46 <p>Загружаем низкополигональную модель ассета и набор<strong>PSD</strong>-файлов карт, экспортированных из Marmoset Toolbag. В карте нормалей необходимо инвертировать зелёный канал (<strong>Green</strong>), чтобы движок мог в дальнейшем корректно считать рельеф поверхности. Эту манипуляцию также можно проделать в Photoshop.</p>
47 Вкладка с каналами в Adobe Photoshop<em>Изображение: James Brady / 3D World UK, 2024. №317</em><p><strong>Зачем нужно инвертировать канал Green?</strong></p>
47 Вкладка с каналами в Adobe Photoshop<em>Изображение: James Brady / 3D World UK, 2024. №317</em><p><strong>Зачем нужно инвертировать канал Green?</strong></p>
48 <p>У нормалей вершин существует собственная система координат, основанная на векторах X, Y, Z. Первые два отвечают за передачу рельефа поверхности и шейдинг. И большинство современных программ для 3D-моделирования и движков используют векторное пространство<strong>Y+</strong>и (или)<strong>Y-</strong>, которое и отражено в зелёном канале карты нормалей (Green). Иными словами, этот канал отвечает отвечает за выпуклость или вогнутость поверхности. И если его в данном случае не инвертировать, то векторное пространство не будет синхронизировано и рельеф получится совершенно другим.</p>
48 <p>У нормалей вершин существует собственная система координат, основанная на векторах X, Y, Z. Первые два отвечают за передачу рельефа поверхности и шейдинг. И большинство современных программ для 3D-моделирования и движков используют векторное пространство<strong>Y+</strong>и (или)<strong>Y-</strong>, которое и отражено в зелёном канале карты нормалей (Green). Иными словами, этот канал отвечает отвечает за выпуклость или вогнутость поверхности. И если его в данном случае не инвертировать, то векторное пространство не будет синхронизировано и рельеф получится совершенно другим.</p>
49 <p>Также рекомендуем прочесть<a>наш материал</a>о создании ассетов в Blender в рамках AAA-производства. В нём можно узнать не только о специфике карт нормалей и векторов, но и ознакомиться с подробным списком программ, поддерживающих векторное пространство<strong>Y+</strong>и (или)<strong>Y-</strong>.</p>
49 <p>Также рекомендуем прочесть<a>наш материал</a>о создании ассетов в Blender в рамках AAA-производства. В нём можно узнать не только о специфике карт нормалей и векторов, но и ознакомиться с подробным списком программ, поддерживающих векторное пространство<strong>Y+</strong>и (или)<strong>Y-</strong>.</p>
50 <p>Создайте набор из запечённых текстур во вкладке<strong>Texture Set Settings</strong>. После применения они отобразятся на меше во вьюпорте. Далее можно приступить к текстурированию. Примените на ассет основу в виде цветного материала. Прежде чем наносить дополнительные детали, убедитесь, что цвет основного материала максимально схож с референсом. Для корпуса рации Брейди использовал пресет<strong>Steel Painted Stained</strong>, а для металлических деталей -<strong>Steel Stained</strong>из коллекции "<a>‎умных</a>" материалов<strong>Smart Materials</strong>.</p>
50 <p>Создайте набор из запечённых текстур во вкладке<strong>Texture Set Settings</strong>. После применения они отобразятся на меше во вьюпорте. Далее можно приступить к текстурированию. Примените на ассет основу в виде цветного материала. Прежде чем наносить дополнительные детали, убедитесь, что цвет основного материала максимально схож с референсом. Для корпуса рации Брейди использовал пресет<strong>Steel Painted Stained</strong>, а для металлических деталей -<strong>Steel Stained</strong>из коллекции "<a>‎умных</a>" материалов<strong>Smart Materials</strong>.</p>
51 <em>Изображение: James Brady / 3D World UK, 2024. №317</em><p>Во время текстурирования в Substance Painter можно применить фильтр<a><strong>Sharpen</strong></a>поверх слоя. Это поможет усилить чёткость деталей. Брейди предпочитает выставлять его интенсивность на 0.4 (параметр<strong>Sharpen Intensity</strong>).</p>
51 <em>Изображение: James Brady / 3D World UK, 2024. №317</em><p>Во время текстурирования в Substance Painter можно применить фильтр<a><strong>Sharpen</strong></a>поверх слоя. Это поможет усилить чёткость деталей. Брейди предпочитает выставлять его интенсивность на 0.4 (параметр<strong>Sharpen Intensity</strong>).</p>
52 <p>Следующий шаг - нанесение на поверхность различных деталей, в том числе обусловленных историей модели. Рация, например, может быть грязной и потёртой. Для первого слоя художник использовал генераторы, а затем нанёс ещё один слой вручную, чтобы добавить ассету авторских штрихов.</p>
52 <p>Следующий шаг - нанесение на поверхность различных деталей, в том числе обусловленных историей модели. Рация, например, может быть грязной и потёртой. Для первого слоя художник использовал генераторы, а затем нанёс ещё один слой вручную, чтобы добавить ассету авторских штрихов.</p>
53 <p>Вы можете добавить дополнительные детали уже созданным текстурам, изменяя параметры в <strong>Levels</strong> -<strong>Base Color</strong>в окне наверху иерархии слоёв.</p>
53 <p>Вы можете добавить дополнительные детали уже созданным текстурам, изменяя параметры в <strong>Levels</strong> -<strong>Base Color</strong>в окне наверху иерархии слоёв.</p>
54 <p>Во время текстурирования важно следить за отображением карт, отвечающих за свойства шероховатости (<strong>Roughness)</strong>и металла (<strong>Metallic</strong>). К примеру, детали с высоким параметром шероховатости хорошо подчёркивают запылившиеся участки и в целом матируют поверхность. Металлические поверхности представлены на карте либо 100% чёрным (то есть без отражений), либо 100% белым цветом, без промежуточных значений.</p>
54 <p>Во время текстурирования важно следить за отображением карт, отвечающих за свойства шероховатости (<strong>Roughness)</strong>и металла (<strong>Metallic</strong>). К примеру, детали с высоким параметром шероховатости хорошо подчёркивают запылившиеся участки и в целом матируют поверхность. Металлические поверхности представлены на карте либо 100% чёрным (то есть без отражений), либо 100% белым цветом, без промежуточных значений.</p>
55 Слева - стандартный вид ассета, в центре - отображение карт<strong>Roughness</strong>, справа -<strong>Metallic</strong><em>Изображение: James Brady / 3D World UK, 2024. №317</em><p>Помните, что краска на предметах в реальной жизни имеет свойство со временем выцветать, в частности из-за погодных условий. Важно передать эти детали в ассете, чтобы сделать их максимально правдоподобными.</p>
55 Слева - стандартный вид ассета, в центре - отображение карт<strong>Roughness</strong>, справа -<strong>Metallic</strong><em>Изображение: James Brady / 3D World UK, 2024. №317</em><p>Помните, что краска на предметах в реальной жизни имеет свойство со временем выцветать, в частности из-за погодных условий. Важно передать эти детали в ассете, чтобы сделать их максимально правдоподобными.</p>
56 <p>И наконец, финальный этап - экспорт текстур в Unreal Engine. В Substance 3D Painter переходим в <strong>File</strong> -<strong>Export Textures</strong>, выбираем папку для будущих текстур и проверяем, чтобы в графе<strong>Output Template</strong>отображалась надпись<strong>Unreal Engine 4 (Packed)</strong>. В <strong>File Type</strong>указываем расширение<strong>Targa (.tga)</strong>, так как это самый распространённый тип расширения для Unreal Engine. В графе<strong>Texture Set List</strong>необходимо прописать название для набора текстур. Помните, что в отношении наименований текстурных карт для внутриигровых ассетов очень важно придерживаться чёткой идентификации и последовательных обозначений, например<strong>T_MilitaryRadio_01</strong>.</p>
56 <p>И наконец, финальный этап - экспорт текстур в Unreal Engine. В Substance 3D Painter переходим в <strong>File</strong> -<strong>Export Textures</strong>, выбираем папку для будущих текстур и проверяем, чтобы в графе<strong>Output Template</strong>отображалась надпись<strong>Unreal Engine 4 (Packed)</strong>. В <strong>File Type</strong>указываем расширение<strong>Targa (.tga)</strong>, так как это самый распространённый тип расширения для Unreal Engine. В графе<strong>Texture Set List</strong>необходимо прописать название для набора текстур. Помните, что в отношении наименований текстурных карт для внутриигровых ассетов очень важно придерживаться чёткой идентификации и последовательных обозначений, например<strong>T_MilitaryRadio_01</strong>.</p>
57 - Настройки экспорта в Substance 3D Painter<em>Изображение: James Brady / 3D World UK, 2024. №317</em>Итоговый результат<em>Изображение:<a>Джеймс Брейди</a></em><a>Научитесь: 3D моделирова­ние для начинаю­щих Узнать больше</a>
57 + Настройки экспорта в Substance 3D Painter<em>Изображение: James Brady / 3D World UK, 2024. №317</em>Итоговый результат<em>Изображение:<a>Джеймс Брейди</a></em><a>Научитесь: 3D-моделирование для начинающих Узнать больше</a>