Online Portfolio

Wednesday 7 April 2010

The Weight Problem

Probably one of the most consistent comments from leads and animation directors during review is that a character 'needs a little more weight', and frustratingly it's not always easy or obvious how to rectify this. Sometimes it's down to posing and balance but often it's just that the character feels too light as they are moving around.

weight through posing by Wayne Gilbert

How to make things look heavy in animation is something that even experienced animators struggle with. I touched on this subject in my bouncing ball lecture but I think it would be good to go into more detail and really figure out how and why objects feel weighty or not when in movement. In the lecture I showed how to vary weight in the bouncing ball by altering the 'gap' - the distance between the last drawing of the ball falling and the 'squash' frame when it first impacts the ground.

These balls appear to have different weights; the one on the left feels like a ping pong ball, the one in the middle, a tennis ball, and the one on the right feels more like a bowling ball. Why does this work? All I have affectively done is slightly evened out the spacing of the heavy ball and lessen the distance the ball falls, which affectively makes the ball fall slower than the other balls. How does that make something feel heavier? Common sense would tell you that a heavier object would fall faster and accelerate more quickly, surely that is the way to make things look heavier? It seems counter-intuitive to have something you want to feel heavier, fall slower than something lighter.

But as Galileo Galilei famously proved gravity accelerates all objects at the same rate.* He demonstrated that if he dropped dropped a ten-pound weight and a one-pound weight off the Leaning Tower of Pisa they would hit the ground at the same time. Gravity acts on all objects equally despite their size and weight. This gives us quite a headache, is it therefore impossible to make a character seem heavier through gravity? If all objects fall at the same rate how can we make some feel heavier than others?

Maybe we're missing something, lets look at how gravity affects an object falling from different heights.

*Obviously there are other factors to consider the main one being air resistance if you had an object that was very light but had a large surface area, such as a feather then it will obviously fall much slower than a something of greater mass but with less surface area such as a cannon ball, but in a vacuum the ball and feather will fall at the same rate. In animation we are mostly dealing with characters - human or animal which are made of the same stuff - bone, muscle, fat, skin, and will therefore have about the same weight to surface area ratio. We can therefore take Galileo's law to be true - an elephant will fall as fast a mouse.

Ball Tests from Brendan Body on Vimeo.

Here I'm dropping a ball from 30cm*, 100cm, 200cm and 400cm and on the right of the screen I'm counting how many frames the ball falls for.

The results are as follows -

30cm = 6 frames
100cm = 11 frames
200cm = 16 frames
400cm = 23 frames

* not quite as accurate as I would like because I couldn't see what I was doing too clearly.

Here I have created a composite image of the tests, I've drawn a circle round the ball to help clarify their position. I've also adjusted the images so all the start and ground positions are at the same height on the screen.

If we simplify this further so we can just concentrate on the spacing, we can see the greater the height the ball falls, the more frames or longer it takes but interestingly the more even the spacing becomes.

In fact the spacing only appears very extreme at the start of the first test. Although this extreme spacing occurs at the start of the other drops, it is over such a short distance that it becomes hard to perceive that the ball is moving at all. Also look at how more even the spacing gets the further the ball falls, the spacing at the bottom of the last drop looks almost equidistant - the overall effect is that if the ball is falling from a great height it's motion is more even than if it's falling from a small height.

So we can deduce that the further an object or character falls, the longer this will take but also the more even the spacing will become.

Now, try and apply this information to an animation problem. Let's say we are given a scene to animate were a tyrannosaurus walks across frame.

We want this creature to appear realistic and obviously big and heavy, but we are unable to simply copy it from nature, there is no bipedal creature alive today that is as big as the Tyrannosaurus and therefore nothing we can use as reference.

However, we might look to a large bird from today like this ostrich, and try and scale up it's walk. Let's say we find a piece of reference where an ostrich walks through frame like above. You'll notice that like the ball images, the two creatures appear the same size in their respective shots. Although we know this to be false, it's easy to get sidetracked by the size of something in screen (or 'screen space'). In our computer scenes and on our pieces of paper there is often very little to help us get a good idea about how big something is or how far it's moving. Even though the ostrich and the Tyrannosaurus appear the same size in the two images, we know that the ostrich is 2 meters (6½ ft) tall were as the Tyrannosaurus is double the size at 4 meters (13ft). There is also a huge difference in weight between the two, the ostrich weighs just 45 kg (100lb) were the Tyrannosaurus is around 6.8 metric tons in weight.

To apply our ball information, let's look to the part of the body that falls during the walk cycle - the hips. We could take the range of movement in the ostrich and apply it to our Tyrannosaurus.

Let's say upon studying the ostrich we found that it's vertical hip range was 30cm*, we could then determine the tyrannosaurus' range. But how would we show this extra distance in movement? Well, we can use what we've just learned from the ball, for an object to fall 30cm will take around 6 frames. We know the Tyrannosaurus is double the height of the ostrich and therefore it's vertical hip range would be 60 cm. We know that it would be impossible for the Tyrannosaurus' hips under gravity alone to fall this distance in the same time, and we could probably make quite an accurate guess as to how long it would take to fall this far (8-9 frames) we also know that since the hips are falling further the spacing will appear more even, again we could use our ball images above to apply quite an accurate result.

*I've exaggerated the range in this example for clarity, in reality an ostrich's hip would on raise and fall around 2 inches (5cm).

But why stop here? We could take this further, we could exaggerate these values for the Tyrannosaurus and imply that he's even bigger than he is. If we use a few more frames and make the spacing slightly more even, we will give the effect that the Tyrannosaurs is actually even bigger and HEAVIER than it might actually have been.

