Создание 3D-моделей персонажей (Low-poly)
Low-poly персонаж — это компромисс, выраженный в полигонах. Каждый треугольник должен работать: на силуэт, на деформацию, на читаемость текстуры. Лишний edge loop в ненужном месте — это не «запас», это waste, который умножается на количество одновременных экземпляров в сцене.
Конкретный пример из практики: мобильная RPG с тактической камерой, 20 юнитов одновременно на экране. Изначальный hero mesh — 8 200 triangles. После профилирования в Unity Profiler выясняется, что одни только персонажи дают 164k tris на кадр, и это до окружения. Перегон каждого юнита в 3 500–4 500 tri с пересмотром UV layout снизил draw calls и дал стабильные 60fps на mid-range Android. Это не магия — это дисциплина работы с polycount.
Где ломается low-poly pipeline
Главная ошибка — делать low-poly «из high-poly через ZRemesher». Автоматические ретопологизаторы не понимают, где нужен edge loop под деформацию, а где — нет. Результат: дополнительные полигоны в статичных зонах и недостаток геометрии там, где персонаж гнётся. Плечевой сустав с тремя петлями не деформируется — он ломается.
Второй камень — UV islands и texel density. Если UV-развёртка делается наспех, лицо получает такой же texel density, как ботинок. На 512×512 текстуре (типично для мобайла) лицо персонажа превращается в кашу. Разные части тела требуют разного распределения UV space по приоритету визуальной важности.
Третий момент — skinning-friendliness топологии. Edge loops должны идти вдоль мышечных групп, а не поперёк суставов. Программист-риггер или технический аниматор видит модель и сразу понимает, будет ли skinning предсказуемым. Плохая топология = часы правок на анимационной стадии.
Как строится работа над low-poly персонажем
Отправная точка — технические требования: целевая платформа, polycount budget, размер texture atlas, движок. Blender, Maya или 3ds Max — инструмент выбирается под pipeline проекта, не под предпочтения художника.
Blockout. Сначала примитивы — box modeling от крупного к мелкому. Пропорции и силуэт важнее деталей. На этом этапе polycount уже контролируется: считаем triangles, не quads.
Topology pass. Ручная расстановка edge loops под риг. Ключевые зоны: плечевой сустав (минимум 2 петли), локоть (2–3 петли в зависимости от диапазона движения), колено, шея, запястье. Лицо — отдельный разговор для hero character, там edge flow под мимику принципиален.
UV unwrap. Делается в Blender или Rizom UV — зависит от сложности модели. Для mobile персонажа с одним 2048×2048 atlas принципиально важно: лицо получает максимум UV space, руки — в меру, ноги и спина — минимум. Seams прячутся в визуально неприоритетных зонах.
Подготовка под bake. Если модель идёт в пару с high-poly, настраиваем cage, проверяем отсутствие overlapping UV, экспортируем в FBX с правильными smoothing groups. Запекание делается в Marmoset Toolbag или через Substance Painter с настройкой match by mesh name.
Финальный формат — FBX или glTF 2.0 в зависимости от требований движка. Unity принимает оба, Unreal Engine лучше работает с FBX, web-движки (Three.js, Babylon.js) предпочитают glTF.
Ориентиры по срокам
| Сложность | Polycount | Сроки |
|---|---|---|
| Простой NPC (стилизация) | до 2 000 tri | 2–4 дня |
| Стандартный игровой персонаж | 3 000–6 000 tri | 4–8 дней |
| Hero character (full equipment) | 6 000–12 000 tri | 8–16 дней |
| Технически сложный (мех, броня) | 10 000–20 000 tri | 12–20 дней |
Это сроки на геометрию без текстурирования. UV unwrap входит в базовую стоимость. Стоимость рассчитывается индивидуально после анализа требований.
Что проверить до начала работы
- Согласован polycount budget с учётом количества одновременных экземпляров в сцене
- Есть концепт минимум с двух ракурсов (front + side), лучше — с четырёх
- Определён размер texture atlas и количество материальных слотов
- Указано, будет ли персонаж анимирован и насколько экстремальны деформации
- Ясно, нужен ли high-poly источник для запекания или текстурирование будет hand-painted





