Послуги зі створення 2D-графіки та Spine-анімації

Наша компанія з розробки відеоігор веде незалежні проекти, спільно з клієнтом створює ігри та надає додаткові операційні послуги. Досвід нашої команди дозволяє нам охопити всі ігрові платформи та розробити приголомшливий продукт, що відповідає баченню клієнта та перевагам гравців.

Від імерсивних застосунків до ігрових світів і 3D-сцен

Наша виділена команда для VR/AR/MR-розробки, Unity-продакшну і 3D-моделювання та анімації — з власними кейсами і презентаціями.

Відвідати персоналізований сайт
Показано 5 з 5 послугУсі 242 послуг
Часті питання

Наші компетенції

Які етапи розробки гри?

Останні роботи

  • image_games_mortal_motors_495_0.webp
    Розробка гри для компанії Mortal Motors
    683
  • image_games_a_turnbased_strategy_game_set_in_a_fantasy_setting_with_fire_and_sword_603_0.webp
    Покрокова стратегія у фентезі сеттингу With Fire And Sword
    862
  • image_games_second_team_604_0.webp
    Розробка ігри для компанії Second term
    491
  • image_games_phoenix_ii_606_0.webp
    3D-анімація – тизер для гри phoenix 2.
    533

2D-арт та анімація

Мобільна гра з 200 анімаціями персонажів займає 800 МБ тільки на текстурах. APK відхиляє Google Play через розмір. При цьому половина анімацій — варіації одного й того ж руху з незначними відмінностями. Це класична проблема команд, які вибирали frame-by-frame анімацію там, де скелетна дає кращий результат із долею розміру.

Що входить у послугу

  • Концепт-арт та ілюстрації — персонажи, оточення, UI-елементи
  • Спрайт-анімація — frame-by-frame, включаючи Aseprite-пайплайн
  • Скелетна анімація — Spine, DragonBones
  • 2D-ефекти — particle-based, shader-based, анімовані текстури
  • Оптимізація атласів — TexturePacker, Unity Sprite Atlas, упаковка для конкретних платформ

Spine: скелетна анімація в деталях

Spine (Esoteric Software) — де-факто стандарт скелетної анімації для 2D ігор. Альтернатива — DragonBones (безплатний, менший набір функцій) та нативний 2D Animation package у Unity (зручна інтеграція, але слабший за Spine по набору інструментів).

Скелетна vs Frame-by-frame: коли що вибирати

Критерій Скелетна (Spine) Frame-by-frame (Aseprite)
Розмір даних Малий (кості + ваги) Великий (кадри як зображення)
Гнучкість блендингу Висока Відсутня
Виразність Залежить від риггера Повна художня свобода
Час виробництва Довгий rigginг, швидкі ітерації Кожна анімація з нуля
Підходить для Персонажи, UI, створіння Пікселе-арт, особливий стиль

Правило, яке працює на практиці: якщо у персонажа більше 15 унікальних анімацій — Spine економічніший за розміром та часом ітерацій. Якщо проект стилістично вимагає frame-by-frame (пікселе-арт, ротоскопування, мультиплікаційний стиль з навмисними артефактами) — Aseprite.

Mesh Deformation у Spine

Одна з ключових можливостей, що відрізняє Spine від простого скелета. Mesh deformation дозволяє деформувати полігональну сітку поверх спрайту через ваги вершин — персонаж гнеться органічно, одяг складається, щоки надуваються.

Workflow:

  1. У Spine створюємо mesh на спрайті (Tools > Mesh > Edit Mesh)
  2. Призначаємо ваги вершин до костей (Weights mode)
  3. Встановлюємо кількість вершин на основі потрібної детальності деформації — більше вершин = плавніша деформація, але вища обчислювальна вартість

Path Constraints — ще один потужний інструмент: кість слідує по кривій. Використовується для хвостів, волосся, щупалець, мотузок — будь-яких елементів, які повинні гнутися органічно.

IK Constraints у Spine працюють через двох- або трьохкісткову ланцюжок. Для кінцівок це обов'язково: аніматор рухає IK target (позицію ладоні), а ланцюжок плече-передпліччя-кисть автоматично вишиковується. Без IK анімування кінцівок у FK — значить тратити вдвічі більше часу.

