Cinemachine Camera flips rotation when transitioning using Transposer Damping

I’ve run into an issue when transitioning between two Cinemachine Virtual Cameras, rotated 180 degrees from one another. Our project has isometric camera angles which are enabled in certain areas. This works in most instances but has some issues when using Body Transposer with damping and Cylindrical Position blend hint. The direction of movement appears to be decided based on the shorter distance, however this can change due to the damping, and if this occurs during the transition can cause the direction to flip suddenly.

These are the values on my Virtual Cameras:

I’ve tried various blend hints as well as differing Boyd and Aim settings, although this causes it to not move like I want it to. Is there some way to force the transition to rotate in a specific direction, or calculate direction when the transition starts?

The project is in Unity 2022.3.6f1 using Cinemachine 2.9.5

Are you able to upgrade to CM3? If so, there is a feature there to address this: a blend hint to blend out based on a static snapshot instead of the live camera.

Caution: depending on your project, upgrading to CM3 might be non-trivial. See our upgrade guide here: Upgrading a Project from Cinemachine 2.X | Cinemachine | 3.1.2

I’ve updated our project to Cinemachine 3.1.0 and it seems to allow us to fix the issue when setting Blend Hint to both ‘Cylindrical’ and ‘Freeze when Blending Out’. Unfortunately I had to manually update a lot of scripts and it causes us to lose a bunch of references so we’ll have to manually set those up too. I’ve rolled back to 2.9.5 for now, but I’ll explore 3.1.0 again at a later date.

The latest is 3.1.2.

You may be able to preserve a lot of your references if you first refactor your scripts to hold references to the common base class (e.g. use CinemachineVirtualCameraBase instead of CinemachineVirtualCamera, CinemachineFreeLook, or CinemachineCamera). There is code in the upgrader to help it not lose references if you do that. Be sure to choose “Upgrade Entire Project” or the upgrader won’t have enough info to do this work for you.