Blender Bootstrap Animation II

This is the second exercise in the Blender Bootstrap Animation Class. If you’re new to Blender Bootstrap Animation, we are a bunch of Blender users who are learning and improving our animation skills by working on exercises and critiqueing each other. The exercises are designed to be done in order, so start by clicking the link above to do the first exercise.

The second exercise involves rolling the ball along the smooth surface of the table until it strikes the other ball, they both roll off and come to a stop. They may or may not bounce off the bumpers after the strike.

The purpose of this exercise is to work on abrupt and smooth changes in speed, since the balls slow down as they roll, and when the balls collide, some of the momentum of the cue ball is transferred to the red ball. It’s also an exercise in working with two IPO location curves at once, since the balls are on a diagonal.

The follow up exercise is to bank the cue ball off a cushion before it strikes the red ball. Another follow up exercise would be to add a second red ball, and play a round of carom billiards (cue ball strikes one ball, bounces off cushion, strikes the other ball.)

Here is Billiard Table.blend (if you don’t want to make your own.) Looks like this:

Heres my first version. I know, the little bit at the end isnt strictly realistic, just added it to spice up the motion a bit. Haha, actually, Im sure none of it is strictly realistic, but ah well.

Actually, I’ve played on pool tables where the ball does that. However, the idea behind this exercise is 1) ball is on the diagonal (so you use both x and y loc IPO curves) and 2) the cue ball doesn’t hit dead center, so the cue ball keeps moving after the collision, and the balls move off at angles to the cue ball’s original direction of motion.

Here is my Ball Ricochet. I did this before you provided the Billiard Table blend Orinoco.
It was a lot harder than I thought it would be.


technojoe, nice one. The shadow on the blue ball seems too long. Is it above the table surface? Also, the ending seems abrupt, like the balls stop a bit too quickly.

I started with your original .blend for the bouncing ball and just scaled up the paltform, added another ball and moved the camera above the paltform. i did not mess with the lighting any.

@Orinoco: Ahh, okay! I’ll have one like that up shortly…

Remember Newton laws on this one. Like if the to balls has the same mass, and they hit each other along their radius, they’ll switch velocity. So if white ball was moving with velocity A and red ball hit him from behind with velocity B, the white ball will move with the speen B and the red ball with speed A. In any case even if they hit at an angle , the total sum of speeds before equals the totals sum of speeds after. Just as a thought to keep in mind if you are trying to do some realistic collisions. This exercise is harder than it looks.

hi, this’s my entry about the billiard balls


I think it looks great Kaboom. No crits from me. Do you think you could post a screenshot of your IPO window?

oh… excellent :cool:

ok, i post the ipo screenshot


Thanks for the Screenshot.

Kaboom, the angles look good, but the speed seems to stay constant until after the balls bounce off the bumper. (They are slowing from the collisions, but don’t seem to be slowing from rolling friction until around frame 50.)

Here are two billiard balls. The first one is only a head-on collision so there are no angle of deflection to get right. Both balls travel only along the X direction. It was easier to start with that animation. I tried to get a constant deceleration throughout the whole sequence. There is no loss of energy during the 3 collisions (cue on ball, ball on edge, ball on cue)

The second animation was much harder to get right because of the angle of collision. After a few attempts that looked wrong, if not awfully wrong, I went to the web and found the physics description of two balls colliding and I applied that in an Excel spreadsheet to get a feel of what should be going on. Even with the Excel tool, I needed about 4 failed attempts before getting it right. The final animation takes the angle of collision for both angles of deflection and transfer/loss of energy. There are 4 collisions/bounces. The balls are constantly decelerating during the animation. One difficulty with that animation, and that was pointed by technojoe, was to get the angled paths to not curve. That needed carefull ploting of the deceleration curves.

@Ypoissant: I think your first animation could be cleaned up a little. If I remember my physics lessons correctly when tackling differential equations: If friction is constant, you’ll get a constant deceleration, that’s true. But in this case it is the other way around. Friction is a function of velocity. So, the higher the velocity, the higher the damping is. SO, in the beginning of the animation, the ball should decelerate at a higher rate, and the deceleration before the first impact should be less than at the start (the velocity graph should look like the left part of a bath tub). That is , if you wanted to show friction. For air hockey there is almost no friction, so in that case it should look like your animation.

@toontje, All you mention is true. But, also, in a billiard game, there are so many factors that affect the deceleration of the balls. One very important factor is where the stick hits the cue ball. By hiting high, you can actually have the cue ball rate of deceleration be lower at the start than at the end. By hitting low, you can have the cue ball rate of deceleration be buch faster at the start than at the end. By hiting on the side, you can have the cue ball deflect at a broader or sharper (depending on the side of the stick hit) angle than the true tangent to the collision normal. Etc.

I think that the most important difficulty of that animation is to get the diagonal deceleration straight, in the sense that the path does not curve. The decelerating balls should be realistic enough to learn how to animate that. Not realistic to the point of taking all the frictions and damping factors into account. That is better left to physics simulators.


I am not sure what I am doing wrong, but when I download the base file I can’t separate the 2 balls when I go to key them in. no matter where I grab the ball and key it one ball will move on top of the other. I am sure it is user error, I am useing blender 2.45, is that the problem?

Delete all the current IPO curves on the two balls first.

I did that. Please see below: I then go to make my first key and both ball come together…

Sorry about that. When I made the template, both balls share IPO curves. Very annoying.
See the little “2” in the header of the IPO window, next to the bold “X”? Click on it, make the IPO single user, then the balls will stay where you put them. It might also be a good idea to name the IPO something other than “Objipo” and “Objipo.001” like “red ball” and “white ball” to keep them straight.

[edit]My mistake, btw, was in duplicating the red ball, rather than going into object mode and adding another ball. The duplicate stays attached to the original IPO datablock unless you make it single user, which I forgot to do. Oops.[/edit]