Range/zone-based enabling of Cinemachine virtual camera?

I’m trying to get a dolly-based camera to take priority when a player is within a specific radius/zone (classic platformer fixed POV camera for jumping section need). This feels like something solidly in the Cinemachine ‘wheelhouse’ but my Googling skills are failing me!?

I have a FreeLook at POV camera that can be switched between by the player at other times.

My first approach: I place all cameras under a Cinemachine Clear Shot with a Cinemachine Collider and set an Optimal Target Distance but this jumps disorientingly between them when you get around that distance from the dolly cam.

Obviously I can code this manually (add a trigger zone and some logic to enable/prioritize the dolly cam) but this feels like reinventing the wheel.

I’m new to Cinemachine – just started porting from Ootii Camera Controller + my own code. Y’know how you really try to do things ‘properly’ rather than hack everything when learning :wink: Happy to hear it’s an obvious thing I’ve missed. Cheers.

Ended-up coding myself piping OnTriggerEnter() and OnTriggerExit() to two UnityEvents after checking tag (to ensure only the player causes).
With that I could:

  • Enable/disable already prioritised virtual cameras
  • Boost the priority of already enabled virtual cameras
  • Kick off a Timeline with more complicated changes.

I also moved the dolly cameras out from under the Clear Shot Camera since that was unneeded.

(this was concluded as best answer after some discussion with peers who also couldn’t find an integral way so I’ll mark this as correct for now.)