
“Ah, Cinemachine, the insufferable creation that graces the digital stage with its presence. While I am loath to admit it, there is a certain cunning in its design, a subtle artistry that even I cannot deny. Though I abhor its very existence, I cannot help but acknowledge its effectiveness in crafting scenes of deceptive beauty. It is a tool of the craft, albeit one that I concede possesses a modicum of talent.”
– Severus Snape
Update: 3.1.1 has been released.
Release Notes:
In this release, we’ve added a couple of new extensions:
-
CinemachineShotQualityEvaluator packages the shot quality evaluation code from CinemachineDeoccluder so you can use it in situations where you don’t want the Deoccluder.
-
CinemachineDecollider keeps the camera on top of terrains, and prevents it from intersecting objects. Unlike CinemachineDeoccluder, it makes no attempt to preserve the line of sight to the target.
We’ve also added a new sample scene: FlyAround, which shows one way to implement a free-flying camera.
We’ve updated the sample character controller code to be more versatile, allowing the character to walk on arbitrary surfaces. The FreeLook on Spherical Surface sample scene (pictured above) shows this in action. We encourage you to use our sample code as a starting point for implementing your own character controllers.
Other additions:
- CinemachineDeoccluder has the option to resolve towards the Follow target instead of the LookAt target.
- Added StateDrivenCamera.CancelWait() method to cancel the current wait on a pending state change.
- Added IgnoreTimeScale option to InputAxisControllerBase.
- Added confirmation dialog when exiting play mode, if Save During Play is enabled and changes have been made to saveable properties.
- SplineDolly and SplineCart: position on spline is preserved when units change.
- Axis recentering happens independently on axes with differing recentering times, so that input on one axis does not impact the recentering state of the others.
- Replaced SameAsFollowTarget with RotateWithFollowTarget (SameAsFollowTarget still exists but is deprecated).
- Deoccluder evaluates shots in the Finalize stage instead of Aim.
Bugfixes:
-
Index out of range exception when adding a CM Shot to a timeline track whose CinemachineBrain is inactive.
-
OrbitalFollow with 3-ring setup inappropriately damped in response to vertical input if LookAt and Follow were at different vertical positions.
-
StateDrivenCamera min activation time was broken.
-
Solo was not updating with the CM Brain in FixedUpdate.
-
Spline roll was being calculated incorrectly when the spline was rotated.
-
“Freeze When Blending Out” blend hint didn’t work when switching between two cameras multiple times.
-
Cinemachine cameras would sometimes unnecessarily dirty the scene due to floating-point imprecision when setting transform rotations.
If you are currently using Cinemachine 2.X:
Please note that not everybody using Cinemachine 2.X needs to upgrade. We will continue to support CM2 for some time.
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 using its API, the upgrade process will be relatively easy.
Resources
For more information, please have a look at:
Requirements
- The minimum required Unity version is 2022.3
- The recommended version is Unity 6
Getting started
- Open a new project through the hub
- Go to Window > Package Manager
- Search for Cinemachine in the Unity registry
- In the version history select 3.1.0








