Что такое cinemachine в юнити
Перейти к содержимому

Что такое cinemachine в юнити

  • автор:

Помогаем камерам в фильмах и играх

Получившая награду «Эмми» система Cinemachine — это набор инструментов для создания динамических, умных, не требующих программирования камер, создающих лучшие кадры на основе композиции сцены и взаимодействия объектов в ней, что позволяет вам настраивать, разрабатывать, экспериментировать и задавать поведение камеры в реальном времени.

Установка Cinemachine

Воспользуйтесь пакетным менеджером Unity (в верхнем меню: Window > Package Manager), чтобы выбрать и установить Cinemachine. Если вы не видите этого пакета, найдите выпадающее меню над списком и выберите All packages.

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

Harold Halibut by Slow Bros

Cinemachine ускоряет разработку игр. Она освобождает вашу команду от разработки дорогостоящей логики поведения камер и позволяет сразу же разрабатывать и прототипировать новые идеи, одновременно сохраняя настройки в режиме Play. Модули камеры Cinemachine были доведены до совершенства за долгие годы использования в разных условиях, от шутеров с видом от первого лица до игр со следящей камерой, от 2D до 3D, от игр в реальном времени до кат-сцен.

Основное поведение

Composer

Процедурное наведение

Настройте камеру так, чтобы она автоматически поворачивалась и следила за вашими объектами в любой точке экрана. Composer позволяет осуществлять процедурную компоновку в реальном времени, настраивать задержку следования, ширину/высоту заглушения и даже опережающий просмотр движения, чтобы профессионально управлять кадром.

Transposer

Следящая камера

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

Обзорные камеры

Парящая камера

С легкостью управляйте орбитальными камерами в приключенческих играх от третьего лица с помощью проверенных в реальных условиях современных установок для парящих камер. К вашим услугам — многочисленные настройки, такие как скорость и форма орбиты, возвращение к центру, заглушение и тип ввода. Крайне точно управляйте несколькими обзорными камерами так, как требуется для событий в игре.

Cinemachine для 2D

Cinemachine поддерживает насколько характерных для 2D функций, включая ортогональную отрисовку и 2D-кадрирование, с помощью которых вы сможете компоновать, отслеживать и следовать за объектами. Настройка мощной 2D-камеры крайне проста.

Target Groups

Отслеживайте несколько объектов одновременно

С легкостью отслеживайте группу объектов и настраивайте вес и важность каждого из них. Функция Target Group позволяет динамически настраивать методы слежения, компоновки, настройки поля зрения и даже положение камеры, в зависимости от действий множества объектов.

Пользовательские смешения

Определяйте отношения

Выбирайте, как будет смешиваться вид с двух камер. Это пригодится при использовании сред с машинами состояний, где необходимо устанавливать сложные отношения при смешении. Так как это ассет, вы можете создавать пользовательские варианты смешения камер для каждого уровня.

Расширенное управление

Impulse

Тряска камеры

Модуль Impulse является основой полноценной системы тряски камеры. Настройте источники импульсов на объектах, и камера будет соответствующим образом реагировать, согласно масштабу и дистанции, выполняя тряску в 6 направлениях, которые вы можете задать вручную или сгенерировать процедурно.

Микшер

Абсолютный контроль

Изменяйте свои кадры, смешивая до 8 виртуальных камер, и управляйте смешением вручную с помощью Timeline или посредством кода. Микшер — это крайне гибкая система, где характеристики нескольких камер могут объединяться для создания идеального кадра в меняющихся условиях.

Коллайдер

Уклонение от препятствий

С легкостью управляйте и автоматизируйте уклонение от стен и объектов любой камеры Cinemachine, не прибегая к программированию. Коллайдер позволяет использовать несколько способов удержания камеры от столкновения с объектами мира.

Ограничитель

Задайте пределы

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

Шум

Встряхнитесь!

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

Приоритет

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

Разделенный экран и режим «картинка в картинке»

Без усилий настраивайте несколько «мозгов» Cinemachine для получения режимов «картинка в картинке», разделенного экрана на две или четыре части. Назначьте камеры Cinemachine к одному или всем «мозгам» и даже смешивайте изображения от одиночного и разделенного экранов и наоборот.

Следящее увеличение

