Unity 3rd Person Character Cameras
Let’s create a camera system that does 3 things:
1) Shakes when player is running
2) Zooms in when player is aiming
3) Zooms out from above when player dies
We’ve got a scene that includes a plane, Cinemachine, and the Unity Starter Assets 3rd Person installed. And we’ve imported a couple of animations from mixamo.com for aiming and dying.
We’ll use a StateDrivenCamera to manage our various cameras. So use the Create State-Driven Camera option on the Cinemachine menu. Add the PlayerFollowCamera from the 3rd Person as a child to the StateDrivenCamera and remove the default camera created by the StateDrivenCamera. Add two more Cinemachine cameras to the StateDrivenCamera.
First, the shake camera… This will be a 3rd Person Follow camera following the Player. With some tweaking and Noise + Recomposer extensions, we get this:


Ok, next the Aiming camera. Another 3rd Person Follow. Nothing fancy:


And finally the Death camera. This one is going to pan out as our player dies, so lets use the BlendListCamera and have it go from a close camera to a far away camera:




Ok, now to manage our states. Here we’ve added the default and Run states:


For the Death state, we add a new state and then drop our Death animation into the Motion for the state:



Now we just need to add a Trigger state:

And here’s the result:

Now for an Aim state… Create a new state and add the Aim animation along with transitions in and out:

We need a bool to designate mouse down and up so:

Assign the condition:

And then assign the condition to return from Aim:


And add some new states to our StateDrivenCamera:

Now we get this:


Time for a script to tell the State Driven Camera when to call those states. Add this script to the player and it’s good to go:
