Creating a Hand-Held Camera Look In Unity Using Noise
While camera’s in game engines are able to be set perfectly still, sometimes we want to replicate a real camera operator. To achieve this, we can add subtle movement to the position and rotation of our Cinemachine Virtual Cameras.
Before we dive into this though, let’s look at our previously ignored Aim types. So far, we’ve only used the Composer type, but additionally, we could use a Group Composer which allows us to set multiple Look At targets.
We could also use a Hard Lock to Target which does exactly that, allowing for no offset or the likes of damping, or simply a Same as Follow Target, to actively track rotation with our movement.
Lastly, we have the POV type, which allows us to create first person views, complete with user input to control the view. We could additionally create something like a hand held camera view akin to horror games like Outlast.
This is a quick and easy way to set up a simple first person view, using the Aim features, although it’s important to note a Look At target shouldn’t be used. I’ve also set the rotation speed to match that of my already created player controller.
As we walk through our scene, how can we add realism, such as tensity in a horror game, or simply mimicking head bobbing. This is where we can make use of the Virtual Camera’s Noise settings. Using a Multi Channel Perlin, which allows for each axis to move and/or rotate at a different Amplitude and Frequency, we can create dynamic movement. We can customize these variables using our own Noise Profile or select an appropriate template. I’ve selected a mild handheld-esque shake.
Here we can also set the central point of the movement to occur around a different point on our screen, as well as adjusting a master Amplitude and Frequency gain to alter the intensity and speed.
Now as we look around, or even stand still, our camera has movement to it, making our scene much more immersive!