UV-развертка твердотельных объектов (Hard-surface) для игр
Hard-surface UV — это задача с чёткими правилами и предсказуемыми сложностями. Куб — проще органики, ствол автомата — уже интереснее, космический корабль с внутренними деталями — это несколько рабочих дней только на развёртку. Принципиальное отличие от органики: у hard-surface есть естественные seam-ы по рёбрам конструктивных элементов, и это одновременно преимущество и ловушка.
Ловушка в том, что «очевидные» seam-ы по всем граням дают сотни мелких islands, которые плохо упаковываются и дают низкий texel density. Хороший hard-surface unwrap — это баланс между количеством islands, texel density, hiding seams и технической корректностью для bake.
Технические сложности hard-surface развёртки
Cylindrical surfaces. Трубы, стволы, рукоятки — цилиндр разворачивается через один seam по наименее видимой образующей. Звучит просто, пока не появляется рукоятка пистолета с накладками, декоративными пазами и отверстиями. Каждое отверстие требует отдельного handling: либо отдельный island для торцов, либо seam по краям отверстия. Ни одно автоматическое решение не принимает это решение корректно — только ручной анализ.
Planar faces с нестандартным углом. Панели, наклонные грани, диагональные плоскости — если применять Project From View без выравнивания, получаем трапециевидные islands вместо прямоугольных. При запекании и создании trim sheet текстур это критично: прямоугольный island упаковывается эффективно, трапециевидный — нет.
Overlapping geometry (болты, заклёпки, детали крепежа). Для мелких деталей, которые повторяются многократно, overlap UV умышленно используется для экономии UV space. Но это работает только при строгих условиях: детали идентичны, освещение baker-а не оставит видимых различий между ними. Если хоть одна из клёпок повёрнута в сторону источника света иначе — overlap даст неправильный bake на этой детали.
Trim sheets и tiling textures. Для архитектурных элементов и технических поверхностей часто используется trim sheet pipeline: узкая текстура с набором деталей (рёбра, пазы, панели), которые tile-ятся вдоль поверхностей. UV для trim sheet разворачивается иначе чем для standard atlas: важен не только texel density, но и точное выравнивание island-ов по вертикальной оси атласа.
Процесс развёртки hard-surface объектов
Анализ модели. Определяем: что идёт в bake (normal map), что будет тайловой текстурой, что — atlas. Для сложных ассетов эти категории смешиваются.
Seam placement. Рёбра для seam выбираем по приоритетам: невидимые с игровой камеры грани — первый приоритет, interior surfaces — второй, конструктивные рёбра на тыльных сторонах — третий. Для оружия: дульный срез, нижняя грань рукоятки, внутренняя поверхность спускового крючка.
Инструмент. Rizom UV для всего. Maya UV Toolkit — если модель уже в Maya pipeline и нет смысла экспортировать. Blender UV Editor — для простых ассетов или если модель в Blender.
В Rizom UV для hard-surface ключевой инструмент — Auto Seam с последующей ручной правкой плюс Straighten UV для выравнивания прямолинейных граней. Прямоугольные панели должны давать прямоугольные islands — это требует дополнительного шага после Unfold.
Packing. Для hard-surface особенно важна ориентация islands. Прямоугольные island-ы, выровненные по осям, упаковываются значительно эффективнее, чем ротированные. UVPackmaster в Blender или встроенный packer Rizom UV дают хороший результат при правильной настройке Allow Rotation.
Texel density. Для weapons и hero props: 512 px/m как минимум для 2048 текстуры. Для environment hard-surface (стены, техника): 256–512 px/m в зависимости от дистанции от камеры. Разные части одного ассета могут иметь разный texel density — это нормально, если разница обоснована приоритетом зоны.
Специфика под движки
Unreal Engine. Статичные меши требуют второй UV channel (channel index 1) для lightmap. Lightmap UV — отдельный unwrap без overlap, с дополнительным padding (минимум 2px на 64px lightmap resolution, 4px на 128px). Это нельзя делать автоматически для hero objects — артефакты в запечённом освещении гарантированы.
Unity. Аналогичная история с Generate Lightmap UVs в import settings. Для высококачественных статичных ассетов — ручной lightmap UV в channel 2 (Unity 0-indexed: channel 1).
Ориентиры по срокам
| Тип объекта | Сроки |
|---|---|
| Простой проп (ящик, панель, деталь) | 1–4 часа |
| Оружие (пистолет, нож, автомат) | 4–10 часов |
| Транспорт (мотоцикл, машина) | 2–5 дней |
| Техника / механизм средней сложности | 1–3 дня |
| Архитектурный элемент с trim sheet | 1–2 дня |
Стоимость рассчитывается индивидуально. Lightmap UV channel включается в работу отдельным пунктом ТЗ.





