Підручник з Unity Cinemachine і Timeline

Cinemachine — це пакет для Unity, який надає розробникам професійне керування камерою та покращує можливість створювати кінематографічні ролики.

У цьому посібнику розглядатимуться наступні теми:

  • Монтаж кіномашини
  • Налаштування камери від третьої особи
  • Хронологія Створення катсцени

Монтаж кіномашини

Щоб інсталювати Cinemachine, виконайте наведені нижче дії.

  • У Unity перейдіть до «Вікно» -> «Менеджер пакетів».

Меню менеджера пакетів Unity

  • Змінити пакети на «Unity реєстр»

Реєстр менеджера пакетів Unity

  • Виберіть "Cinemachine" зі списку та натисніть "Install"

Тепер Cinemachine готовий до використання.

Налаштування камери від третьої особи

Нижче я покажу, як налаштувати камеру від 3-ї особи за допомогою віртуальної камери Cinemachine.

Віртуальна камера — це полегшена версія камери Unity, яка не рендериться самостійно, а лише використовується як контрольна точка для головної камери.

Як приклад у цьому підручнику я буду використовувати Контролер від третьої особи, за винятком того, що без налаштування зіткнення камери та без переміщення камери всередині ієрархії гравця:

Sharp Coder Відеоплеєр

Як бачите, гравець рухається, але камера не слідує за ним.

Налаштувати камеру від третьої особи за допомогою Cinemachine дуже просто:

  • Перейдіть до GameObject -> Cinemachine -> Virtual Camera, щоб створити нову віртуальну камеру

Cinemachine створює віртуальну камеру

  • Назвіть віртуальну камеру "TPS Camera"
  • Виберіть TPS Camera та в CinemachineVirtualCamera призначте змінну Follow (у моєму випадку це буде об’єкт "CameraParent", який розташований всередині ієрархії гравців і представляє обертання вертикального вигляду)
  • Установіть значення Body на "3rd Person Follow"
  • Встановіть для параметра «Ігнорувати тег» значення "Player", а також виберіть кореневий об’єкт гравця та встановіть його тег на "Player" (якщо в ієрархії гравця є дочірні коллайдери, обов’язково також змініть їхні теги на "Player")
  • Налаштуйте інші значення в CinemachineVirtualCamera, такі як відстань до камери, сторона камери, зміщення плеча та демпфування, доки ви не будете задоволені результатом.
  • Установіть для CameraParent значення Aim "Do nothing"

Значення компонента CinemachineVirtualCamera

Тепер камера повинна стежити за гравцем:

Sharp Coder Відеоплеєр

Хронологія Створення катсцени

Тут я покажу, як створити ролик за допомогою Unity's Timeline.

Timeline — це вбудований редактор, який дозволяє розробникам створювати ролики, анімуючи камеру, а також використовуючи наявні анімації (наприклад, ходу персонажа), а також події та сигнали, впорядковуючи їх у послідовний спосіб.

Пакет Cinemachine додає кілька додаткових опцій до редактора шкали часу, наприклад можливість перемикатися між віртуальними камерами.

Щоб створити ролик, виконайте наведені нижче дії.

  • Створіть новий GameObject і назвіть його "TimelineManager"
  • Відкрийте вікно шкали часу, перейшовши до пункту «Вікно» -> «Послідовність» -> «Шкала часу».

Меню часової шкали секвенування вікна Unity

  • Виберіть «Об’єкт "TimelineManager"», і у вікні «Шкала часу» ви побачите опцію для створення компонента «Режисер» і активу «Шкала часу». Натисніть її.

Cinemachine створює компонент Director і ресурс Timeline

  • Після створення компонента «Режисер» і ресурсу «Шкала часу» ви повинні побачити порожнє вікно «Шкала часу» (переконайтеся, що вибрано об’єкт «TimelineManager», щоб мати можливість його редагувати).

Вікно часової шкали Cinemachine

  • Тепер ми можемо почати додавати компоненти на часову шкалу, клацнувши правою кнопкою миші у вікні.

Створення компонентів шкали часу