Інтеграція Spine в Unity

Офіційний Spine-Unity runtime — платний (входить у ліцензію Spine), активно підтримується. Компоненти:

  • SkeletonAnimation — основний компонент для анімації
  • SkeletonMecanim — інтеграція з Animator Controller Unity (зручно для переиспользування Mecanim-логіки)
  • SkeletonGraphic — для Canvas/UI (рендерится через CanvasRenderer, не через MeshRenderer)

Важливо для продуктивності: SkeletonAnimation створює окремий Mesh per instance. При 50+ персонажах на екрані це 50 draw calls мінімум (без батчингу). Рішення — SkeletonAnimation Batching через SubmeshSeparator + GPU instancing, або обмеження кількості одночасно видимих Spine-об'єктів.

Spine Events — механізм синхронізації: подія в анімації (footstep, attack_hit, spawn_particle) диспатчиться в Unity-код через AnimationState.Event. Правильна архітектура: Spine Event → UnityEvent → звук/партикл/логіка. Не хардкодити синхронізацію за часом — анімація може сповільнюватися через timeScale.

Sprite Atlas та оптимізація текстур

Кожен окремий спрайт у Unity створює окремий draw call. 100 UI-іконок без атласу = 100 draw calls тільки на UI. Sprite Atlas упаковує спрайти в єдину текстуру, дозволяючи батчити draw calls для об'єктів, які використовують один атлас.

TexturePacker vs Unity Sprite Atlas

TexturePacker (CodeAndWeb) — зовнішній інструмент, більш гнучкий у настройці упаковки. Підтримує множество алгоритмів упаковки, trim прозорих пікселів, extrude країв для запобігання bleeding, експорт у специфічні формати платформ (PVRTC для iOS, ETC2 для Android).

Unity Sprite Atlas (вбудований) — зручен для Addressables та динамічної загрузки. Два режими: Master Atlas (повний контроль) та Variant Atlas (зменшена версія для low-end пристроїв через Scale Factor).

Практичні правила упаковки:

  • Групувати по сцені/екрану: все, що видно одночасно — в одному атласі. Інакше atlas не допомагає з батчингом
  • Максимальний розмір атласу: 2048x2048 для мобільних, 4096x4096 для PC. Більше — ризик проблем на старих GPU
  • Trim прозорих пікселів: обов'язково. Спрайт із великими прозорими полями впустую займає місце в атласі
  • Padding: 2-4 пікселі між спрайтами запобігають texture bleeding при mipmapping та UV filtering

Формати стиснення текстур

Платформа Рекомендований формат Примітка
Android ETC2 (RGB) / ETC2 RGBA8 Апаратне прискорення на всіх сучасних Android
iOS ASTC 4x4 / 6x6 ASTC універсален: якість + розмір
PC/Console DXT5 (BC3) Або BC7 для високої якості
WebGL DXT5 + fallback Перевірити підтримку через SystemInfo

Для атласів із великою кількістю дрібних спрайтів та гострих країв — ASTC 4x4 переважніший за ASTC 6x6 (менше артефактів на дрібних деталях).

2D-ефекти

Particle System (Shuriken) — для більшості 2D-ефектів вбудованої достатньо. Для 2D важливо: Renderer Mode = Billboard або Horizontal Billboard, Simulation Space = World для ефектів, які не повинні рухатися з персонажем.

Visual Effect Graph (VFX Graph) в URP — GPU-based particles, підходить для складних ефектів із тисячами частинок. Для мобільних — обережно, вимагає Compute Shaders (не всі пристрої підтримують).

Shader Graph для 2D: dissolve-ефекти, outline через SDF, distortion (вода, heat shimmer), анімовані UV (лава, вода). Sprite Lit Shader + кастомні ноди в Shader Graph — стандартний шлях для 2D у URP.

2D Animation Package (нативний Unity): PSDImporter для імпорту шарів із Photoshop як окремих спрайтів, Sprite Skin для скелетної анімації всередині Unity без Spine. Підходить для простих персонажів з обмеженою кількістю анімацій — якщо команда не хоче купувати ліцензію Spine.