Автоматически всегда получайте на экране объекты верного размера в сценариях, где положение персонажей может изменяться. Камера будет динамически изменять уровень увеличения, чтобы объекты всегда отображались нужного размера. Отлично подходит для интерактивных сцен диалогов.

Интеграция стека постобработки

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

Clear Shot

Всегда получайте отличные кадры. Если что-то встанет между персонажем или объектом, Clear Shot выберет самую подходящую камеру, в зависимости от оценки кадра. Эта функция отлично подходит для повторов или кат-сцен в изменяемыми сценариями.

Мощные функции

Разделенный экран и режим «картинка в картинке»

Без усилий настраивайте несколько «мозгов» Cinemachine для получения режимов «картинка в картинке», разделенного экрана на две или четыре части. Назначьте камеры Cinemachine к одному или всем «мозгам» и даже смешивайте изображения от одиночного и разделенного экранов и наоборот.

Следящее увеличение

Автоматически всегда получайте на экране объекты верного размера в сценариях, где положение персонажей может изменяться. Камера будет динамически изменять уровень увеличения, чтобы объекты всегда отображались нужного размера. Отлично подходит для интерактивных сцен диалогов.

Интеграция стека постобработки

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

Clear Shot

Всегда получайте отличные кадры. Если что-то встанет между персонажем или объектом, Clear Shot выберет самую подходящую камеру, в зависимости от оценки кадра. Эта функция отлично подходит для повторов или кат-сцен в изменяемыми сценариями.

Behind the Scenes on “Baymax Dreams”

Для кино и ТВ

Cinemachine — это ваш личный оператор-постановщик, знающий куда направить камеру и на чем сфокусироваться. Экспериментируйте с тележками для камер, слежением, тряской и постэффектами в реальном времени. Все выполняется процедурно, поэтому изменения просто срабатывают. Вы даже можете вносить изменения в анимации после разметки — Cinemachine знает, какие кадры вам нужны, и автоматически подстраивается, даже если события в кадре изменятся. Cinemachine получила премию «Эмми» за революцию в области кинематографии.

Мощные функции, полностью меняющие разметку CG

Composer

Процедурное кадрирование

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

Transposer

Виртуальные операторы камер

Камера автоматически следует за происходящим так же, как работает оператор камеры. Transposer открывает доступ к огромному количеству настроек того, как камеры должны следовать за действием в сцене. Настраивайте кадры, изменяйте происходящее, но результат все равно выйдет удачным.

Постобработка

Цветокоррекция каждого кадра

Постобработка, цветокоррекция, эмуляция линз, глубина поля и многое другое — в реальном времени для каждого кадра. Если вы измените редактуру, цветокоррекция изменится вместе с ней. Смешивайте кадры на Timeline, и все остальное тоже смешается. Новый, функциональный и крайне быстрый метод работы.

Смешивание кадров

Быстрая предварительная подготовка

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

Следящее увеличение

Автоматически всегда получайте на экране объекты верного размера в сценариях, где положение персонажей может изменяться. Камера будет динамически изменять уровень увеличения, чтобы объекты всегда отображались нужного размера. Отлично подходит для интерактивных сцен диалогов.

Наборы линз

Ваш набор линз

Наборы линз Cinemachine позволяют составить список любимых линз в выпадающем меню. Добавьте своему проекту последовательности, ограничив фокусные расстояния набором пресетов, как это делается на съемочной площадке.

InputSystem+Cinemachine

Кто-нить делал TPS камеру по такой связке? На стандартном инпуте всё было чисто-гладко. Но стоило переделат под новый инпут — всё начало жутко дёргаться, камера прыгать сразу на несколько градусов. Никакие настройки скорости мыши и прочих мультипликаторов(даже в настройках винды) не помогают. Да, я знаю про Accel/Decal Time в настройках синемашины, но это фэйкорое сглаживание через лерп выглядит так-же отвратительно

  • Battle Angel Alita
  • Постоялец

#1
19:09, 13 дек 2021
#2
18:55, 14 дек 2021

всё начало жутко дёргаться, камера прыгать сразу на несколько градусов

Ты имеешь в виду чувствительность обзора мышью? Слишком сильно вертится камера когда мышью двигаешь?
Как реализованы настройки скорости мыши? Если не трудно скинь код который за инпут отвечает.

