Cinemachine needs no introduction. One of the most downloaded tools in Unity, Cinemachine is a suite of tools for creating complex real-time camera shots with codeless cameras, used for game cinematics and other linear production work.
We are constantly iterating to improve its functionality, and we also receive helpful feedback from our users with requests for updates. All of which has led to our latest release: Cinemachine 3. Cinemachine 3 is compatible with minimum version 2022.2. It will be official from 2023.2.
Originally acquired, Cinemachine has been part of Unity for five years. In the beginning, it didn’t fit neatly into existing Unity frameworks and processes. As Unity evolved and focused on things like ongoing UI development, Cinemachine hasn’t always been top of mind.
In this release, we’ve taken a step back and redesigned the way some things are done in Cinemachine. The Cinemachine 3 upgrade is not so much a feature update as it is a change of format – bringing it in line with the rest of Unity.
Not everybody using Cinemachine needs to upgrade. But if you’re starting a project in Unity Editor 2023.2, you’ll have Cinemachine 3 by default.
Please note: Before upgrading to Cinemachine 3, check if you have custom scripts that make significant use of the Cinemachine API. If so, it may be better to stick with previous versions. And, although we provide a tool to convert project data, there is currently no automated way to migrate code. The Unity API updater can’t take care of all the API changes, so this will require a manual upgrade.
If you are using Cinemachine “out of the box” without any custom scripting, the upgrade process will be relatively easy.
To help make Cinemachine 3 clearer and easier to use, we’ve changed and standardized some of the names. For example, since Unity has another product called Virtual Camera, the virtual camera in Cinemachine is now known as CinemachineCamera. Check out this informative video for more details on these name changes.
(Variations: Orbital Follow, Third Person Follow)
Cinemachine was previously implemented using hidden game objects that held behaviors responsible for things like controlling the position of the camera. This necessitated a complex API to get these objects, animate them, and access them from your scripts. This has been cleaned up and become more standardized.
Since hidden game objects have been removed, Cinemachine is more compatible with prefabs and presets.
Cinemachine was originally written using a standard for member variables. This was something we received a lot of feedback on (and something we didn’t like either). So, we removed all those instances of m_.
The procedural components are now standard MonoBehaviours added to the GameObject in the usual manner, so you don’t need any special API calls to access them.
The giant inspectors are gone. Now the UX is distributed across the new Cinemachine procedural components. Many settings are opt-in, so if you don’t need them, they don’t clutter the inspectors.
By default, there is one Tracking Target, not two, so there are fewer things to set up. The FreeLook has also been completely overhauled; it does more, and fewer settings are required. It also now supports radius scaling out of the box, via the new Orbital Follow behavior.
Camera settings that require user input are now driven by a separate component which supports both old and new input systems. A new Cinemachine Channel setting simplifies the implementation of split-screen and frees you from using Unity layers.
The Cinemachine spline implementation has been deprecated and replaced by an integration with the new Unity native splines.
All of the sample scenes in Cinemachine 3 have been redone from scratch.