Підручник з Unity Cinemachine і Timeline
Cinemachine — це пакет для Unity, який надає розробникам професійне керування камерою та покращує можливість створювати кінематографічні ролики.
У цьому посібнику розглядатимуться наступні теми:
- Монтаж кіномашини
- Налаштування камери від третьої особи
- Хронологія Створення катсцени
Монтаж кіномашини
Щоб інсталювати Cinemachine, виконайте наведені нижче дії.
- У Unity перейдіть до «Вікно» -> «Менеджер пакетів».
- Змінити пакети на «Unity реєстр»
- Виберіть "Cinemachine" зі списку та натисніть "Install"
Тепер Cinemachine готовий до використання.
Налаштування камери від третьої особи
Нижче я покажу, як налаштувати камеру від 3-ї особи за допомогою віртуальної камери Cinemachine.
Віртуальна камера — це полегшена версія камери Unity, яка не рендериться самостійно, а лише використовується як контрольна точка для головної камери.
Як приклад у цьому підручнику я буду використовувати Контролер від третьої особи, за винятком того, що без налаштування зіткнення камери та без переміщення камери всередині ієрархії гравця:
Як бачите, гравець рухається, але камера не слідує за ним.
Налаштувати камеру від третьої особи за допомогою Cinemachine дуже просто:
- Перейдіть до GameObject -> Cinemachine -> Virtual Camera, щоб створити нову віртуальну камеру
- Назвіть віртуальну камеру "TPS Camera"
- Виберіть TPS Camera та в CinemachineVirtualCamera призначте змінну Follow (у моєму випадку це буде об’єкт "CameraParent", який розташований всередині ієрархії гравців і представляє обертання вертикального вигляду)
- Установіть значення Body на "3rd Person Follow"
- Встановіть для параметра «Ігнорувати тег» значення "Player", а також виберіть кореневий об’єкт гравця та встановіть його тег на "Player" (якщо в ієрархії гравця є дочірні коллайдери, обов’язково також змініть їхні теги на "Player")
- Налаштуйте інші значення в CinemachineVirtualCamera, такі як відстань до камери, сторона камери, зміщення плеча та демпфування, доки ви не будете задоволені результатом.
- Установіть для CameraParent значення Aim "Do nothing"
Тепер камера повинна стежити за гравцем:
Хронологія Створення катсцени
Тут я покажу, як створити ролик за допомогою Unity's Timeline.
Timeline — це вбудований редактор, який дозволяє розробникам створювати ролики, анімуючи камеру, а також використовуючи наявні анімації (наприклад, ходу персонажа), а також події та сигнали, впорядковуючи їх у послідовний спосіб.
Пакет Cinemachine додає кілька додаткових опцій до редактора шкали часу, наприклад можливість перемикатися між віртуальними камерами.
Щоб створити ролик, виконайте наведені нижче дії.
- Створіть новий GameObject і назвіть його "TimelineManager"
- Відкрийте вікно шкали часу, перейшовши до пункту «Вікно» -> «Послідовність» -> «Шкала часу».
- Виберіть «Об’єкт "TimelineManager"», і у вікні «Шкала часу» ви побачите опцію для створення компонента «Режисер» і активу «Шкала часу». Натисніть її.
- Після створення компонента «Режисер» і ресурсу «Шкала часу» ви повинні побачити порожнє вікно «Шкала часу» (переконайтеся, що вибрано об’єкт «TimelineManager», щоб мати можливість його редагувати).
- Тепер ми можемо почати додавати компоненти на часову шкалу, клацнувши правою кнопкою миші у вікні.
Як бачите, у вікні шкали часу є кілька параметрів:
- Track Group - це група, яка може містити дії на часовій шкалі та корисна для організації.
- Activation Track - це визначає об’єкт, який має бути активним лише протягом встановленого періоду часу.
- Animation Track - відтворюватиме певну анімацію протягом встановленого періоду часу.
- Аудіодоріжка - відтворюватиме певний аудіофайл протягом встановленого періоду часу.
- Контрольна доріжка — доріжка, кліпи якої контролюють пов’язані з часом елементи GameObject.
- Signal Track — дозволяє виконувати різноманітні дії над певним ігровим об’єктом у певний час (наприклад, активувати сценарій руху гравця або викликати певну функцію, коли шкала часу досягає певного кадру тощо)
- Відтворювана доріжка - доріжка, кліпи якої можна відтворювати на замовлення.
- Cinemachine Track - це дозволяє змішувати між кількома віртуальними камерами cinemachine.
Для цілей цього уроку я буду використовувати тільки Animation Track і Signal Track.
Налаштувати
- Створіть ще одну віртуальну камеру, назвіть її "CutsceneCamera" і встановіть для неї значення "Priority" на один рівень вище "TPS Camera" (наприклад, 11)
- Клацніть правою кнопкою миші в поданні проекту -> Створити -> Сигнал і назвіть його "DisablePlayer"
- Скопіюйте сигнал "DisablePlayer" і перейменуйте його на "EnablePlayer"
- Створіть новий GameObject на сцені та назвіть його "SignalReceiver"
- Приєднайте компонент SignalReceiver до об’єкта "SignalReceiver"
- Натисніть "Add Reaction" 2 рази
- Призначте "DisablePlayer" для першої реакції та "EnablePlayer" для другої реакції
"DisablePlayer" активує камеру ролика, деактивує камеру гравця та сценарій керування гравцем і буде розміщено на початку шкали часу.
"EnablePlayer" вимкне камеру ролика, активує камеру гравця та сценарій керування гравцем і буде розміщено в кінці шкали часу.
- Клацніть (+), щоб додати слот реакції, а потім призначте об’єкт, сценарій або компонент якого необхідно активувати/деактивувати.
Порада: щоб створити протилежний сигнал, ви можете просто налаштувати реакції для "DisablePlayer", потім натиснути значок шестірні -> Дублювати, змінити сигнал на "EnablePlayer" та інвертувати прапорці.
- Виберіть об’єкт "TimelineManager", а потім у вікні шкали часу додайте нову доріжку сигналу, клацнувши правою кнопкою миші -> Відстеження сигналу, а потім призначте об’єкт "SignalReceiver" до неї.
- Перетягніть сигнальний ресурс "DisablePlayer" на початку шкали часу та "EnablePlayer" до кадру, у якому потрібно завершити ролик:
Це зробить сценарій контролера гравця та камеру дезактивованими на початку, а потім знову активованими, коли часова шкала досягне кінця.
Нарешті, ми збираємося створити просту анімацію камери.
- Клацніть правою кнопкою миші Timeline -> Animation Track, а потім призначте "CutsceneCamera" (це попросить додати компонент Animator до об’єкта, якщо його немає)
- Натисніть кнопку запису
- Злегка перемістіть "CutsceneCamera", щоб застосувати ключовий кадр, потім перемістіть ручку кадру шкали часу до кінця, і, нарешті, перемістіть камеру в нове положення, а потім натисніть «Зупинити запис».
Давайте натиснемо play і побачимо результат:
Катсцена відтворюється на початку гри.