Может умножить инпут на понижающий коэффициент (например 0,1) + Time.deltaTime

Если совсем ничего не помогает проверь внимательно откуда инпут идет, может не то что нужно берешь.

Прошло более 1 года

  • Battle Angel Alita
  • Постоялец

#3
18:01, 11 мая 2023

Короч кому надо — вот в чём было дело:
Старый инпут систем умножал МаусДельту на 0.05, потом передавал его дальше. И ты потом ставишь чувствительность в своём контроллере сколько надо — 10, 20, 30. сколько надо вообщем.
В новом инпут систем МаусДельта передаёться как есть. И потом уже TPS-контроллер синемашины её переваривает, и выдаёт попугаи на настройку чувствительности. То-ли там оно округляеться, толи криво пересчитывается в попугаи — но от этого всё дергаеться как не пойми что.
Что надо чтоб исправить: В TPS-контроллере поставить режим Speed в Input Value Gain, в настройках экшона мыши поставить скэйл на 0.05, потом в TPS-контроллере настроить нормальные значения чувствительности.

Lights, camera, action! Set up your cameras with Cinemachine

What you’ll get from this page: Advanced tips on Cinemachine, the de-facto camera system in Unity. Underneath the surface, there is a refined system with loads of options and possibilities. Read on for more advanced use cases and tips for Cinemachine powered by Ciro Continisio, a Technical Evangelist at Unity.

On this page

  • Multiple Cinemachine Brains
  • Set up the Brains
  • A different “World Up” axis
  • Apply smart Post-Processing
  • Set up effects on a Virtual Camera
  • Create a Dolly Zoom effect

Multiple Cinemachine Brains

Sometimes you need more than one camera in the scene for a split-screen multiplayer, or maybe you want to create a picture-in-picture effect (e.g. a surveillance camera). Even though it might seem that Cinemachine takes control of all of your Cameras, through the Brain component, there is a way to have multiple Brains in the scene, each one looking at a set of Virtual Cameras.

In this situation, you can see a UI that has a video feed in it just by using a secondary Camera pointed at the characters faces and rendering to a RenderTexture. To give a bit more flavor to this video feed, you can use Cinemachine to keep the characters’ faces in the frame.

Unity — настройка нескольких автоматов Cinemachine

Set up the Brains

The setup here is really simple: you create two Unity Cameras and attach a Cinemachine Brain to each. You can then create as many Virtual Cameras as you need.

To make sure a Brain only sees some of these VCams, you just need to do three things:

  1. Make sure the VCams you want to affect a specific Camera are on a unique layer (for instance, “Characters”).
  2. Set that Camera’s Culling Mask to render that layer.
  3. Set the other Camera’s Culling Mask to exclude that layer.

Keep in mind that even if the process is using the Culling Mask of the Camera, this doesn’t mean you need to change your rendering. With 31 Layers to play with, you can just create one specifically to put VCams on.

The full process is also recapped in the video at the end of this article

Unity — блокировка оси Y в Cinemachine

A different “World Up” axis

Cinemachine operates on the assumption that there is a “World Up” axis, which by default is the Y up. By using that as a reference, it knows which camera movement not to perform, for instance looking straight up or straight down at a target (real cameras don’t do that!).

In the case of 2D Cameras (Cameras marked as Orthographic), Cinemachine behaves differently and constraints the camera movements on the ground plane, which is going to be the plane made up of the two remaining axes, in this case, X and Z.

However, sometimes it’s necessary to force this “World Up” axis and the corresponding plane to something else. For instance, maybe you’re working on a game that uses 2D physics so you’re forced to use the XY plane for your gameplay. But, maybe you want your camera to look at this plane from an angle, therefore your camera plane is a bit tilted, like in the image below:

To do so, you just need to assign a transform to the “World Up Override” property on the Cinemachine Brain. You can create an empty GameObject and use it as a manipulator, and you can experiment by rotating this object to find the appropriate “World Up” for your Cinemachine setup.

Apply smart Post-Processing

Cinemachine works with both Post-Processing stack v1 and the v2, but the latter is the best fit because it allows some nice tricks when used together with Cinemachine due to its volume-based system.