And this is really the point I'm trying to make, the animator actually has a great deal of power over the physical world of their character. They can create a false gravity to imply the size - although the audience gets the impression that gravity has stayed the same and the object has got bigger.

We cannot use gravity to make an object seem heavier, instead we must create our own gravity to imply things are bigger and therefore heavier.

If we go back to our bouncing balls again we can see that what we've actually done. By reducing the final gap before the squash, this implies that the ball is bigger. So, by reducing the amount it's falling, we are effectively making it fall slower and by lessening the 'gap' we've evened out the spacing. All these things imply that the ball is bigger (as well as heavier) but further away.

For more confirmation of this theory let's look at something truly massive falling from a great distance - a huge piece of ice falling from the end of a glacier.

The ice in this video is traveling around the same distance in frame as our ball tests, but look how long it takes to fall this far. It looks almost as though it's in slow motion, when in fact, the ice is falling at around the same rate as our ball. As we are further away it seems much slower, and look at the spacing, it's even more even, the ice looks like it's falling at a constant speed, only very slightly accelerating.

But weight is not only a gravitational, vertical issue. As things move horizontally or in any direction around the screen, they can feel light. Often it's our inability to determine actual distance in our shot or 'screen space' that is conspiring to confuse us once again.

Let's look at two animals we might animate. The fastest land animal in the world, the cheetah can run at 60 mph, however the cheetah is still a big animal so we also need to show it's weight.

Let's compare it to a small animal, like the squirrel, which can run only at 20 mph. However, the squirrel is much lighter and if we compare speed for their size - by seeing how long it takes each creature to run it's own body length.

We find that the squirrel for it's size is actually quicker than a cheetah.

Weight is a fine balancing act. Often we want big, heavy things to move fast but we always have to keep in mind that they are big and to show that size (and weight) they have to move slower through shot comparatively than something that we want to appear light.

Also, as we found in our ball test, our acceleration or spacing on a small creature like our squirrel, can be more extreme. Because of it's tiny weight, a squirrel can accelerate to it's top speed very quickly (over just a few frames) which means more exaggerated spacing. Where as a big animal like the cheetah takes longer to reach it's top speed and therefore has more even spacing.

But keep in mind animation is not about recreating reality. We can also play with weight, making some characters feel heavier which can give them a greater presence in a shot and therefore a greater sense of importance.

Yoda is a small yet powerful character. His movement is usually slow and considered which subconsciously tricks the audience into thinking that he's larger and therefore more important. When Yoda jumped around during his light sabre duel in Star Wars : Attack of the Clones his character was made to look light, this destroyed the illusion for many, he suddenly felt weaker and less important at precisely the moment he needed to look strong.

This weight theory is not just about making big characters seem big, it can also be used to give weight and gravitas to small light characters when they need it.


Skellybobbly said...

Hi Brendan,

Thanks for this wonderfully detailed post.
It's great to see some science behind animating weight. ;)
I've never tried doing it this way, I normally go with what 'feels' right but I'll definitely be giving this a go in future work.

I really appreciate you taking the time to write this for the benefit of others.



Brendan Body said...

Thanks Jon, you're very welcome. And you're right, annoyingly in animation there are no hard and fast rules or formulas that work all the time. At the end of the day it always comes down to an animator's eyes and instinct.

good luck,


jeff said...

fantastic post. thanks!

jeff said...

really great and detailed post. Thanks!

Wouter Bongaerts said...

Hey Brendan,

i just discovered your blog.

This is one of the best blogpost about animation/physics i have ever read. You are a master in talking very clearly and simple about these, most of the time, confusing things.
Thank you so much for clarifying all this and taking the time to write it all down in such a simple manner.
I'll be checking out your blog for sure and will read through all your explanations.
Again, thanks, this is gold.

greets from Belgium

Brendan Body said...

Thanks so much for visiting and for your flattering comments. I'm really glad you've found this blog and post beneficial.

All the best,


Francis Jasmin said...

How could you show different weight between three balls with just one bounce ? I can't see how this make sense.

See an example at 1:28

Also, although your three balls are not falling from the same distance, you are making them falling with the same timing. Doesn't you just say that thing, independently of their weight were falling at the same speed, and thus, I supose, whould not take the same time to fall if they fall at different height ?

I'm just asking this question because I remember having read this post some months ago and then I was like, hummm...There is something bizare here.

But I just heard of your Bird Flight tutorial on Speaking Animation and it seem sooooooo cool, so I come again on your blog and will read your bird post after.

Francis ;)

Brendan Body said...

Hey Francis,

Maybe what's not clear to you is that I am talking about the illusion of weight. In my example the heavier balls are subconsciously being 
made to appear further from the viewer by 
reducing the screen distance fallen. This could also 
be achieved by keeping the screen distance of the three balls the same but adding extra frames to the drop of the heavier ones, again, making them seem like they're further 

We also create the illusion of weight by 
ensuring that the longer the ball takes to drop, the more even the spacing becomes. These things make the ball appear bigger and therefore heavier.

This is different to the example you show (which is nicely animated by the way) as I am talking about balls of the same material but different weights whereas you are using 
balls made of different materials - a beach ball and a bowling ball which obviously have a different ratio of weight to surface area and therefore air resistance. 

Let me know if this is still unclear,


Unknown said...

Bloody brilliant mate!! You're a genius. I've always felt the weight and couldn't really pinpoint why... oh sure big characters move slowly and smaller ones move quickly. Every half decent animator knows that. But you explained it so well. I think when things like this are broken down to the basics (physics, not so basic :P) you can start to build them back up and know how to break the rules. For example, the example you used with Yoda is so spot on. I too thought something had broken when he jumped around the room like a squirrel. But by building up the basics and then exaggerating them you could get some really powerful animation.

I love it.