This is mainly a bugfix patch release, but we have also included a couple of new samples scenes.
Bugfixes
Correct blend time was not always used when backing out of a blend-in-progress.
CinemachineVolumeSettings: changes to Focal Length and Aperture settings were not being applied while auto-focus was enabled.
InheritPosition was not inheriting the camera position in all cases.
Rotation Composer damping was not being applied when the Orbital Follow’s Binding Mode was Lazy Follow.
GroupFraming extension did not respect PreviousStateIsValid flag, so could not be reset dynamically.
When blending between a 3rdPerson camera without a look-at target and a camera with a look-at target, the blend was incorrect.
ForceCameraPosition was not working properly for LazyFollow cameras.
Teleporting a camera with a nonzero Target Offset was not smooth.
Exceptions were sometimes generated when an OrbitalFollow component was deleted.
Input Axis Controller was losing user input after a play-mode domain reload.
Input Axis Controller was not always reading composite actions correctly.
CinemachineConfiner2D.BakeBoundingShape() was leaving confiner with a not-fully-baked shape.
Added
Added new Portals sample scene to illustrate camera teleportation.
Added PerspectiveToOrthoCustomBlend sample scene to illustrate a customized blend algorithm.
Added CinemachineConfiner2D.CameraWasDisplaced() and CinemachineConfiner2D.GetCameraDisplacementDistance() methods.
Added InputAxisControllerBase.GetController(string name) method, to conveniently fetch an Input Controller having a specific name.
Added InputAxisControllerBase.TriggerRecentering(string name) to trigger recentering of an axis having a specific name.
Added “Recenter” button to input axis inspector, to immediately center the axis.
Changed
Input Axis recentering only operates when the game is playing.
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. The latest CM2 update is here .
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.
I am getting this Error Message on this update. My Unity Version : 6000.0.60f1
Library\PackageCache\com.unity.cinemachine@5342685532bb\Runtime\PostProcessing\CinemachineVolumeSettings.cs(213,64): error CS1061: ‘DepthOfField’ does not contain a definition for ‘focalLength’ and no accessible extension method ‘focalLength’ accepting a first argument of type ‘DepthOfField’ could be found (are you missing a using directive or an assembly reference?)
I’m encountering an issue with TriggerRecentering() both on the AxisController component and Orbital Follow component.
The recenter trigger works but it’s ignoring the recentering target. It always uses the Axis center.
I want to trigger a recenter using parent object but it’s not possible. It always uses axis center.
I know I can enable recenter and set wait time to 0 as a workaround but that’s very clunky when we could just use a method.
Reimporting or deleting library doesn’t seem to work
I manage the project with git so I deleted and recloned it to rebuild all generated files. Still nothing.
Downgrading to 3.1.4 does work.
It seems both
CINEMACHINE_HDRP
CINEMACHINE_URP
are not defined in 3.1.4 but are in 3.1.5. This means in 3.1.4 the entire script doesn’t compile as there’s conditional compilation wrapping the entire thing
Bugfix update or not, it stopped my cinemachine camera setup from working as before…
Using HDRP, virtual camera with Third Person Follow and Hard Look At
I briefly scrolled through changelog but couldn’t figure out what’s wrong (no errors)
The issue is that CM 3.1.5 does not support URP and HDRP being both installed at the same time (3.1.4 did support it). This has been reported and fixed in the source.
However, it does beg a question: why do you have both HDRP and URP installed simultaneously?
We want to sometimes make builds that have URP and other times make them with HDRP, so we have both in the project and switch to the appropriate one at build time. That is why we have both in the project.
The main issue I’m trying to tackle right now is that for Unity 6000.0.48f1 and later, when we load an asset bundle that was made in HDRP but converted to URP at runtime, then start our code in the scene that uses cinemachine, it causes our UIToolkit items to stop rendering and instead show unrendered space (that fills with whatever was last on screen) where the UI should be.
I’m still trying to figure out what exactly in Cinemachine causes this issue so that I can write a more directed report, but in the meantime I was wondering if you experienced any situation in testing for Unity 6 where UIToolkit items failed to render.
Hello! I’m using Cinemachine to track several targets and stay confined to the playable area.
I was unable to setup the camera they way I want with GroupFraming and Confinter3D. Mainly because 3d confinter requires a collider and I want to restrict camera movement only by the 2D arena size while being able to zoom-in/out when there are many targets. Basically this is an RTS isometric camera which can move forward/backwards to the target position.
Anyway, I crafted my own CinemachineExtension which fits my need. I just set CinemachinePositionComposer’s CameraDistance to the desired value and it worked fine in 3.1.2. I guess something changed in 3.1.5 (or in earlier versions). Now damping is not applied when I set CameraDistance and camera instantly snaps to that distance.
Is there a way to restore/enable damping for the CameraDistance?
Damping is only supposed to happen in response to positional/rotational changes of the targets, not to parameter changes inside the camera, so the behaviour in 3.1.2 was incorrect.
Unfortunately you were relying on a bug in Cinemachine 3.1.2 which has been fixed in more recent versions. If you want to change the camera settings in a damped way, use SmoothDamp or some such technique to change the setting gradually.