When you use them together, it’s recommended that you split up your effects into two categories:

  1. General effects that should affect every shot.
  2. Effects that are unique to one shot (or, in Cinemachine lingo, VirtualCamera).

In general, effects like AmbientOcclusion, Colour Grading, Grain, and other style effects are usually part of the first group, since you want to keep your style consistent through your game or film. Effects like Depth of Field, Lens Distortion, Chromatic Aberration and other effects simulating the physical properties of the camera are good to live on the Virtual Cameras. These are not hard rules though!

For instance, in the example above, you’ll notice the use of a very local Post-Processing volume on to give the impression of looking through the lens of an old security camera. See the next section for how to set that up in the Editor.

Unity — использование эффектов постобработки с камерами Cinemachine

Set up effects on a Virtual Camera

To achieve the above effect, you just need a Post Process Volume on the Virtual Camera itself which is not marked as “Is Global”, and add a collider. Usually, a very small Sphere Collider will do (maybe 0.05 in radius) so make sure that the Camera doesn’t enter this volume by mistake during gameplay. So, you’re going to have Virtual Camera, Post Process Volume and Collider on the same object.

Then, you can add all the effects you want, and even override some on the main profile by ticking the appropriate checkboxes. Remember, when you don’t tick a checkbox you’re staying on the base value for that property, usually coming from the global volume. If you do check it, you’re overriding it only for this volume.

Create a Dolly Zoom effect

Finally, a little cinematography trick. Ever seen the so-called “Dolly Zoom” effect? It was pioneered in the movie “Vertigo” by Alfred Hitchcock in 1958, and since then used in a bunch of movies.

On screen, it looks as if the space between the character and the background is expanding or contracting. It’s a pretty cool technique, and it’s very easy to recreate with Cinemachine.

Have a look at the example above, which is set to trigger in the middle of gameplay.

To create that effect, you can start with two Virtual Cameras with the same settings. Then you need to pull one of them back and reduce its Field of View value. When you blend between the two, via Timeline or using the Priority, you get a Dolly Zoom effect.

Remember that this effect only works with Perspective Cameras only, not with the Orthographic ones!

Cinemachine в 2D играх на Unity

Cinemachine в 2D играх на Unity

В этом посте мы узнаем, как создать эффект камеры, обычно используемый в 2D-играх с видом сверху вниз, таких как Legend of Zelda, EarthBound и Stardew Valley. Но он без труда может работать в играх с боковой прокруткой, подобных Super Meat Boy или Limbo.

Конечная цель состоит в том, чтобы камера отслеживала игрока во время его прохождения через уровень, а затем останавливалась, когда край камеры достигает края карты. Игрок должен быть в состоянии идти до самого края, но камера останется на месте.

меню cinemachine

Следующим шагом после установки Cinemachine будет создание Virtual Camera.

Что такое Virtual Camera? В документации к Cinemachine используется замечательная аналогия: виртуальную камеру можно представить как кинооператора. Он управляет настройками линз и положением главной камеры (Main Camera). Виртуальная камера сама по себе камерой не является. Ее можно считать управляющим устройством для главной камеры.

Cinemachine позволяет иметь несколько виртуальных камер для одной сцены. Такая свобода позволяет делать сложную съемку и монтаж. Эта свобода позволяет делать сложные снимки, срезы и сочетания. Без Cinemachine разработчик или оператор мог бы месяцами устанавливать и настраивать данные типы кадров вручную. Cinemachine даже допускает процедурный шум, так что любые два выстрела никогда не будут в точности одинаковыми, что дает более естественный эффект. Даже не собираюсь вдаваться в подробности возможностей Cinemachine.

Создание первой виртуальной камеры в сцене также создаст компонент под названием Cinemachine Brain. Это реальная связь между главной и виртуальной камерами в сцене. Cinemachine Brain будет отслеживать активную в настоящий момент виртуальную камеру и применять ее состояние к камере Unity.

Теперь мы изучили задействованные компоненты и готовы к конфигурации виртуальной камеры.

объект Виртуальная камера

Выберите игровой объект Virtual Camera с эзотерическим названием “CM vcam 1”. Можете переименовать его как угодно, потому что он обладает компонентом Transform

Когда выбрана виртуальная камеры, вы увидите в инспекторе следующие характеристики.

свойства виртуальной камеры

