Wednesday, October 31, 2018

Just Add Noise

It is relatively easy for an experienced animator to track every arc and create smooth, crisp and clean motion. For a more stylised film, this is fine. Just as the designs themselves are caricatures of reality, so too is the movement. This becomes problematic when thinking in terms of visual effects or realistic animation. In reality arcs are not squeaky clean; there is noise and breakup. The difficulty is in getting noise that feels natural and not like a mistake.

There are a few types of noise; vibration, general noise, and breakup. Vibration is a quickly oscillating noise; you can use this to show tension usually. General noise is usually just random noise, a bit of added dirt to the base animation. And then there's breakup, which can tie in to general noise but it's usually a more deliberate addition. It is the breaking up of a smooth move into multiple parts; for example, slowing or stopping in the middle of a head turn so it doesn't feel quite so perfect.

 General noise

 Vibration Noise

Break up (on a kind of head shake or something)

Before adding in any noise, I make sure my arcs are clean. It's good to have this as a base as you then know that any noise added is a deliberate choice and not a computer generated artifact or mistake. Usually I'll keep my noise on a layer in case it needs to be toned down or amplified. It makes it easier to edit and gives you more control over its influence. Breakup is the exception; I tend to put this into the base animation as this allows you greater control over the curves.
Layers also allow you to animate the weight of the noise. Let's say you have someone lifting a heavy object, and you want to add some vibration noise to help sell the effort involved. You could have a layer that has vibration noise throughout and then use layer weighting to have it vary in intensity. I usually don't bake down noise layers until the final polishing passes and usually not until I need to see exactly what my curves are doing.

For characters there are more considerations to make. Some very smart folks at MIT wrote a research paper about video magnification. They created an algorithm that could somehow amplify the apparent motion in a video. A video of a stationary crane, when run through this, swings wildly about because the crane is being buffeted by the wind. They filmed and amplified people sitting, not doing anything, but the output video shows then bring jostled around by their very heart beat. There's a rhythm to it and a logic that is absent from other noise. I've been meaning for the longest time to make this as an animation layer, but I find that every time I need it at work I don't actually have the time to do it. This is all subtle stuff but can really add to the realism of your character.

It is important to keep in mind that that the body is a unit, nothing happens in isolation, and so it's important to link noise from connecting body parts. They may not be one to one, but the noise in the chest, for instance, should feel like it affects the limbs and head. Similarly if you break up the arm, you can really sell it by having it affect the motion of the wrist.

Noise doesn't need to be limited to characters or objects; camera noise can also help add to the realism of a shot. It's good to think about how the camera is operated in a shot and adding in noise over the top that makes sense for that. Similarly you can add vibration noise for impacts and the like to really sell your animation. I do find that less is more with cameras, so keep it subtle and make sure it doesn't grab attention. People shouldn't be thinking about the camera.

I  have a script I use for general noise that can be found here. You set value range for the noise, hit apply and get some nice random noise. Pressing the button again will get a slightly different result. For vibration noise, I bake a curve in a layer, select every other key and set a positive value. Then invert the selection and apply a negative value. I usually then run the previously mentioned noise script so the vibration doesn't feel too artificial, with low values so it doesn't undo the vibration feel.

It is important to reiterate that you should try to support this, as with anything, with copious amounts of reference. Study the natural world to get the best results.

Reality is full of imperfections and it's important that our animation reflects that; especially when we're trying to fool people with our computer generated unreality. Thoughtful and deliberate dirt, noise and breakup will go a long way towards filling the gap between your animation and convincing, natural motion. 

Keep on keyframing!