Camera Juice

High level summary can be found under Juice up your Camera

At the time of writing this system I just genuinely was having fun writing everything from scratch, but I would recommend using UCameraModifier and make each a dedicated modifier (which I do in my day job professionally) because it is a tool exactly designed to perform such additive affects to the camera

UCameraModifier.h

A CameraModifier is a base class for objects that may adjust the final camera properties after

  • being computed by the APlayerCameraManager (@see ModifyCamera). A CameraModifier

  • can be stateful, and is associated uniquely with a specific APlayerCameraManager.

There is a dedicated component CameraMovementComponent which handles all the camera affects which can be layered on top of one another to achieve a smooth balance.

Bobble

A subtle camera bob (sin wave motion) while the character moves in any direction on the ground. It adds a subtle walking effect to the camera.

Lean

Rolls the camera to the right or left slightly depending on player input. Feels very natural in a first person game.

Dip

Landing on the ground after falling (either through a jump or otherwise) will dip the camera down then back up slightly. It adds a feeling of weight to the landing.

Pitch

The thought process behind this one is that if the player is backing up theres a fair chance they might be trying to get something in view (like giving yourself space to view something larger) and so it felt natural that one might tilt their head as they backpedal. There is no forward pitch, as that felt like I was looking at the ground...but backwards pitch feels nice to me for some reason.

Slide

During a slide the capsule is shrunk so the player can fit under objets they can't walk under, and likewise I drop the camera respectively to give the feeling of being lower. Also tilting the camera to the side makes it feel like you're performing an 'action slide' (common for the character's mesh to slide more on one side of their hips)

You could do even more by changing the FOV during the slide and adding "whooshing" effects to make the player really feel like they're speeding around

FOV

I made the default FOV larger than usual 110 vs 70 which was a stylistic choice to make the player feel a bit more low to the ground

Last updated