THE BOUNCING BALL
The great part about the Bouncing Ball animation excercise is how many of the Principles of Animation it covers. 7 of 12 (13) principles are examined just through this simple animation test.
Concepts covered in this excercise:
-Squash and Strech: the ball will squash when it hits the ground, and stretch like a spring as it bounces back upward
-Arcs: the movement of the ball will be in an arc-motion as it bounces
-Overlapping Action: The Rotation of the ball will Overlap the main bouncing movement
-Exaggeration: We will over-emphasize the elongation and contraction for effect
-Slow in, Slow out: The ball will accelerate on the downwardmovements and deccelerate as it goes upward, and slow up at the top of it's bounce
-Pose to Pose: We will set keys for the ball, then finesse it at the end
-Truth to Materials: Gravity.... uh, thats all we are doing here!
- Prep Stage:
We will be using a special file for this demonstration: a nurbs sphere rigged with animation controllers.
Lets look first at a plan of what we are going to do be doing here, as seen from the Front Orthographic View
-First, we will use the Ball_group node (a placement node) to move the ball up exactly 10 units in the Y-axis to it's new starting position
-From here on out, we will be using the Ball_CTRL group to all of the animation
-Our ball will bounce in arcs, accelerating as it nears the ground, and deccelerating until it reaches it's maximum height
-The ball will compress and expand through the transfer of energy at impact creating a Squash and Strech
-The ball will rotate through the path

- Blocking Stage 1:
Now that we understand what we plan on doing, lets start blocking in some key positions. For now, we will only key the Translate X and Translate Y values of the Ball_CTRL group to
control position. We will keep all keys on the same frame, and will set the keys based on even 1/2 second intervals. Since we will be using 24 fps in this demonstartion, keys will be set every 12 frames at first.

Drag a selection over Translate X and Translate Y in the channel box for Ball_CTRL. Right-click-hold and choose key selected.
Move to the following frames and enter the following values. Make sure to set a key each time:
| At frame 1: |
At frame 12: |
At frame 24: |
At frame 36: |
At frame 48: |
At frame 60: |
At frame 72: |
At frame 84: |
-Translate X: 0
-Translate Y:
0 |
X: 6
Y: -10 |
X: 12
Y: -5 |
X: 18
Y: -10 |
X: 24
Y:-8 |
X: 30
Y: -10 |
X: 36
Y: -9.5 |
X: 42
Y: -10 |
As you can tell, these steps do two things:
X is moving forward at a constant rate
Y has it's height diminishing with every bounce as the ball loses energy.
Here's a look at our animation as it stands after phase 1 of the blocking:
- Blocking Stage 2:
For the second part of the blocking phase, we will key out the upper Sqashing Node seen selected here in the hypergraph.
We want to elongate the ball at the top of it's arc, and squish it as it collides with the ground.

To do that, we will key the following values for the Translate Y of the squash node:
| At frame 1: |
At frame 12: |
At frame 24: |
At frame 36: |
At frame 48: |
At frame 60: |
At frame 72: |
At frame 84: |
-Translate Y:
0.5 |
Y: -0.5 |
Y: 0.4 |
Y: -0.3 |
Y: 0.2 |
Y: -0.1 |
Y: 0.05 |
Y: 0 |
The trend here is that at each successive key, the amount of elasticity is diminishing as the ball runs out of potential energy to convert into kinetic energy
Heres a look at what the blocking looks like so far:
- Animation Stage 1:
We are now at the point where it is time to start fixing our animation curves. As you can see in the animation test above, the ball seems to be floating along, not really minding much for gravity or anything else. We can edit this all with the graph editor:
Window-Animation Editors-Graph Editor
Here, if we select our two animated objects, we can see the curves for them.

Notice the Curve of the 2 Translate Ys, at the bottom of their arc they are remaining parabollic and not coming to a point, as was drawn out in the preparation stage. We need to edit these curves:
First, we will flatten off the tops of all curves

Then, we will break the tangency of the curves so each bounce can be individually edited.
From there, we will manually move (with the move tool "w") the tangent handles to create a v-spike at the bottom, a u-arc at the top

Heres where we are at now:
The bounces look solid, but the timing is still off. The ball should lose it's forward momentum as it comes to a stop, and thats not happening at the momment.
Lets select all the curve points in the "middle" of the animation for Translate X and delete them (hit delete)

Then we can manually edit the tangency handles of the first and last keyframe, to create a decceleration curve that looks like this:

- Animation Stage 2:
Well, now come the final stages. There are two things left to do:
We need to get the ball to rotate as well, leaning into the bounce
-and-
We need to condense the curves so that the ball slows more by the end
First, the rotation:
We will now (for the first time) start setting keys on "off" frames. 0,6,12,18,24.... every 1/4 of a second will now have a key for this curve

| At frame 1: |
At frame 6: |
At frame 12: |
At frame 18: |
At frame 24: |
At frame 30: |
At frame 36: |
At frame 42: |
-Rotate Z: 0 |
Z: 10 |
Z: 0 |
Z: -10 |
Z: 0 |
Z: 8 |
Z: 0 |
Z: -6 |
| At frame 48: |
At frame 54: |
At frame 60: |
At frame 66: |
At frame 72: |
At frame 78: |
At frame 84: |
Z: 0 |
Z: 4 |
Z: 0 |
Z: -1 |
Z: 0 |
Z: 0.5 |
Z: 0 |
The trend here is that the amount of rotation decreases as time progresses, eventually coming to a stop.
Now for slowing the ball:
This step doesn't really have a delinated set of instructions like the previous steps as it is more finesse based.
The general idea is that we will Squish the time-curves all at once, slowing it a little at the begining, and a lot more by the end.
So at first, the animation was 84 frames long, our new animation will take place in 63 frames. The first bounce will still mostly look
the same, but the final bounces will happen quicker as they do not need to bounce as high:

And with that, we have a bouncing ball: