Need help with upm-package-cinemachine?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

167 Stars 55 Forks Other 1.3K Commits 16 Opened issues


Smart camera tools for passionate creators

Services available


Need anything else?

Contributors list


What is Cinemachine?

Cinemachine is a suite of ‘smart’ procedural modules which allow you to define the shot and they’ll dynamically follow your direction. Set up shots which track and compose motion in realtime, like AI camera operators. The procedural nature makes them bug-resistant as they always work to make the shot based on your direction. They’re great for gameplay, but they’re also amazingly fast for cutscenes. Change an animation, a vehicle speed, ground terrain - whatever - and Cinemachine will dynamically make the shot. You can use really telephoto lenses and not have to update the cutscene if things change.


Cinemachine works out of the box with no dependencies other than Unity itself.
Just install it and you're ready to go. It's pure c-sharp, fully open-source, and the public API has complete XML documentation built right in.


Cinemachine has been in development over a number of years across multiple projects. We’ve been designing camera systems for almost 20 years and have shipped millions of AAA titles across numerous genres. The Cinemachine team has an award winning cinematographer and a senior engineer with heavy math skills. Also, we love this stuff to bits.


Our mission with Cinemachine is to build an entirely unified camera system bridging gameplay, cutscenes, from fully procedural cameras to entirely canned sequences and everything in between.

Example Scenes

Please have a look at our example scenes. They are shipped with the package and can be imported via the Cinemachine menu.


We have a busy discussion area on the forums.



  • Yamato CI is triggered automatically for branches (one should not normally commit directly to
  • Be very deliberate if adding new public APIs, prefer to keep classes private/internal if possible; public APIs cannot be removed without bumping the major version. Remember to document (
    ) all public APIs.
  • We want to catch potential API validator errors early on, so set the planned versions preemptively to
    s in
    , don't forget to add dummy changelog entries. Let's say we're planning to make a minor +0.0.1 bugfix release: we want to prevent making changes that would require a major version bump. For preview packages, breaking changes require a new minor version, for non-preview packages, breaking changes require a new major version. Meaning, it's best to develop in non-preview "mode" and add the preview tag only when making an actual preview release.
  • Develop the features for the release(s) using feature branches named like
    , merge to
    preferably using squashing (if applicable) and rebasing so that we can keep a clean history.

Making releases


  • Ensure that Jira release issues are correct and up to date
  • Ensure that all Jira issues have landed in master and are closed (verified by QA)
  • Ensure that is up-to-date (issues listed, version number, date)
  • Make sure that
    has the correct version number
  • In Runtime/Core/CinemachineCore.cs, update the
    string to pint to the correct documentation version, and
    to reflect the current version
  • Publish to the candidates registry
  • When CI is green, request promotion on #devs-pkg-promotion
  • Make a release tag on the commit
  • Merge
    to master

Verified Releases

  • Publish to the candidates registry
  • In Unity repo, edit External/PackageManager/Editor/manifest.json and update the Cinemachine entry
  • Make a PR with that mod, start the package verification tests
  • When CI is green, and PR tests are green, request publication from release-management

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.