Разрозненные уроки учат отдельным операциям: тут моделирование, там развёртка, отдельно запекание. Проблема в том, что каждый шаг зависит от предыдущего, и человек, знающий все операции по отдельности, часто не может пройти цикл целиком.
Разберём полный путь одного предмета от пустой сцены до работающего ассета в движке. Пример условный, но порядок и цифры реальные.
Что делаем и зачем такой порядок
Возьмём деревянный ящик с металлической окантовкой. Скучно, зато содержит всё: две группы материалов, прямые грани, места под потёртости и понятную развёртку.
Порядок операций не произволен. Каждый шаг создаёт то, без чего невозможен следующий: высокополигональная модель нужна для запекания, ретопология для развёртки, развёртка для текстур. Пропуск шага возвращает к нему позже, но с потерями.
Шаг 1. Блокинг, 15 минут
Собираем форму из примитивов. Задача одна: проверить пропорции и габариты.
Сразу задайте реальный размер. Ящик высотой 60 сантиметров это 0,6 метра в сцене. Работа в реальном масштабе избавляет от проблем с физикой, светом и импортом в движок.
На этом этапе не думайте о сетке вообще. Кубы, вытягивания, грубые пропорции. Если форма не читается в блокинге, детализация её не спасёт.
Шаг 2. Высокополигональная модель, 60 минут
Превращаем блокинг в детализированную модель, с которой потом снимем рельеф.
Фаски на всех рёбрах. Обязательно: острое ребро не даёт блика, и запечённая карта будет выглядеть плоско. Радиус фаски определяет, насколько мягким получится ребро.
Крепёж и мелочи. Заклёпки, шляпки гвоздей, петли. Всё это уйдёт в карту нормалей и не потребует полигонов в финальной модели.
Повреждения. Сколы на углах, вмятины, неровности досок. Именно они делают предмет живым.
Для хардсурфейса удобнее собирать высокополигональную модель модификаторами и булевыми операциями: подборку инструментов, которые это ускоряют, мы собирали в материале про аддоны для Blender.
Шаг 3. Низкополигональная модель, 40 минут
Строим чистую сетку, которая пойдёт в движок.
Бюджет. Для пропа такого размера в современной игре разумно уложиться в одну до трёх тысяч треугольников. Это много по меркам старых игр и мало по меркам кино.
Где тратить полигоны. На силуэт. Скруглённый угол, видимый в силуэте, требует геометрии. Вмятина на плоскости не требует: её нарисует карта нормалей.
Чем строить. Для механической формы проще всего скопировать высокополигональную и упростить, убрав фаски и мелочи. Для органики нужна полноценная ретопология, и здесь помогает автоматика: что она умеет, разбирали в материале про AI-ретопологию.
На выходе проверьте: квады, никаких n-gon, применённый масштаб, нормали наружу.
Шаг 4. Развёртка, 30 минут
Швы ставим по естественным границам: по рёбрам ящика, по стыку дерева и металла, по невидимым сторонам.
Правило, экономящее время: шов на границе материалов нужен всегда. Дерево и металл не должны делить один остров, иначе на границе будет грязь.
Плотность текселя одинаковая по всей модели. Проверяется шахматной текстурой: клетки должны быть одного размера везде.
Отступы между островами оставляйте с запасом. Экономия здесь оборачивается протеканием цвета при сжатии текстуры.
Шаг 5. Запекание, 20 минут
Переносим детали с высокополигональной модели.
Минимальный набор: normal, ambient occlusion, curvature. Первая даёт рельеф, вторая затенение в стыках, третья основу для потёртостей на рёбрах.
Отлаживайте на низком разрешении, финальный проход делайте один раз. Подробный разбор процесса и артефактов есть в материале про запекание карт в Blender.
Проверьте результат на модели при скользящем свете, а не по внешнему виду самой текстуры.
Шаг 6. Текстурирование, 60 минут
Собираем материалы поверх запечённых карт.
Базовые материалы. Дерево и металл, назначенные по маскам. Здесь пригодится карта идентификаторов, если вы её запекли.
Потёртости по кривизне. Curvature как маска: на выпуклых рёбрах краска стёрлась, металл блестит.
Грязь по затенению. AO как маска: в углублениях скопилась пыль.
Подтёки и пятна. Добавляют историю предмету. Важно не переусердствовать: чрезмерно потрёпанный ящик выглядит так же неестественно, как идеально новый.
Вариация цвета. Доски не бывают одного оттенка. Лёгкий разброс делает материал живым.
Шаг 7. Экспорт и импорт в движок, 15 минут
Шаг, на котором чаще всего теряют время из-за мелочей.
- Применить масштаб и повороты перед экспортом.
- Начало координат поставить туда, где предмет логично ставить: у ящика это центр нижней грани.
- Треугольные грани лучше сделать заранее, чтобы движок не сделал это по-своему.
- Имена без пробелов и кириллицы.
- Текстуры экспортировать в форматах, которые ждёт движок, с правильными цветовыми пространствами: базовый цвет как sRGB, остальные карты как данные.
Полный разбор граблей переноса есть в отдельном материале про экспорт из Blender в Unreal Engine 5.
Шаг 8. Проверка в движке, 20 минут
Финальный и самый недооценённый шаг.
- Масштаб. Поставьте рядом стандартную фигуру человека. Ящик по колено выглядит иначе, чем ящик по пояс.
- Освещение. Покрутите свет: рельеф должен читаться при любом направлении.
- Направление нормалей. Если рельеф вывернут, инвертируйте зелёный канал.
- Расстояние. Посмотрите с типичной дистанции игрока, а не вплотную.
- Производительность. Проверьте число вызовов отрисовки: несколько материалов на одном пропе это лишняя нагрузка.
Инструменты: что нужно на самом деле
Список программ, который обычно называют, выглядит пугающе. На практике набор меньше.
Обязательное. Пакет для моделирования и текстурный пакет. Всё. Blender закрывает первый пункт целиком, включая скульптинг, развёртку и запекание.
Полезное, но заменимое. Отдельный скульптинговый пакет для органики, отдельная программа для просмотра ассета в игровых условиях, генератор процедурных материалов.
Не нужное на старте. Всё остальное. Начинающему проще пройти цикл в одной программе и понять связи между шагами, чем осваивать четыре инструмента параллельно.
Практика показывает: человек, который сделал десять пропов в одном Blender, работает быстрее того, кто полгода собирал идеальный набор программ. Инструмент не делает ассет, порядок делает.
Организация файлов
Скучный, но решающий момент, когда ассетов становится больше пяти.
Единая структура папок. Исходники отдельно, экспорт отдельно, текстуры отдельно. Внутри каждой папка на предмет.
Понятные имена. Имя должно говорить, что это и какая карта. Латиница, без пробелов, единый разделитель. Файл с именем «финал_2_новый_точно_последний» это гарантированная потеря времени через месяц.
Версии исходников. Сохраняйте промежуточные состояния перед необратимыми операциями: перед применением модификаторов, перед объединением объектов. Возврат на шаг назад стоит копейки, восстановление после потери стоит часы.
Отдельный файл на предмет. Соблазн сложить всё в одну сцену велик, но такой файл быстро становится неподъёмным и любая ошибка задевает все объекты сразу.
Как масштабировать на набор ассетов
Один проп это упражнение. Работа начинается, когда предметов двадцать.
Делайте партиями по этапам, а не по предметам. Сначала блокинг всех двадцати, потом высокополигональные модели всех, потом развёртки. Переключение между типами задач съедает больше времени, чем кажется.
Общие текстурные наборы. Несколько мелких предметов из одного материала можно уложить в одну развёртку и один набор карт. Экономит и время, и производительность.
Шаблоны. Файл с настроенным светом для проверки, готовый набор узлов для сборки материала, сохранённые настройки экспорта. Всё это делается один раз.
Библиотека переиспользуемых элементов. Заклёпки, болты, петли, накладки. Один раз сделанный набор крепежа экономит время на каждом следующем предмете: как это организовать, разбирали в материале про библиотеку ассетов в Blender.
Сколько это заняло
Суммарно около четырёх часов на первый предмет. Это реальная цифра для человека, который знает инструменты, но проходит цикл впервые.
Со второго предмета время падает примерно вдвое, потому что настройки запекания, шаблоны материалов и порядок экспорта уже подобраны. С пятого предмета простой проп занимает полтора до двух часов.
Основная экономия достигается не скоростью рук, а отсутствием возвратов. Каждая ошибка на раннем шаге стоит переделки всех последующих.
Где чаще всего приходится возвращаться
Неверный масштаб. Обнаруживается в движке, требует переделки экспорта и иногда развёртки.
Плохая развёртка. Обнаруживается при текстурировании, требует переделки запекания.
Слишком мало геометрии в силуэте. Обнаруживается в движке, требует возврата к моделированию.
Забытые фаски на высокополигональной модели. Обнаруживается после запекания: рёбра выглядят плоско.
Несовпадение сглаживания. Обнаруживается после запекания как полосы на швах.
Отсюда практический совет: проверяйте результат каждого шага прежде, чем идти дальше. Пять минут проверки экономят час переделки.
Частые вопросы
Обязательна ли высокополигональная модель?
Для предмета с выраженным рельефом да. Для простого стилизованного пропа можно обойтись без неё и рисовать детали прямо в текстуре.
Сколько текстур делать на один проп?
Один набор карт на предмет это норма. Несколько материалов на мелком пропе означают лишние вызовы отрисовки без видимого выигрыша.
Что если нет текстурного пакета?
Материалы собираются и в Blender узлами по тем же принципам: маски по кривизне и затенению. Медленнее в работе, но результат достижим.
Нужны ли уровни детализации для одного пропа?
Если он встречается в сцене десятками, да. Для единичного предмета обычно нет, движок справится.
Как понять, что проп готов?
Он стоит в движке в правильном масштабе, читается с игровой дистанции, рельеф работает при любом свете, и вызовов отрисовки не больше, чем нужно. Всё остальное это уже улучшения.
