Bouncing Ball Animation

The Bouncing Ball Animation is Determined By:

  • Arcs
  • path of action
  • momentum
  • timing
  • key drawings
  • In-between drawings
  • Weight, speed
  • Substance of an object

Reference

Frame Count:

The up down frame count starts at 10 (it takes 10 frames for the ball to go up 12 units and 10 frames to go down), and decreases by 1 each bounce. E.g. the first bounce lasts 20 frames (in this case the first bounce starts in the air), the second bounce lasts 18 frames, the third bounce lasts 16 frames etc.

10Up. 10.Down. 9Up. 9Down. 8Up. 8Down etc.

In terms of the height, the ball starts at 12 units and the decay amount is about one fifth of the total 12 unit amount. The amount of decay depends on how much you want the ball to bounce, this will depend on the material. And the amount that that type of ball would regularly bounce. Decreasing by 1/5 each time will have about 9/10 arcs. Like so:

1 5th of each new arc unit height. E.g. 12/5 = 2.4. 12 – 2.4 = 9.6 This is the new arc height unit. The next equation would be: 9.6/5 = 1.92. 9.6 – 1.92 = 7.68 This is the next arc height unit.

Bouncing Ball Animation Plan

^^Plan made by me.

I have now made the Y- axis animation:

Y-axis animation view from the graph editor.

I am questioning whether the arcs should be more round, like in the plan. Although, I fully well know that the plan diagram arcs are too round, I am just using it as a reference.

Here is a play blast of it so far. The end does not look right, but I am following the lecture for now. I will see later how/ if the end is dealt with. I could just have it roll on the ground afterwards. But Is it nota bit of a jump from the last arc to have it flat on the ground immediately (although the graph editor shows the arcs higher than the bounce seems).

X- Axis

As the recorded lecture states, for the X-axis, it is best to type in accurate units rather than judging it by eye and keying the frame in. This can lead to the ball looking like it is sliding/ skidding while bouncing. The suggested method is to test the first drop with rough units starting with 12 (the same as the Y-axis). Then decrease or increase as needed to correct its appearance and animate each bounce individually. A good way to know how much distance to key in it to make sure never to go further than the height of that bounce.

Z-axis horizontal movement. (The Y-axis height units have mostly been kept the same).

Rotation Prep for Squash and Stretch

The rotational handles should be horizontal at the peak of the bounce, and vertical at the landing frame. The difference between the landing and the peak rotation is 90 degrees clockwise. The beginning number is 90 (as I started at the peak), then 0 and then I go into the minus units, continuously decreasing by 90 degrees each time I add a key frame. Each arc still has the same rotational unit change of 90 degrees, in spite of the change in the arc sizes. Next, make sure to select the linear button in the graph editor. With this, you are trying to match the rotation angle with the angle of the movement arc (Doesn’t need to be exact, but it helps make the animation better).

The tutorial states that I slow/stop the rotation at about the last/second-to-last arc. Even if it was incremental, I would have thought that the rotation would have a gradual decay, just like the arcs. (I later found out that you animate a different controller for that). The rotation is, somehow in correlation with the squash and stretch- You only need to rotate as much as you do the squash and stretch. And at the end where the ball is loosing energy, you will loose the squash and stretch.

Visual examples of how I animated these are below:

Peak: Horizontal rotation of the ball.
Landing: Vertical rotation.

Squash and Stretch

Next step is shift-select both squash handles and press ‘S’ to key frame every variable on those handles.

Then, to go your next frame, the landing frame, and press ‘S’ again (both handles). Move the top squash handle down about -0.3 units. By doing this, I will add a gradual squash starting from earlier, which I do not want. Make the frame before (9th frame) a stretch at about 0.15 units. This is the point where the ball has the most speed and should be stretched. Press ‘S’ to key frame every frame.

Also, when you are on the 9th frame, try to reorient the rotation slightly to align with the curve (with the motion trail as a reference). At about frame 4, align the rotation to the curve again and put all of the settings of the squash at 0 on this frame, too. (Perhaps add a tiny bit of stretch here e.g. 0.02).

On frame 11 (check rotational alignment), make the ball stretch at about 0.05 units.

Do the same for the other arcs (STEPS):

  1. The peak should be zeroed out.
  2. The landing should be squashed.
  3. The frame before the squash should be stretched.
  4. The frame after the squashed should be stretched with less energy than in step 3. (Less energy than the last stretch in the arc before).
  5. In all of the frames mentioned already, check the rotation orientation and adjust to the arc slightly.
  6. The frame before the peak, zero it out, if there is a need for it. Or make sure there is only a very small about of stretch.

I reduced the squash by about 0.05 each time. Sequence of squash units (each arc landing frame): Frame 10: -0.35. Frame 28: 0.3. Frame 44: -0.25 etc. Each time, I made sure to use only the handle that was at the top when the ball lands.

While animating the stretch key frames, I started at 0.15 and added the decrease rate at 0.03 – at each drop and bounce back up stretched frame. At the point where the ball is falling down, the stretched handle should be the following one. And at the point where the ball is bouncing back up, the stretched handle should be the one leading.

This is what the squash and stretch looks like in the graph editor. I selected one of the handle paths so you can differentiate between the two.

While editing in the graph editor, I extended the squash further so that so you could see it clearer. As it was not very well seen in the animation play blast.

Rotation of the ball itself

Press the little question mark on the screen and make the rotation controller visible. Rotate roughly 360 degrees per bounce. You can start off with the rotation perfectly horizontal, it doesn’t matter.

Step 1: Key the first frame, X-axis (which ever axis is rotating) at zero.

Step 2: Key the very last bouncing frame at 0. (Only key frame the rotating axis).

The first landing is about -130 degrees. Test out the speed of the rotation and adjust accordingly.

Step 3: In the graph editor, set everything to linear. And more the end frame lower down to get a preview.

Step 4: If you are happy with the speed then delete the key frame at 10 (the first landing one that you made at -130 degrees). Flatten the tangent at the end. Adjust the first frame in the graph editor accordingly, after breaking the tangent. You should get a ski slope shape.

Step 5: For that last little skid bit at the end, add a key frame where appropriate and adjust it in the graph editor like so:

Make sure it is really smooth at the end there, zoom in further if need be.

Additional Changes

Go back into the move controller and alter the linear curve into spline. This should smooth it out.

The result. ^^

Adjust some handles where needed to polish the curve.

Starting Position Rotation

This is so that the rotation of the z-axis is not completely linear. As in, I will rotate the z-axis so that the ball rotates more naturally instead of like a cylinder lid rolling forward.

All I have to do is change the starting position. No need to key frame.

Play Blasts

Final Animation

The frame map.