Вверху у нас есть имя GameObject, а слева от него флажок. Этот флажок очень полезно запомнить, поскольку он позволяет быстро включать и отключать GameObject. Мы не будем делать это в данном руководстве, но запомните трюк для будущих приключений с Cinemachine, когда захотите временно отключить виртуальную камеру во время исполнения.

установка цели преследования для виртуальной камеры

Далее у нас есть свойство Follow. Перетащите объект Player, который вы хотите отслеживать, в свойство Follow. Unity будет извлекать ссылку на компонент Transform из объекта Player и использовать Transform в качестве цели Target для следования.

следовать камере за игроком

По умолчанию для параметра Body у виртуальной камеры выбран Transposer, который устанавливает фиксированную взаимосвязь с целью следования и регулирует положение камеры. Цель перемещается, и положение камеры перемещается вместе с ней. Существуют и другие варианты 2D Body, такие как Framing Transposer, но мы не будем рассматривать их в данной статье.

свойство Transposer

У вас будет возможность настроить нечто под названием Damping, которое определяет, насколько быстро камера движется за целью.

скорость расстояние до цели преследования

Следующий кусок текста может быть (и когда-нибудь станет) самостоятельным постом в блоге. Камера в 2D-играх — это большая тема сама по себе, полная подводных камней, художественных требований и старого-доброго взгляда «все зависит от того, что вы на самом деле хотите достичь». Мы поговорим о том, как настроить размер камеры, в моей книге и, возможно, в будущем посте.

Пока все будет упрощено. Я лишь подскажу вам, что с разрешением экрана 1280 x 720, 32 пикселями на единицу (PPU) и артом, который хорошо выглядит при ширине 32 пикселя, нам нужен размер камеры 3,75.

Orthographic Size виртуальной камеры

Установите Orthographic Size 3,75.

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

В раскрывающемся меню «Расширения» в виртуальной камере выберите CinemachineConfiner.

cinemachine confiner

Первым делом вы заметите предупреждение «Требуется ограничивающая форма». Об этом мы сейчас еще поговорим, но просто знайте, что для Cinemachine Confiner требуется либо Polygon Collider 2D, либо Composite Collider 2D. Края коллайдера представляют крайние положения виртуальной камеры.

предупреждение об установке границ области преследования

Прежде чем мы настроим коллайдеры, давайте посмотрим на представление Hierarchy для примера игры в этом посте:

виртуальная камера в cinemachine

У нас есть главная камера Main Camera и 3 тайловые карты Tilemaps(Вода, Земля, Кусты), которые используются в качестве слоев. Поскольку мы хотим ограничить камеру краем карты, имеет смысл добавить граничную логику, то есть Polygon Collider 2D, в карту Ground Tilemap.

добавление границ на карту поверхности

Вы должны получить что-то наподобие представленного ниже. Размер добавленного коллайдера не важен, потому что мы настроим его на следующем шаге.

Polygon Collider 2D по умолчанию

Сначала нажмите кнопку Edit Collider в компоненте Polygon Collider 2D.

изменение границ коллайдера

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

Если вы забудете это сделать, игрок будет жестоко выкинут из коллайдера. С другой стороны… Может быть, вы хотите, чтобы это произошло. Я не могу знать, какую игру вы делаете.

Теперь нам нужно использовать этот коллайдер из тайловой карты земли в нашем Cinemachine Confiner.

окончательный вид в меню конфайнера

Когда все сказано и сделано, Confiner должен выглядеть как выше. Другим важным параметром является ограничение края экрана — Confine Screen Edges. В противном случае Confiner будет в основном игнорировать ограничивающую форму, которую мы только что установили. Этот параметр приказывает Orthographic Camera ограничивать края экрана «объемом» коллайдера.

Теперь нажмите воспроизведение и проведите игрока. Камера должна остановиться на краях коллайдера, в то время как игрок может продолжать идти прямо к краю карты.

Спасибо, что прочитали!

Понравилась статья? Поделиться с друзьями:

Переводит для Вас самые интересные статьи про разработку игр. По образованию физик-программист. Техническими переводами начала подрабатывать еще на старших курсах и постепенно это переросло в основное занятие. Интересуется гуманитарными технологиями, пробует себя в журналистике.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *