My setup:
I have an intro animation with 2 cameras
- one is used for the intro and moves around
- the other is static and is used for a later shop and also for the menu.
I have my camera blend with ease InOut and that’s fine. when the intro ends I change the priority of the camera to the static one and the blend between the 2 happens as expected.
however, the player can skip the intro and, when that happens I do a full-screen transition and change the blend type to BUT (to be immediate) so that when the transition ends the new camera is in place and there’s no “ease” between where the intro cam was to where the menu camera is. This also works fine.
My problem
By changing the cine brain default ease or custom ease, it seems to be affecting the component permanently instead of just during the play. If I stop the play and play it again, the ease will be set to the CUT if I cancel the intro on the previous play.
Is there any way to fix this? (e.g. changes made to the blend or the brain settings as a whole only apply for that play session and are not permanently applied to the project)
Many thanks in advance.
Very likely this is because you have the Save During Play setting enabled. You’ll find this in the virtual camera inspector. Its job is to apply changes you make while in play mode back to the project permanently. Disable it.
However, is changing the default blend the best way to do this? Do you have a CinemachineTrack in your intro? If so, then there is a much easier way. This is because CinemachineTracks control blends explicitly and bypasses the priority system.
Let’s call the camera that you blend to at the end of the intro Camera A. At the start of play, while the intro is active, raise the priority of camera A so that it would be the active camera if the intro were not playing. In the intro timeline, have a CinemachienTrack with a clip activating the Intro Camera. Ease the clip out at the end, so there will be an automatic blend to Camera A because it has the highest priority. If the player stops the intro and the timeline gets suddenly deactivated, then the timeline will end the clip abruptly and Camera A will cut in. No need to touch the default blend at all for this.
thansk for the reply @Gregoryl
The setup you describe is what I have (the difference is that you use a timeline and I used an Animator). I have a Cinemacnine dolly tracker with a vCam that follows on it. and the vCam has the animation. At the end of the track the camera blends to the new camera, and that works fine and is expected.
the problem is when I interrupt it. somewhere else in the track. The blend transition will still happen. I created a custom blend for that particular transition, which I can change in runtime but then it’s being saved permanently.
the “auto save” option is disabled on my Virtual Camera. but I’m changing the settings in the brain. Is that related?
You did not mention which version of Cinemachine you’re using. I’m assuming it’s 2.10.

If you’re not changing the default blend but instead are modifying a custom blend asset, then SaveDuringPlay is not the issue. It’s bad practice to modify assets at runtime, so I would advise you to change that approach.
If you use a Timeline and put the animation track in there alongside the CinemachineTrack, you will have much better control and will not have to resort to hacky shenanigans like changing the blend style programmatically.
If you don’t want to use the timeline, then you can try the following. Create a delegate for CinemachineCore.GetBlendOverride that returns “cut” if the intro isn’t finished yet. Something like this:
private void Awake()
{
CinemachineCore.GetBlendOverride += GetBlendOverride;
}
CinemachineBlendDefinition GetBlendOverride(
ICinemachineCamera fromVcam, ICinemachineCamera toVcam,
CinemachineBlendDefinition defaultBlend,
MonoBehaviour owner)
{
if (introNotFinished) // some condition, could be in owner, or could be a global test
return new CinemachineBlendDefinition(CinemachineBlendDefinition.Style.Cut, 0);
return defaultBlend;
}
See here: Class CinemachineCore | Cinemachine | 2.10.1
OK I will give Timeline a shot again last time I tried the behaviour was not as expected so I stopped using it.
Would you be able to provide some guidance on how to translate what I have today to a timeline and then trigger the timeline to start/stop when required?
this is what I have at the moment
- a
Spline
defining a path
- an Object with a
Spline Animate
that follows that splice for X time
- a
Dolly Cam with Tracker
. The tracker defines the path for the camera and the associated virtual camera has an Animator
to follow the track for XX time (and trigger some events along the way)
- the virtual Cam is looking at the object that follows the spline
How would I setup a timeline to do this?
Basically on request the timeline should start “playing” and I also need to be able to stop it (and move the vCam to another vCom)
many thanks in advance.