As an animator, one of the most important exercises you can do is the ball bounce. It teaches you many different vital principles. However, when it comes to rigging, it's also a great place to begin your learning, teaching you some of the basic rigging principles and techniques. While, you certainly could use a simple polygon sphere to animate a ball bounce, creating your own ball bounce rig does two things: 1. Gets you comfortable with rigging, and 2. As an animator knowing how to rig, even if its just on a very basic level can do nothing but good for you. You'll also have your very own ball rig that you can use in any of your animation exercises, as well as implement your own custom controls, such as squash and stretch.
In this 5-step article you'll learn some of the techniques for creating a custom ball rig with an emphasis on cartoon-like controls. We'll go through the process for setting up a very basic squash and stretch control so you can begin animating some interesting shots. While you certainly can use a basic polygon sphere to set up this rig, you can download the basketball model that's used in this article to build your rig off of.
Download the Basketball Model
Step 1: Creating the Main Control
The first step is creating the main movement control, this is the control where you'll do all of the ball's movement from, rotation, translation, etc. You'll also be able to scale the basketball up or down to size it properly for your scene.
For this we're going to use the EP Curve tool to create the curve object. You can make this as complex or as simple as you'd like. You want to make sure to go into the options for the EP Curve tool and change the curve degree from 3 Cubic to 1 Linear. For this we're going to create a shape with four arrows pointing in all different directions, so it's obvious to anyone animating that this is the main movement control.
You can go to the top view in Maya, and hold "X" to snap along the grid points and use the grid as your guide to create the arrow shapes with the CV curve tool. We've also changed the color of the control to red. You can do this by selecting the control and in the attribute editor choosing Display>Drawing Overrides>Enable Overrides and choose red, or any color you like.
Step 2: Parenting the Main Control
Once you have the shape you want for the main control you can snap it into position. Either hold down "X" to snap it along the grid, or hold down "V" to snap it along the vertex, as long as you get it positioned in the middle of the ball, that's all that counts. You can scale the arrow up or down depending on the size that you created.
Once it's in position make sure you freeze the transformations on the curve, so go to Modify>Freeze Transformations. This will zero out all of the attributes in the channel box. You'll also want to do it to the basketball, just in case you made any changes to it previously. You can also name the control, for this it has been named to "Main_Ctrl" to keep it simple.
Now select the basketball ball, and shift select the Main_Ctrl and press "P" on your keyboard. This will apply a Parent constraint. If you select the control the ball should move along with it.
Step 3: Creating Squash and Stretch Controls
So for this, we're going to take a very simple approach for creating a squash and stretch control. There are many different ways you could go about creating this, but using a set-driven key is one of the easiest methods.
The first thing you'll need to do is create another control curve. For this we created a sphere, set the divisions down to 4, and used the EP Curve tool and snapped along each vertex point on the sphere, creating a shell.
Once you've done that, move it into position under the sphere and freeze the transformations.
The next step is to add another attribute onto the squash and stretch control you just created. So in the Channel Box go to Edit>Add Attribute and create a new attribute with the name Squash Stretch, and put the minimum value to -10, the maximum to 10 and the default to 0. This means that at a value of 10 the ball is at the fullest stretch, at -10 it's at the fullest squash and then 0 means the ball is at its default position. Select "OK".
Step 4: Creating the Set Driven Key
So now that you have the control curve created you need to setup the set driven key so that when we change the value of the squash and stretch control the ball will actually squash and stretch. However, we're going to have four separate squash and stretch controls, one for each side of the basketball.
The reason for this is so that when you rotate the ball during an animation it will squash and stretch from the correct pivot point. Which means you'll need four separate pivot point positions at each side of the ball. To do this, go into the outliner, and select the basketball geometry and press Ctrl+G four times, this will create four separate groups for this basketball geometry, each one will act as a different pivot point. I've named each group Squash_Pivot_01, Squash_Pivot_02, etc. So if you select the Squash_Pivot_01 group you'll see that the pivot point is placed at the bottom of the basketball. This is want you want, because the ball needs to scale from this position.
Once you have the groups created, go to Animate>Set Driven Key>Set...> You should see that the Squash_Pivot_01 group is set into the Driven. If it is not, select the group inside the Outliner and select Load Driven. You want to highlight the Scale X, Y and Z attributes, and then select the squash and stretch control, and select Load Driver. Now select Key.
Change the Squash Stretch value in the attribute editor to a value of 10. Now select the Squash_Pivot_01 group and scale the basketball up. Creating the stretch then select "Key" in the Set Driven Key options.
If you select the squash and stretch control and move the value back to 0, you should see the ball move to its default position. The last thing you need to do is create the squash. So change the squash and stretch value to -10, select the Squash_Pivot_01 group and this time scale the basketball to where it's squashed on the ground. Now select "Key" in the Set Driven Key options.
There you go! If you select the squash and stretch control you can adjust the values to either stretch the basketball out or squash it.
Step 5: Creating the Other Squash and Stretch Controls
Select the Squash_Stretch_01 control. (Your's may be different depending on what you named it) and press Ctrl+D to duplicate it, and move it to the side of the basketball and go to Modify>Freeze Transformations. You're going to repeat the same process you just went through, this time you'll select the Squash_Pivot_02 group. To change the pivot point press the "Insert" key on your keyboard and move the pivot point like in the image above.
Open the Set Driven Key options and plug the Squash_Pivot_02 group into the Driven, and like before, make sure you have the Scale X, Y and Z attributes highlighted. Now select the new squash and control you just duplicated and load that into the driver, with the Squash Stretch attribute highlighted. Press "Key" to lock a keyframe in this default position.
Change the Squash Stretch attribute to 10, select the Squash_Pivot_02 group and scale the ball into the stretch position like before. If you want to make sure that it squashes and stretches the exact same as before, write down the values you had for the first one, and apply them here. The only thing you'll want to keep in mind is that since the pivot point is moved to the side of the ball, scaling the ball up isn't done in the same axis, for this it's done in the Z axis. So the Y and Z values will need to be swapped.
Repeat the same process for the squash values, changing the squash and stretch attribute to -10, squashing the ball and selecting "Key" in the Set Driven Key options.
Now that you know the process for copying the squash and stretch control and moving the pivot point to correspond with where the squash and stretch control is located, repeat the same process for the other two squash and stretch controls. Make sure you're freezing the transformations when you get each control in position.
The final step is to parent the squash and stretch controls to the main movement control. That way when you move the main control, the squash and stretch will follow along. To do this Select the squash and stretch control, shift select the main control and press P. Repeat this for the other three controls. The colors for the squash and stretch controls have also been changed to yellow. You can see an example animation used with the ball rig below:
Now you have a great ball rig you can use for any of your animations. Be sure to check out the Fundamentals of Animation series where we use this same ball rig we just created throughout the series. If you want to download the completed ball rig click this link: Final_Ball_Rig