Учебное пособие по Unity Cinemachine и временной шкале

Cinemachine — это пакет для Unity, который дает разработчикам профессиональное управление камерой и расширяет возможности создания кинематографических роликов.

В этом уроке будут рассмотрены следующие темы:

  • Установка Синемашины
  • Настройка камеры от третьего лица
  • Создание кат-сцены

Установка Синемашины

Чтобы установить Cinemachine, выполните следующие действия:

  • В Unity перейдите в Окно -> Диспетчер пакетов.

Меню диспетчера пакетов Unity

  • Измените пакеты на «Реестр Unity»

Реестр диспетчера пакетов Unity

  • Выберите "Cinemachine" из списка и нажмите "Install"

Теперь Cinemachine готов к использованию.

Настройка камеры от третьего лица

Ниже я покажу, как настроить камеру от третьего лица с помощью виртуальной камеры Cinemachine.

Виртуальная камера — это облегченная версия камеры Unity, которая не выполняет рендеринг сама по себе, а просто используется в качестве ориентира для основной камеры.

В качестве примера для этого урока я буду использовать контроллер от третьего лица, но без настройки коллизии камеры и без перемещения камеры внутри иерархии игроков:

Sharp Coder Видео проигрыватель

Как видите, игрок движется, но камера не следует за ним.

Настроить камеру от третьего лица с помощью Cinemachine очень просто:

  • Перейдите в GameObject -> Cinemachine -> Виртуальная камера, чтобы создать новую виртуальную камеру.

Cinemachine создает виртуальную камеру

  • Назовите виртуальную камеру "TPS Camera"
  • Выберите камеру TPS и в CinemachineVirtualCamera назначьте переменную Follow (в моем случае это будет объект "CameraParent", который расположен внутри иерархии проигрывателя и представляет собой вращение по вертикали)
  • Установите значение «Тело» на "3rd Person Follow"
  • Установите для параметра Ignore Tag значение "Player", а также выберите корневой объект игрока и установите его тег на "Player" (если в иерархии проигрывателя есть дочерние коллайдеры, обязательно измените их теги на "Player")
  • Настраивайте другие значения в CinemachineVirtualCamera, такие как расстояние до камеры, сторона камеры, смещение плеч и демпфирование, пока результат вас не устроит.
  • Установите значение Aim для CameraParent на "Do nothing"

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

Камера теперь должна следовать за игроком:

Sharp Coder Видео проигрыватель

Создание кат-сцены

Здесь я покажу, как создать видеоролик, используя Unity's Timeline.

Временная шкала — это встроенный редактор, который позволяет разработчикам создавать ролики, анимируя камеру, а также используя существующие анимации (например, прогулку персонажа), а также события и сигналы, располагая их в последовательном порядке.

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

Чтобы создать кат-сцену, выполните следующие действия:

  • Создайте новый GameObject и назовите его "TimelineManager"
  • Откройте окно временной шкалы, перейдя в Окно -> Последовательность -> Временная шкала.

Меню временной шкалы последовательности окон Unity

  • Выберите объект "TimelineManager", и в окне временной шкалы вы увидите опцию создания компонента Director и актива временной шкалы, щелкните ее.

Cinemachine создает компонент Director и ресурс Timeline.

  • После создания компонента «Директор» и актива «Таймлайн» вы должны увидеть пустое окно «Таймлайн» (убедитесь, что объект TimelineManager выбран, чтобы иметь возможность его редактировать).

Окно временной шкалы Cinemachine

  • Теперь мы можем начать добавлять компоненты на временную шкалу, щелкнув правой кнопкой мыши по окну.

Создание компонентов временной шкалы

Как видите, окно временной шкалы имеет различные параметры:

  • Группа треков — это группа, которая может содержать действия на временной шкале и полезна для организации.
  • Трек активации — определяет объект, который должен быть активен только в течение заданного периода времени.
  • Анимационная дорожка — определенная анимация будет воспроизводиться в течение заданного периода времени.
  • Аудио дорожка — будет воспроизводить определенный звук в течение установленного периода времени.
  • Control Track — трек, клипы которого управляют элементами GameObject, связанными со временем.
  • Сигнальная дорожка — позволяет выполнять самые разнообразные действия над конкретным игровым объектом в определенное время (например, активировать сценарий движения игрока или вызывать определенную функцию, когда временная шкала достигает определенного кадра и т. д.)
  • Воспроизводимая дорожка — дорожка, клипы которой являются пользовательскими проигрываемыми.
  • Cinemachine Track — позволяет смешивать несколько виртуальных камер Cinemachine.

В этом уроке я буду использовать только Animation Track и Signal Track.

Настраивать

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

Unity создает сигнал временной шкалы

  • Дублируйте сигнал "DisablePlayer" и переименуйте его в "EnablePlayer"

Ресурсы сигналов временной шкалы Unity

  • Создайте в сцене новый GameObject и назовите его. "SignalReceiver"
  • Присоедините компонент SignalReceiver к объекту "SignalReceiver".
  • Нажмите "Add Reaction" 2 раза.
  • Назначьте "DisablePlayer" первой реакции и "EnablePlayer" второй реакции.

Unity Timeline Сигнал Добавить Реакцию

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

"EnablePlayer" деактивирует камеру кат-сцены, активирует камеру игрока и сценарий управления игроком и будет помещен в конец временной шкалы.

  • Нажмите (+), чтобы добавить слот реакции, затем назначьте объект, сценарий или компонент которого необходимо активировать/деактивировать.

Совет: Чтобы создать противоположный сигнал, вы можете просто настроить реакции для "DisablePlayer", затем нажать на значок шестеренки -> Дублировать, изменить сигнал на "EnablePlayer" и инвертировать флажки.

Дублирующийся сигнал Unity

Настройка реакций на сигналы временной шкалы Unity

  • Выберите объект "TimelineManager", затем в окне временной шкалы добавьте новую дорожку сигнала, щелкнув правой кнопкой мыши -> Signal Track, затем назначьте ей объект "SignalReceiver".
  • Перетащите ресурс сигнала "DisablePlayer" в начало временной шкалы и "EnablePlayer" в кадр, в котором вы хотите, чтобы кат-сцена завершилась:

Предварительный просмотр сигнала Unity Timeline

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

Наконец, мы собираемся создать простую анимацию камеры.

  • Щелкните правой кнопкой мыши временную шкалу -> Дорожка анимации, затем назначьте "CutsceneCamera" (при этом будет предложено добавить компонент Animator к объекту, если его нет).
  • Нажмите кнопку записи

Запись клипа анимации временной шкалы Unity

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

Хронология кат-сцены Unity Cinemachine

Нажмем play и посмотрим результат:

Sharp Coder Видео проигрыватель

Кат-сцена воспроизводится в начале игры.

Рекомендуемые статьи
Как рисовать деревья на местности в Unity
Учебник по геймпаду для Unity
Советы по Twitter для Unity
Стратегии защиты игр Unity от пиратства
Важность повествования в разработке игр на Unity
Необходимые ресурсы общего назначения для Unity
Сравнение сред разработки 2D и 3D в Unity