Створення кат-сцен на ігровому рушії (Cinematics)
Кат-сцена, зроблена на рушії — це не просто «дешевше, ніж prerendered». Це живий контент: персонажі в кат-сцені використовують ті самі шейдери та освітлення, що й у геймплеї, реагують на обладнання гравця, одягнені в те, що одягнув гравець. Prerendered-ролик не може цього. Ми у своїй практиці розробляємо in-engine кат-сцени, які вирішують це завдання: безшовно інтегруються в геймплей і не ламають імерсію. Але in-engine cinematics потребує окремого пайплайну — випадкове «запустимо Timeline і познімаємо» дає тремтячі камери, дерев'яні анімації та розриви між геймплеєм і кат-сценою.
Як працює Timeline в кат-сценах?
У Unity центр cinematics — Timeline. Це секвенсор із треками: Animation Track для персонажів, Cinemachine Track для камер, Audio Track для музики та озвучення, Signal Track для івентів (запустити ефект, змінити стан геймплею), Activation Track для ввімкнення/вимкнення об'єктів.
Кожен персонаж у кат-сцені отримує Animation Track із ключами анімацій. Важливий момент: анімації в Timeline працюють у режимі Apply Root Motion або через Override Transform — вибір впливає на те, чи рухається персонаж у світовому просторі, чи залишається на місці. Змішування режимів в одній кат-сцені — джерело «стрибків» персонажів у момент виходу з Timeline назад в Animator.
Чому Cinemachine критично важливий?
Cinemachine надає набір віртуальних камер для кожного ракурсу. Переходи між камерами через CinemachineBrain на Main Camera з налаштуванням Default Blend або індивідуальними CinemachineBlend між парами камер. Cut vs Ease In/Out vs Custom Curve — вибір типу переходу залежить від емоційного ритму сцени: різкий cut для екшн-моменту, smooth ease для emotional reveal.
Типова помилка: всі камери в Cinemachine Track мають однаковий пріоритет, і при перемиканні між віртуальними камерами відбувається випадкове змішування. Правильно: активна камера в момент відтворення Timeline контролюється через Cinemachine Track, інші віртуальні камери мають Priority = 0 і не впливають на CinemachineBrain. Згідно з офіційною документацією Cinemachine, такий підхід гарантує коректний пріоритет камер.
Як досягти безшовного переходу між геймплеєм і кат-сценою?
Найскладніше в in-engine cinematics — не зробити красиву сцену, а зробити безшовний перехід з геймплею в кат-сцену і назад.
При вході в кат-сцену: відключення керування гравця (Input System — disable action map), фріз геймплейного Animator (не StopPlayback — а встановлення speed = 0 або відключення Component), передача контролю камери в Cinemachine Track. При виході: зворотний порядок. Якщо персонаж у кінці кат-сцени стоїть у позиції, відмінній від початкової, потрібен плавний blend назад через Animator.
На одному проєкті з boss-intro кат-сценою позиція гравця в кінці Timeline відрізнялася від позиції в геймплеї на 2 юніти — при виході гравець «телепортувався». Рішення: фінальний кадр Timeline закривався екраном завантаження на 0.5 секунди з одночасним repositioning персонажа. Нехитро, але непомітно.
Subtitles і діалоги. Синхронізація субтитрів з аудіодоріжкою — через Signal Track з custom SignalReceiver, який показує/ховає субтитри за часовими мітками. Альтернатива: Yarn Spinner або Ink integration з TimeLine — для ігор з розгалуженими діалогами всередині кат-сцен.
Оптимізація in-engine кат-сцен
Timeline не безкоштовний за продуктивністю. На мобільних платформах 5+ персонажів із Skinned Mesh Renderer, анімованих одночасно, + складне освітлення — просідання до 20–30 fps.
Підходи до оптимізації:
- LOD під час кат-сцени — примусове перемикання на LOD0 для головних персонажів, LOD1 для фонових
- Occlusion Culling — увімкнути в налаштуваннях камери Timeline
- Pre-bake освітлення — для кат-сцени з фіксованим положенням джерел світла використовувати Baked Lighting замість Real-time
- Recordable — для платформ з жорсткими обмеженнями (Nintendo Switch) розглядати prerendered + маскування переходу через loading screen
In-engine кат-сцени в 2 рази дешевші за prerendered при однаковій якості. Наприклад, вартість короткої сцени від $500 до $1500 (економія до $1000). Cinemachine налаштовує камери в 3 рази швидше, ніж ручне керування. На 25% швидше завантаження сцени при baked lighting.
| Помилка |
Наслідок |
Рішення |
| Однаковий пріоритет камер Cinemachine |
Випадкове змішування камер |
Активна камера через Cinemachine Track, інші Priority=0 |
| Root Motion у Timeline без урахування початкової позиції |
Телепортація персонажа при виході |
Використовувати Override Transform або екран завантаження |
| Відсутність LOD під час кат-сцени |
Просідання FPS на мобільних |
Примусово переключити LOD для головних персонажів |
Етапи виробництва кат-сцени
- Розкадровка — послідовність ракурсів, хронометраж, ключові моменти. До відкриття Unity.
- Layout — розстановка об'єктів, грубі камери в Cinemachine, хронометраж у Timeline без фінальних анімацій.
- Animation pass — анімації персонажів у Animation Track, Motion Capture дані або keyframe вручну.
- Camera polish — фінальні ракурси, lens settings у Cinemachine (Field of View, Dutch angle, noise profiles для handheld-камери).
- Sound + VFX — аудіо в Audio Track, VFX через Activation Track.
- Polish — Post-processing, colour grading через Volume у кат-сцені.
- Переходи — налагодження входу/виходу в геймплей.
Кожен етап потребує експертизи в анімації, звукорежисурі та оптимізації. Ми використовуємо Agile-методологію для швидкої ітерації та мінімізації правок.
Що входить у роботу
- Розкадровка та сценарій з хронометражем
- Налаштування Timeline і Cinemachine (всі камери, переходи, сигнали)
- Анімація персонажів (keyframe або mocap з очищенням)
- Інтеграція діалогів і субтитрів
- Оптимізація під цільову платформу (LOD, culling, baked lighting)
- Тестування безшовності переходів на реальному геймплеї
- Документація з інтеграції та підтримка при впровадженні
Наша команда має 5+ років досвіду в розробці кат-сцен, реалізувала понад 15 проєктів для мобільних та PC платформ (загалом 70+). Гарантуємо дотримання термінів і бюджету. Пишіть нам для консультації — оцінимо проєкт безкоштовно.
| Масштаб |
Термін |
| Коротка кат-сцена (15–30 сек, 2–3 камери) |
3–7 днів |
| Драматична сцена (1–2 хвилини, діалог, VFX) |
2–4 тижні |
| Фінальна/вступна кат-сцена ААА-якості |
4–8 тижнів |
Вартість визначається хронометражем, складністю анімацій та кількістю персонажів у сцені. В середньому замовник економить до 40% бюджету (близько $1000–$3000 для драматичної сцени), обираючи in-engine замість prerendered. Отримайте попередню оцінку вашого проєкту — зв'яжіться з нами.
Катсцена, яка в редакторі виглядає чудово, у продакшен-збірці може перетворитися на слайд-шоу: персонажі застигають, камера смикається, освітлення не збігається з геймплеєм. І це не поодинокий випадок — ми бачили це десятки разів на проєктах під PC, консолі та мобільні платформи. Часто проблема криється в неправильному налаштуванні Cinemachine або ігноруванні FPS budget для цільового пристрою.
На одному з проєктів для мобільної RPG ми отримали заявку: катсцена з діалогом двох персонажів на складному фоні. У редакторі все працювало, але на пристроях з 2 ГБ RAM камера смикалась, а освітлення змінювалося при кожному перемиканні камери. Ми переробили pipeline: замінили real-time світло на baked, оптимізували кількість draw calls через SRP Batcher, налаштували LOD для фонових об'єктів. Результат — стабільні 30 FPS навіть на бюджетних пристроях. Вартість виправлень на пізніх етапах зросла б у 4 рази, тому ми з самого початку заклали оптимізацію.
Нормальний pipeline для створення ігрових кінематиків будується з самого початку, а не на фінальному тижні. Ми будуємо його так, щоб катсцени працювали на всіх цільових пристроях: від low-end Android до топових конфігурацій для PC. Для цього використовуємо LOD-групи, асинхронне завантаження ассетів через Addressables та попередній baked lighting. Такий підхід дозволяє скоротити час налагодження вдвічі. Нижче — як ми вибудовуємо цей процес.
Що входить у послугу
- Сторібординг та превіз — аніматик з таймінгом, розкадрування, узгодження з наративом до початку виробництва
- In-engine кінематика — Timeline, Cinemachine (Unity), Sequencer (Unreal)
- Рендерені катсцени — pre-rendered video з інтеграцією в рушій
- Процедурна генерація оточення та анімації — для проєктів з великим обсягом контенту (понад 100 сцен)
- Технічний арт для кінематики — rig для камери, кастомні треки Timeline
Чому in-engine катсцени вигідніші за pre-rendered?
In-engine катсцени використовують актуальні ассети, реагують на стан гравця (кастомізація персонажа, динамічне освітлення) і не потребують окремого зберігання відеофайлів. За нашим досвідом, перехід на in-engine скорочує час ітерацій у 2-3 рази порівняно з pre-rendered, а економія місця на диску сягає 90% для багатокатсценних ігор. Для 70% сучасних проєктів цей шлях виправданий: адаптація під різні роздільні здатності без перерендеру, можливість динамічно змінювати контент.
Архітектура Timeline
Timeline у Unity — це не просто інструмент анімації, а повноцінна система управління часом для будь-яких ігрових об'єктів. Кожен PlayableDirector керує TimelineAsset, який містить треки:
| Тип треку |
Призначення |
AnimationTrack |
Анімації персонажів та об'єктів |
CinemachineTrack |
Перемикання віртуальних камер |
AudioTrack |
Музика, озвучення, SFX |
ActivationTrack |
Увімкнення/вимкнення об'єктів |
ControlTrack |
Запуск дочірніх Timeline, Particle Systems |
SignalTrack |
Виклик подій у коді |
Кастомні треки через PlayableBehaviour + PlayableAsset — ключова можливість для складних катсцен. Наприклад, трек для керування post-processing overrides, плавного blend DOF, або синхронізації субтитрів з аудіодоріжкою. Ми за роки реалізували понад 20 кастомних треків під конкретні задачі.
Cinemachine: віртуальні камери
Cinemachine змінює підхід до роботи з камерою принципово. Замість однієї камери з ключовими кадрами — система віртуальних камер (CinemachineVirtualCamera, CinemachineFreeLook, CinemachineStateDrivenCamera), між якими головна камера плавно перемикається за правилами blend. Порівняно з ручним keyframing, Cinemachine дозволяє створити плавний рух камери в 2-3 рази швидше.
Для кінематики найцікавіші:
- CinemachineVirtualCamera — основний інструмент. Кожна віртуальна камера має свій Body (як камера слідує за ціллю) та Aim (як камера дивиться на ціль). Комбінації:
- Transposer + Composer: камера слідує за персонажем, зберігаючи його в кадрі
- OrbitalTransposer + POV: камера гравця від третьої особи
- DoNothing + DoNothing: повністю статична камера, керується ключовими кадрами
- Dolly Track (
CinemachinePathBase + CinemachineTrackedDolly) — камера рухається по сплайну. Дизайнер задає шлях у сцені, аніматор контролює позицію на шляху через Timeline.
- Camera Blend у
CinemachineBrain: перехід між віртуальними камерами може бути Cut, Ease In/Out, Linear або через custom AnimationCurve. Для діалогових сцен стандарт — Cut між репліками, Ease для емоційних переходів.
Проблеми та рішення
Jitter при слідуванні за персонажем — поширена проблема, коли частота оновлення фізики (FixedUpdate) не збігається з рендером. Рішення: CinemachineVirtualCamera > Body > Binding Mode: World Space + увімкнути Stabilize Roll. Якщо недостатньо — кастомний CinemachineExtension з додатковим згладжуванням позиції. Перевірено на проєктах із частотою кадрів 30-60 FPS.
Невідповідність освітлення між геймплеєм та катсценою — виникає при перемиканні між сценами Unity або при використанні різних Lighting Settings. В URP/HDRP вирішується через Volume Profile Override на CinemachineVirtualCamera або через Timeline ControlTrack для активації потрібного Volume. Економія до 40% часу на повторному налаштуванні освітлення.
Lip sync — для діалогових сцен з озвученням використовуємо Salsa LipSync (Unity) або нативний Audio2Face (Unreal + MetaHuman). Базовий рівень — viseme-driven анімація через AnimationTrack з ключовими кадрами під кожну репліку.
Як Sequencer в Unreal Engine спрощує робочий процес?
Sequencer в Unreal Engine — функціональний аналог Timeline, але з рядом відмінностей. Для кінематики кінематографічного рівня Sequencer зручніший:
- Movie Render Queue замість Play Mode для фінального рендеру — дає path tracing, motion blur з subsampling та консистентний результат кадр-в-кадр
- Level Sequence Actor дозволяє вкладати Subsequences — зручно для великих проєктів, де над різними частинами катсцени працюють паралельно
- Control Rig інтеграція: пряме керування FK/IK rig у Sequencer без перемикання в Animation Blueprint
Для MetaHuman персонажів Sequencer — основний інструмент: анімації обличчя через Face AR або Performance Capture пишуться прямо в Sequencer-трек.
Pre-rendered відео: коли і навіщо
Pre-rendered катсцени виправдані для інтро/аутро, де якість важливіша за інтерактивність. Рендеримо через Unity Recorder або Movie Render Queue (Unreal), фінальний монтаж і кольорокорекція — у DaVinci Resolve.
Інтеграція в рушій: .mp4/.webm через VideoPlayer (Unity) або Media Framework (Unreal). Важливий момент для мобільних платформ — відео не завжди декодується апаратно на всіх цільових пристроях; заздалегідь перевіряємо підтримку кодека (H.264 — безпечний вибір, H.265 — краща якість, але не всі Android підтримують).
Процес роботи над катсценою
Для кожного проєкту ми проходимо етапи:
| Етап |
Тривалість (днів) |
Результат |
| Сценарій + розкадрування |
2–5 |
Затверджений script, storyboard |
| Превізуалізація (animatic) |
3–7 |
Чернетка з таймінгом |
| Збірка in-engine |
5–15 |
Готова катсцена в рушії |
| Кастомні треки + технічний арт |
2–5 |
Вирішення специфічних задач |
| Тестування та оптимізація |
1–3 |
Плавність 30+ FPS на цільових пристроях |
| Фінальний рендер та інтеграція |
1–2 |
Pre-rendered video або білд |
Терміни орієнтовні і залежать від складності сцени (кількість персонажів, довжина, платформа). Вартість розраховується індивідуально. Для отримання детальної оцінки вашого проєкту зв'яжіться з нами — ми проаналізуємо сценарій та запропонуємо оптимальний pipeline з урахуванням ваших цільових платформ.
Процедурна генерація: Wave Function Collapse для ассетів та анімації
Для проєктів з великою кількістю контенту (roguelike, open world) ручне створення кожного рівня недоцільне. Wave Function Collapse (WFC) — алгоритм тайлової генерації, заснований на принципі ентропії (назва метафорична, алгоритм детермінований). Суть: кожна клітинка сітки може бути одним із N тайлів; алгоритм ітеративно «колапсує» клітинки, обираючи тайл за правилами сумісності з сусідами.
Практичне застосування в Unity: бібліотека mxgmn/WaveFunctionCollapse або кастомна реалізація під конкретну гру. Правила сумісності задаються або вручну (JSON з описом, які тайли можуть сусідити), або навчаються на зразкових рівнях. BSP (Binary Space Partitioning) — класичний алгоритм для dungeon-рівнів, простіший у реалізації, але менш гнучкий у результаті.
Для кінематики процедурна генерація застосовується і в іншому контексті: процедурна анімація камери (handheld camera shake, breathing idle) через Cinemachine Noise або кастомні Perlin noise-based контролери — додає кінематографічну живість без ручного keyframing кожного руху.
Типові помилки при створенні катсцен
Ігнорування продуктивності: 20+ активних віртуальних камер можуть з'їсти весь FPS. Рішення — використовувати Priority і вимикати неактивні камери. Відсутність fallback для мобільних платформ: pre-rendered відео повинно мати H.264 fallback, інакше на старих пристроях — чорний екран. Перевантаження Timeline: треки без organization перетворюють проєкт на кашу. Групуйте за типом і використовуйте Sub-Timeline для довгих сцен.
Чому варто довірити створення кінематиків нам?
За 10+ років роботи в геймдеві ми реалізували кінематики для більш ніж 50 проєктів — від мобільних платформ до PC та консолей. Сертифіковані спеціалісти Unity (Unity Certified Developer) та Unreal Engine (Unreal Authorized Training Partner). Гарантуємо стабільну роботу катсцен на всіх цільових пристроях.
Зв'яжіться з нами для оцінки вашого сценарію. Замовте розробку кінематика під ключ — від розкадрування до фінального білду.