Создание 3D-персонажей для мобильных игр
Вы разрабатываете мобильную RPG. Главный герой выглядит отлично в Blender, но на Samsung Galaxy A32 вы получаете 20 FPS. Баланс между визуалом и производительностью — главная задача. Low-poly модель — не про плохое качество, а про умное распределение ресурсов. Наш опыт — более 50 персонажей для 15 игр разных жанров. Мы знаем, как избежать таких проблем.
Почему важен полигональный бюджет?
Каждый лишний треугольник — нагрузка на GPU и память. На мобильных устройствах с ограниченным тепловыделением превышение бюджета вызывает троттлинг и падение FPS. Мы гарантируем, что модель впишется в заданные лимиты без потери визуального качества. Целевые показатели для разных жанров:
| Тип игры | Главный персонаж | NPC / враги | Фоновые |
|---|---|---|---|
| Hyper-casual 3D | 500–1500 tri | 200–800 tri | 100–400 tri |
| Casual 3D | 1500–4000 tri | 800–2000 tri | 300–1000 tri |
| Midcore | 3000–8000 tri | 1000–4000 tri | 500–2000 tri |
Это треугольники (tris), а не полигоны. В Unity и Godot счётчик показывает tris. Blender по умолчанию показывает faces — умножаем на ~2 для триангулированных мешей.
LOD (Level of Detail) — обязателен для персонажей, которые могут быть далеко от камеры. LOD0 (полный), LOD1 (50–60% поликаунта), LOD2 (25%). Компонент Unity LODGroup переключает автоматически по расстоянию. Экономия draw calls существенная при сценах с 10+ персонажами.
Как создаются 3D-модели персонажей для мобильных игр?
Процесс начинается с анализа требований проекта. Определяем стилистику, жанр и целевые устройства. Затем разрабатываем техническое задание, где фиксируем полигональный бюджет, формат текстур и настройки рига. Это критически важно для последующей оптимизации. Например, для hyper-casual игр главный герой может иметь всего 500–1500 треугольников, а для midcore RPG — до 8000. Ошибочный выбор на старте приводит к переделкам и лишним затратам. Наши инженеры сразу закладывают правильные параметры, экономя бюджет проекта.
Риг и скининг
Humanoid rig. Используем Unity Animator с Avatar для человекоподобных персонажей. Это позволяет применять motion capture и Mecanim transitions. Количество костей — 20–40 для мобильного персонажа. Больше — выше CPU нагрузка на скининг.
Generic rig. Для существ, транспорта, нестандартных форм. Меньше ограничений по иерархии костей. BlendTree в Animator обеспечивает плавные переходы.
Skinning quality. В Unity Quality Settings → Skin Weights для мобайла используем 2 Bones вместо 4 Bones. Разница в деформации минимальна, экономия CPU заметна на 20+ персонажах на экране.
Blend shapes (morph targets) — для мимики лица. Каждый blend shape — дополнительный проход по вершинам. На мобайле ограничиваемся 5–10 ключевыми выражениями для главного персонажа.
Как выбрать между humanoid и generic rig?
Если персонаж человекоподобный и требуется готовая анимация, выбирайте humanoid. Для уникальных существ (драконы, роботы) generic даёт больше контроля над скелетом. В большинстве мобильных проектов humanoid эффективнее из-за переиспользования анимаций и более низкой стоимости разработки.
Текстуры и материалы
Texel density — плотность пикселей текстуры на единицу поверхности — должна быть согласована между всеми персонажами сцены. Персонаж с 4K текстурой рядом с NPC на 256px выглядит непрофессионально.
Стандартные текстуры PBR: Albedo (Base Color), Metallic/Roughness (или Specular), Normal Map, Emission (опционально). На мобайле Normal Map часто оставляют только для главного героя.
Atlasing текстур. Несколько персонажей на одном атласе = один Material = один Draw Call. Особенно важно для батальных сцен с однотипными врагами. В Unity GPU Instancing + общий Material позволяют отрисовывать 100 одинаковых врагов за один draw call.
Компрессия: ASTC 6x6 для iOS, ETC2 для Android. Для Albedo — ASTC 6x6 (lossy, но приемлемо). Normal Map — ASTC 4x4 (нужна точность для освещения).
Из практики: midcore RPG на Unity URP. Сцена с 15 врагами давала 200+ draw calls, FPS 25 на iPhone 11. После внедрения GPU Instancing + общий Material + LOD1 для врагов дальше 10 метров — draw calls упали до 45, FPS стабильные 60. Изменения только в настройках pipeline, модели не трогали. Это показывает, как грамотная оптимизация текстур и материалов экономит ресурсы и бюджет.
Технические детали оптимизации
- Используем Unity URP с Forward rendering path. - GPU Instancing для повторяющихся моделей. - Texture atlasing для уменьшения draw calls. - Оптимизация шейдеров через Shader Graph.Сравнение URP и Built-in
| Критерий | URP | Built-in |
|---|---|---|
| Производительность на мобайле | Выше (Lit shader быстрее) | Ниже (Standard shader тяжелее) |
| Shader Graph | Да (без HLSL) | Нет |
| Renderer Features | Да (outline, постобработка) | Нет |
| Поддержка Forward/Deferred | Forward только | Forward и Deferred |
| Кастомные шейдеры | Через Shader Graph или HLSL | HLSL |
URP — стандарт для новых мобильных проектов. Stylized шейдеры (cel shading, toon) популярны в мобильных играх и реализуются через Shader Graph без программирования: Ramp Texture для света + Fresnel для rim light = cartoon look.
Процесс создания персонажа
- Блокинг — базовые формы из примитивов.
- Детализация — проработка анатомии.
- Retopology — чистая топология под анимацию. Ручная для деформируемых мест (суставы, лицо).
- UV unwrap — оптимальное использование текстурного пространства.
- Запечка нормалей — перенос деталей с high-poly на low-poly.
- Текстурирование в Substance Painter (Albedo, Normal, Metallic/Roughness).
- Риг и скининг — humanoid или generic rig, весовая раскраска.
- Тест в движке — проверка анимации и шейдера на целевом устройстве.
- Оптимизация — профилирование, настройка LOD и draw calls.
Что входит в работу
- 3D-моделирование с соблюдением полигонального бюджета
- UV unwrap с оптимальным использованием текстурного пространства
- Запечка деталей high-poly → low-poly
- Текстурирование (Albedo, Normal, Metallic/Roughness)
- Риг и скининг под humanoid или generic rig
- LOD0 + LOD1 + LOD2
- Экспорт в FBX/glTF с настройками под Unity / Godot
- Тест в движке с проверкой анимации и шейдера
Сроки и бюджет
Создание одного персонажа casual-уровня (1500–4000 tri, базовый набор текстур, humanoid rig) занимает 2–4 недели. Герой midcore-игры с полной текстурной картой, blend shapes и LOD — 4–8 недель. Серийное производство похожих NPC идёт быстрее за счёт переиспользования базового меша. Стоимость рассчитывается индивидуально, но грамотная оптимизация на старте может существенно сократить общие расходы на разработку персонажей. Средний бюджет на разработку одного персонажа для мобильной игры варьируется от 1500 до 8000 USD в зависимости от сложности и детализации.
Свяжитесь с нами для обсуждения вашего проекта. Мы оценим задачу и предложим оптимальное решение, которое впишется в бюджет и сроки. Ваша игра получит героя, который не подведёт под нагрузкой. Закажите консультацию по оптимизации персонажей.







