Создание 2D-спрайтов для мобильной игры с оптимизацией
Создание 2D-спрайтов для мобильной игры — это не просто рисунки. Мы знаем, что каждый спрайт должен быть оптимизирован под GPU, упакован в атласы и вписан в draw call бюджет. Без этого красивый арт роняет FPS на Android. За 5 лет работы мы выполнили более 50 проектов, где каждый спрайт проходил проверку на реальных устройствах.
Технический контекст для спрайтов
Sprite atlas. Множество отдельных PNG — это множество draw calls. Один атлас 2048×2048 с 50 спрайтами — один draw call. В Unity: Sprite Atlas через Package Manager, автоматическая упаковка через SpriteAtlas.Pack(). В Godot: AtlasTexture. Для 2D-игры с сотнями спрайтов атласы обязательны — иначе mid-range Android не вывезет.
Компрессия текстур. PNG на устройстве занимает место в RAM в несжатом виде — 2048×2048 RGBA = 16 МБ GPU памяти. Нужна GPU-нативная компрессия: ASTC 6x6 для iOS (iPhone 6+) и современного Android, ETC2 для старых Android (API 18+). В Unity TextureImporter — Compression: High Quality, Format: ASTC 6x6. Потеря качества при ASTC минимальна для игровой графики, экономия памяти — в 6–8 раз.
Как оптимизировать спрайты для разных платформ?
Выбор формата компрессии — ключевой шаг. Для iOS оптимален ASTC 6x6, для Android — ASTC 4x4 или ETC2. Если игра поддерживает старые устройства, используйте ETC2 с fallback на ETC1 для прозрачности. В Unity настройка происходит через TextureImporter с выбором платформы. Мы гарантируем, что каждый спрайт пройдёт тест на эталонных устройствах.
Pivot и Pixels Per Unit. Pivot спрайта (точка вращения) должен соответствовать логической точке объекта — для персонажа это основание ног, для снаряда — центр. Pixels Per Unit определяет масштаб в мировых координатах. Если PPU не согласованы между спрайтами — персонаж размером с башню или пиксель размером с экран.
Анимация спрайтов
Spritesheet vs individual frames. Spritesheet — стандарт: все кадры анимации в одном PNG на равных ячейках или запакованы через TexturePacker. TexturePacker упаковывает плотнее, чем Unity Sprite Editor, и поддерживает экспорт для любого движка.
Spine 2D documentation рекомендует использовать скелетную анимацию для персонажей, чтобы уменьшить размер сборки и повысить плавность.
Кадровая анимация в Unity: Animator + AnimationClip с Sprite property keyframes. Для простых анимаций (4–8 кадров) — Animator Override Controller позволяет менять анимацию без создания нового AnimatorController.
Skeletal animation (Spine, DragonBones). Для персонажей с плавной анимацией — скелетная анимация эффективнее покадровой. Spine 2D (платный, ~$69 essential) или бесплатный DragonBones. Один спрайт-лист с частями тела (руки, ноги, торс, голова) + кости + keyframe данные = плавная анимация без рисования 30 кадров бега. Spine Runtime для Unity — официальный пакет от Esoteric Software. Важно: версия Spine Runtime должна совпадать с версией Spine Editor, иначе бинарные файлы несовместимы.
Что выбрать: покадровую или скелетную анимацию?
Если игра требует плавных переходов (персонажи, животные) — скелетная анимация сэкономит до 40% размера сборки. Для простых объектов (враги, снаряды) достаточно покадровой. Мы помогаем выбрать оптимальный подход под ваш проект.
Из практики: платформер на Unity, 60 уникальных анимационных состояний персонажа. Художник нарисовал 8 кадров для каждого — 480 PNG файлов. Атлас не вмещался в 2048×2048, нужно было два атласа. После перехода на Spine с теми же спрайт-частями — 15 атрибутов плюс JSON данные анимаций, один атлас 1024×512. Анимации стали плавнее, размер сборки уменьшился на 40 МБ. Экономия на хранении и загрузке — до 60%.
Стили и технические требования по типам
| Тип спрайта | Рекомендуемое разрешение | Формат | Особенности |
|---|---|---|---|
| Персонаж (покадровый) | 128×128 — 512×512 на кадр | PNG + Atlas | Четное кол-во кадров для Spine |
| Тайлы фона | 64×64 — 256×256 | PNG + Atlas | Точное совпадение краёв (seamless) |
| UI-элементы | 2× / 3× разрешение | PNG + 9-slice | 9-slice для кнопок и рамок |
| Эффекты (VFX) | 64×64 — 256×256 | PNG sequence | Particle System в Unity |
| Иконки предметов | 128×128 или 256×256 | PNG + Atlas | Прозрачный фон, одинаковый стиль |
Сравнение форматов компрессии
| Формат | Платформа | Сжатие | Качество |
|---|---|---|---|
| ASTC 6x6 | iOS, Android | 6:1 | Отличное |
| ETC2 | Android (API 18+) | 4:1 | Хорошее |
| PVRTC | iOS (устаревший) | 4:1 | Среднее |
Типичные ошибки при создании спрайтов
- Использование PNG без сжатия в рантайме (огромный расход RAM). - Несовпадение Pivot и PPU между персонажами (размеры «скачут»). - Анимационные листы с нечётным количеством кадров (Spine требует чётное). - Отсутствие теста на реальном устройстве (цвета на мониторе искажаются).Pixel art специфика
Pixel art требует дополнительных настроек. Filter Mode: Point (no filter) в Unity — иначе пиксели сглаживаются. Pixels Per Unit = размер спрайта в пикселях (спрайт 32px = PPU 32). Compression: None — ASTC разрушает чёткость пикселей. Для движения без субпиксельного мерцания — Round Sprites to Nearest Pixel в Camera.
Процесс создания
- Концепт (набросок стиля, мудборд).
- Черновик (контуры, композиция).
- Чистовик (линии, цвета).
- Заливка цветом, тени, свет.
- Тест в движке: проверка компрессии, размеров, анимации.
- Правки по техническим замечаниям.
- Финальный экспорт с настройками под платформу.
Тест в движке — обязательный шаг до финализации. Цвета на мониторе художника и на экране устройства с AMOLED-дисплеем могут отличаться. Тёмные тени на чёрном фоне «проваливаются» на некалиброванных экранах. Мы гарантируем, что каждый спрайт пройдёт тест на физическом устройстве.
Что входит в работу
- Создание спрайтов в согласованном стиле (по мудборду или референсам)
- Анимационные листы для покадровой анимации или rig-ready части для Spine/DragonBones
- Подготовка атласов под Unity / Godot / Cocos Creator
- Настройка Pivot, PPU, компрессии текстур
- Тест в движке с коррекцией
- Исходники в PSD / Aseprite (для pixel art)
Сроки и бюджет
Зависит от количества и сложности спрайтов. Один персонаж с базовым набором анимаций (idle, run, jump, attack, death) — 5–10 рабочих дней. Полный пакет спрайтов для гипер-казуальной игры (персонаж + окружение + UI) — 2–6 недель. Для крупного проекта — обсуждается индивидуально. Средний бюджет на такой проект — от 200 000 рублей. Стоимость рассчитывается после анализа ТЗ — свяжитесь с нами для оценки.
Получите консультацию по оптимизации спрайтов — мы подберём наилучший пайплайн для вашей игры.