Як бачите, у вікні шкали часу є кілька параметрів:

  • Track Group - це група, яка може містити дії на часовій шкалі та корисна для організації.
  • Activation Track - це визначає об’єкт, який має бути активним лише протягом встановленого періоду часу.
  • Animation Track - відтворюватиме певну анімацію протягом встановленого періоду часу.
  • Аудіодоріжка - відтворюватиме певний аудіофайл протягом встановленого періоду часу.
  • Контрольна доріжка — доріжка, кліпи якої контролюють пов’язані з часом елементи GameObject.
  • Signal Track — дозволяє виконувати різноманітні дії над певним ігровим об’єктом у певний час (наприклад, активувати сценарій руху гравця або викликати певну функцію, коли шкала часу досягає певного кадру тощо)
  • Відтворювана доріжка - доріжка, кліпи якої можна відтворювати на замовлення.
  • Cinemachine Track - це дозволяє змішувати між кількома віртуальними камерами cinemachine.

Для цілей цього уроку я буду використовувати тільки Animation Track і Signal Track.

Налаштувати

  • Створіть ще одну віртуальну камеру, назвіть її "CutsceneCamera" і встановіть для неї значення "Priority" на один рівень вище "TPS Camera" (наприклад, 11)
  • Клацніть правою кнопкою миші в поданні проекту -> Створити -> Сигнал і назвіть його "DisablePlayer"

Unity Create Timeline Signal

  • Скопіюйте сигнал "DisablePlayer" і перейменуйте його на "EnablePlayer"

Активи Unity Timeline Signal

  • Створіть новий GameObject на сцені та назвіть його "SignalReceiver"
  • Приєднайте компонент SignalReceiver до об’єкта "SignalReceiver"
  • Натисніть "Add Reaction" 2 рази
  • Призначте "DisablePlayer" для першої реакції та "EnablePlayer" для другої реакції

Реакція додавання сигналу часової шкали Unity

"DisablePlayer" активує камеру ролика, деактивує камеру гравця та сценарій керування гравцем і буде розміщено на початку шкали часу.

"EnablePlayer" вимкне камеру ролика, активує камеру гравця та сценарій керування гравцем і буде розміщено в кінці шкали часу.

  • Клацніть (+), щоб додати слот реакції, а потім призначте об’єкт, сценарій або компонент якого необхідно активувати/деактивувати.

Порада: щоб створити протилежний сигнал, ви можете просто налаштувати реакції для "DisablePlayer", потім натиснути значок шестірні -> Дублювати, змінити сигнал на "EnablePlayer" та інвертувати прапорці.

Дубльований сигнал Unity

Налаштування реакцій сигналу часової шкали Unity

  • Виберіть об’єкт "TimelineManager", а потім у вікні шкали часу додайте нову доріжку сигналу, клацнувши правою кнопкою миші -> Відстеження сигналу, а потім призначте об’єкт "SignalReceiver" до неї.
  • Перетягніть сигнальний ресурс "DisablePlayer" на початку шкали часу та "EnablePlayer" до кадру, у якому потрібно завершити ролик:

Попередній перегляд сигналу часової шкали Unity

Це зробить сценарій контролера гравця та камеру дезактивованими на початку, а потім знову активованими, коли часова шкала досягне кінця.

Нарешті, ми збираємося створити просту анімацію камери.

  • Клацніть правою кнопкою миші Timeline -> Animation Track, а потім призначте "CutsceneCamera" (це попросить додати компонент Animator до об’єкта, якщо його немає)
  • Натисніть кнопку запису

Запис анімаційного кліпу Unity Timeline

  • Злегка перемістіть "CutsceneCamera", щоб застосувати ключовий кадр, потім перемістіть ручку кадру шкали часу до кінця, і, нарешті, перемістіть камеру в нове положення, а потім натисніть «Зупинити запис».

Хронологічна шкала катсцени Unity Cinemachine

Давайте натиснемо play і побачимо результат:

Sharp Coder Відеоплеєр

Катсцена відтворюється на початку гри.

Рекомендовані статті
Як імпортувати анімацію в Unity
Підручник з геймпада для Unity
Як малювати дерева на місцевості в Unity
Вибір відповідного Skybox для вашого середовища в Unity
Стратегії захисту ігор Unity від піратства
Як створити гру на основі FNAF в Unity
Важливість сторітелінгу в розробці ігор Unity