Possibility to tweak timescale of the whole Cinemachine.

Hello,

Actually there is no timescale tweak in cinemachine. We can just ignore timescale.

We ship a game and we need to pause it or slow motion it. We don’t use global Time.timescale to do this because we have multiple clocks with multiple local timeScale.

It will be very practical to have a localTimeScale for Cinemachine (in brain, in camera…) we can change and so the deltaTime used by the whole API is affected but not the entire game.

Is this planned ? How can we achieve this ?

In fact there is one place in CinemachineBrain that sets the timescale for all of CM. You can hack CinemachineBrain to use a custom value. See CinemachineBrain.GetEffectiveDeltaTime().

Actually the very latest version of CM (almost in preview) has some secret functionality that does exactly this: CinemachineCore.UniformDeltaTimeOverride, which is checked by CinemachineBrain.GetEffectiveDeltaTime().

You can either just wait for that release, or hack your own version of it.

Hello,

Cool I will wait. What’s the date for this release ?

Maybe it will be also cool to set a delta for specific brain and specific virtualCamera ?

Thank you for the fast answer :slight_smile:

It seems to be a pretty unusual usecase. CM uses timescale only for damping, noise, blending, and such things. It’s hard to see why anyone would want different values across different parts of CM, and it would be difficult to justify the added complexity. Can you say something about your specific need for this?

Hello,

In fact we have some “Bullet time” for Tutorial etc. And want to slow down cinemachine behaviour (brain but also virtualCamera damping). Our gameplay can slow down, but we don’t touch Time.timescale because some part of the game are UI, some other are Gameplay, some other are just VFX we don’t slow down etc…

Maybe it will be cool to slown down specific camera, say for a GameplayCamera and an other for Menuing… Reason can be very various.

For the moment I think CinemachineCore.UniformDeltaTimeOverride will work for us. But maybe someone will also want specific delta. I looked the code, and all functions take a deltaTime, just passing delta*Time.deltaTime would be ok…

Imagine someone has a Game were some part of the world suffer from time shifting… It will be very pleasant for him to have such great tooling :smile:

1 Like

Coming back (with new account).

I know a situation where I want to control timeScale on particular virtualCamera.

For example in our game, we have tutorial which slow motion time, and virtual camera for these tutorials. We want to slow motion Gameplay camera damping, but not tutorial camera ! :slight_smile: