docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    What's new in Cinemachine 3

    This page describes the main new features and changes in Cinemachine 3.

    Major API changes

    The Cinemachine 3 API has been changed in depth to comply with Unity standards and align with the rest of the Engine.

    Some components have been replaced by new components, others have been renamed. Field names have changed. Namespaces have changed.

    Note

    For most of these issues, if you upgrade from Cinemachine 2.x, you will see errors or deprecation warnings in the console, which will point you to the areas in your code that need attention.

    New namespaces

    Namespaces have changed to be more consistent with Unity standards.

    In Cinemachine 2.x In Cinemachine 3.x
    Cinemachine Unity.Cinemachine
    Cinemachine.Editor Unity.Cinemachine.Editor
    Cinemachine.Utility Folded into Unity.Cinemachine

    New components with clearer names

    Several components have been replaced by new components.

    Note

    These are not renames, they are new component types. The old components still exist but are deprecated. If your scripts refer to any of them, they will need to be updated once the data upgrade has been done.

    In Cinemachine 2.x In Cinemachine 3.x
    CinemachineVirtualCamera CinemachineCamera (see the Note below)
    CinemachineFreeLook CinemachineCamera (see the Note below)
    CinemachinePath and CinemachineSmoothPath Spline Container, provided by Unity's new native spline implementation.
    CinemachineDollyCart CinemachineSplineCart
    CinemachineTransposer CinemachineFollow
    CinemachineOrbitalTransposer CinemachineOrbitalFollow
    CinemachineFramingTransposer CinemachinePositionComposer
    CinemachineComposer CinemachineRotationComposer
    CinemachinePOV CinemachinePanTilt
    CinemachineTrackedDolly CinemachineSplineDolly
    CinemachineGroupComposer CinemachineGroupFraming extension used in conjunction with CinemachineRotationComposer
    CinemachineCollider CinemachineDeoccluder
    CinemachineConfiner CinemachineConfiner2D and CinemachineConfiner3D
    Cinemachine3rdPersonFollow CinemachineThirdPersonFollow
    CinemachineSameAsFollowTarget CinemachineRotateWithFollowTarget
    Note

    The new CinemachineCamera class that replaces CinemachineVirtualCamera and CinemachineFreeLook inherits from CinemachineVirtualCameraBase.

    Renamed components

    The following components have been simply renamed.

    In Cinemachine 2.x In Cinemachine 3.x
    Cinemachine3rdPersonAim CinemachineThirdPersonAim
    CinemachineBlendListCamera CinemachineSequencerCamera

    Renamed Fields

    The old convention of using m_FieldName has been changed to follow Unity's latest naming conventions. Consequently, all of the m_ prefixes have been removed from field names, everywhere.

    Note

    If you upgrade from Cinemachine 2.x and your scripts no longer compile because of this, the first remedy is to remove the m_ from the field name that your script is referencing. Most of the time, that will be enough.

    Occasionally, some field names were changed more significantly. It should be fairly easy to find the appropriate replacements.

    The SimpleFollowWithWorldUp binding mode has been renamed to LazyFollow.

    Removed CinemachineCore.Instance

    Most methods and properties that used to be accessed via the CinemachineCore.Instance singleton are now direct static methods and properties on CinemachineCore.

    There are some exceptions, notably ActiveBrainCount and GetActiveBrain() which are now static methods in CinemachineBrain.

    Other architecture and integration changes

    Beyond API changes, Cinemachine 3 includes other architecture and integration changes that improves its alignment with the rest of the Unity Editor.

    Cleaner Object Structure, No Hidden GameObjects

    Cinemachine 2.x implemented the Cinemachine pipeline on a hidden GameObject child of the Virtual Camera named "cm".

    This has been removed in Cinemachine 3.x, and Cinemachine pipeline components (such as OrbitalFollow or RotationComposer) are now implemented directly as components on the Cinemachine Camera GameObject. You can access them as you would any other components: GetCinemcachineComponent() is no longer necessary, just use GetComponent().

    Note

    If you upgrade from Cinemachine 2.x, you will see the "cm" child objects of your legacy Cinemachine Virtual Cameras in the hierarchy, because Cinemachine 3.x unhides them. The upgrade instructions include all the information to get rid of them.

    New Input Handling

    User input has been decoupled from the Cinemachine Components: they no longer directly read user input, but expect to be driven by an external component.

    CinemachineInputAxisController is provided to do this job, but you could also choose to implement your own input controller by inheriting InputAxisControllerBase.

    New Events Architecture

    While Cinemachine 2.x has events in CinemachineVirtualCamera and CinemachineBrain, Cinemachine 3.x only fires global events via CinemachineCore. Scripts can add listeners to those events and take action based on them. Listeners will receive events for all cameras and all Brains.

    Camera-specific and Brain-specific events are now supported via two new behaviours: Cinemachine Brain Events and Cinemachine Camera Events. These monitor the global events and fire more specialized ones related to the objects to which they are attached.

    New Spline Implementation

    Cinemachine's paths are now implemented using Unity's native Splines, which provide equivalent functionality.

    Note

    If you upgrade from Cinemachine 2.x, the Cinemachine Upgrader will automatically convert your Cinemachine paths to Splines. The Cinemachine path implementations still exist, but are now deprecated.

    Cinemachine Channels instead of Unity Layers

    In Cinemachine 2.x, the Cinemachine Brain would only process Cinemachine Cameras that were assigned to layers included in the associated Camera's culling mask. This mechanism was useful in situations such as split-screen, to cause specific CinemachineCameras to be assigned to specific Brains.

    In Cinemachine 3.x, this has been replaced by Cinemachine Channels. These are dedicated layers that only Cinemachine uses, so that Unity layers don't get needlessly squandered. Cinemachine Cameras are assigned to a Cinemachine Channel, and the CinemachineBrain has a channel mask. Normally, the "Default" channel is used, and only needs to be changed in specific situations where channel separation is a requirement.

    Cinemachine Channels Camera

    Cinemachine Channels Brain

    Lens Mode Override

    The Cinemachine Brain now has a property to control whether Cinemachine Cameras can use Lens Mode Override (e.g. changing between physical and perspective and ortho cameras) and to specify a default mode.

    Default Lens Mode

    Note

    If you upgrade from Cinemachine 2.x and your project is using Virtual Cameras with a Lens Mode Override, then this will stop working until you enable Lens Mode Override and assign a default lens mode in the CinemachineBrain.

    Various UX improvements

    Cinemachine 3 brings many user experience improvements for setup and customization through the Cinemachine UI.

    Separate components for procedural settings

    Cinemachine Camera procedural settings are now available in the form of standard Unity components, which dramatically simplifies the Cinemachine Camera setup process in the Inspector. Many settings are opt-in so that you don't have to see them if you don't need them.

    Tracking Target simplification

    There is now a single Tracking Target by default in a Cinemachine Camera. This simplifies your setup when the target to look at is the same as the one to follow. You can still configure a distinct Look At Target, but only when you need it.

    Overhauled FreeLook camera

    The FreeLook camera has been completely overhauled, replaced by a basic Cinemachine Camera with standardized procedural components. It does more, and fewer settings are required. It also now supports radial axis scaling out of the box, via the new Orbital Follow component.

    More opportunities for customization

    • ClearShot cameras can now receive a custom Shot Quality Evaluator.
    • Spline Dolly and Spline Cart can now receive custom AutoDolly implementations.
    • FreeLook cameras can receive custom modifiers for vertical camera movement.
    • It's now easier to write custom Input Axis Controllers.

    Complete overhaul of sample scenes

    All of the sample scenes in Cinemachine 3 have been redone from scratch to improve your learning experience and align with the new Cinemachine architecture.

    In This Article
    Back to top
    Copyright © 2025 Unity Technologies — Trademarks and terms of use
    • Legal
    • Privacy Policy
    • Cookie Policy
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)