Учебное пособие по Unity Cinemachine и временной шкале
Cinemachine — это пакет для Unity, который дает разработчикам профессиональное управление камерой и расширяет возможности создания кинематографических роликов.
В этом уроке будут рассмотрены следующие темы:
- Установка Синемашины
- Настройка камеры от третьего лица
- Создание кат-сцены
Установка Синемашины
Чтобы установить Cinemachine, выполните следующие действия:
- В Unity перейдите в Окно -> Диспетчер пакетов.
- Измените пакеты на «Реестр Unity»
- Выберите "Cinemachine" из списка и нажмите "Install"
Теперь Cinemachine готов к использованию.
Настройка камеры от третьего лица
Ниже я покажу, как настроить камеру от третьего лица с помощью виртуальной камеры Cinemachine.
Виртуальная камера — это облегченная версия камеры Unity, которая не выполняет рендеринг сама по себе, а просто используется в качестве ориентира для основной камеры.
В качестве примера для этого урока я буду использовать контроллер от третьего лица, но без настройки коллизии камеры и без перемещения камеры внутри иерархии игроков:
Как видите, игрок движется, но камера не следует за ним.
Настроить камеру от третьего лица с помощью Cinemachine очень просто:
- Перейдите в GameObject -> Cinemachine -> Виртуальная камера, чтобы создать новую виртуальную камеру.
- Назовите виртуальную камеру "TPS Camera"
- Выберите камеру TPS и в CinemachineVirtualCamera назначьте переменную Follow (в моем случае это будет объект "CameraParent", который расположен внутри иерархии проигрывателя и представляет собой вращение по вертикали)
- Установите значение «Тело» на "3rd Person Follow"
- Установите для параметра Ignore Tag значение "Player", а также выберите корневой объект игрока и установите его тег на "Player" (если в иерархии проигрывателя есть дочерние коллайдеры, обязательно измените их теги на "Player")
- Настраивайте другие значения в CinemachineVirtualCamera, такие как расстояние до камеры, сторона камеры, смещение плеч и демпфирование, пока результат вас не устроит.
- Установите значение Aim для CameraParent на "Do nothing"
Камера теперь должна следовать за игроком:
Создание кат-сцены
Здесь я покажу, как создать видеоролик, используя Unity's Timeline.
Временная шкала — это встроенный редактор, который позволяет разработчикам создавать ролики, анимируя камеру, а также используя существующие анимации (например, прогулку персонажа), а также события и сигналы, располагая их в последовательном порядке.
Пакет Cinemachine добавляет в редактор временной шкалы несколько дополнительных опций, таких как возможность переключения между виртуальными камерами.
Чтобы создать кат-сцену, выполните следующие действия:
- Создайте новый GameObject и назовите его "TimelineManager"
- Откройте окно временной шкалы, перейдя в Окно -> Последовательность -> Временная шкала.
- Выберите объект "TimelineManager", и в окне временной шкалы вы увидите опцию создания компонента Director и актива временной шкалы, щелкните ее.
- После создания компонента «Директор» и актива «Таймлайн» вы должны увидеть пустое окно «Таймлайн» (убедитесь, что объект TimelineManager выбран, чтобы иметь возможность его редактировать).
- Теперь мы можем начать добавлять компоненты на временную шкалу, щелкнув правой кнопкой мыши по окну.
Как видите, окно временной шкалы имеет различные параметры:
- Группа треков — это группа, которая может содержать действия на временной шкале и полезна для организации.
- Трек активации — определяет объект, который должен быть активен только в течение заданного периода времени.
- Анимационная дорожка — определенная анимация будет воспроизводиться в течение заданного периода времени.
- Аудио дорожка — будет воспроизводить определенный звук в течение установленного периода времени.
- Control Track — трек, клипы которого управляют элементами GameObject, связанными со временем.
- Сигнальная дорожка — позволяет выполнять самые разнообразные действия над конкретным игровым объектом в определенное время (например, активировать сценарий движения игрока или вызывать определенную функцию, когда временная шкала достигает определенного кадра и т. д.)
- Воспроизводимая дорожка — дорожка, клипы которой являются пользовательскими проигрываемыми.
- 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", затем в окне временной шкалы добавьте новую дорожку сигнала, щелкнув правой кнопкой мыши -> Signal Track, затем назначьте ей объект "SignalReceiver".
- Перетащите ресурс сигнала "DisablePlayer" в начало временной шкалы и "EnablePlayer" в кадр, в котором вы хотите, чтобы кат-сцена завершилась:
Это приведет к тому, что сценарий контроллера игрока и камера сначала деактивируются, а затем снова активируются, как только временная шкала достигнет конца.
Наконец, мы собираемся создать простую анимацию камеры.
- Щелкните правой кнопкой мыши временную шкалу -> Дорожка анимации, затем назначьте "CutsceneCamera" (при этом будет предложено добавить компонент Animator к объекту, если его нет).
- Нажмите кнопку записи
- Слегка переместите "CutsceneCamera", чтобы применить ключевой кадр, затем переместите маркер кадра временной шкалы в конец и, наконец, переместите камеру в новое положение, затем нажмите «Остановить запись».
Нажмем play и посмотрим результат:
Кат-сцена воспроизводится в начале игры.