Lesson 6 - Handling Angles When Rigging
Lesson 5 showed how to handle a simple rigging job, but in reality, models are rarely that simple. Most rigging tasks require the object mesh be altered slightly so that it can be properly rigged.
Identifying The Steps Needed
Before proceeding with this rigging job, take a moment to identify the steps that will need to happen. In the big picture, we want to be able to rotate the rudder around the axis shown by the red line. To accomplish this, we will need to follow the procedure below:
- Move Object center onto axis of rotation
- Orient the object mesh so it aligns with a global axis
- Zero-out object rotations
- Assign a parent empty
- Move the rudder back into its original position.
Moving The Object Center
If the object center is not on the axis of rotation for an animated component, things will not look right in YSFlight. In the particular situation with the rudder, there is no convenient vertex that we can use to snap the cursor to. Instead we will select two vertices and automatically move the selection point right in between the two. From this selection we can snap the cursor and then select "Center Cursor" in the button window (on the left side of the "mesh" sub-window). NOTE: you will need to be in Object Mode for this to work.
I find that when putting object centers in locations like this, that it is helpful to put in a vertex. There are many ways you can accomplish this, including duplicating a random vertex and moving it to the cursor using Snap To Cursor.
Local View or A Different Layer
When working on rigging an object, I like to work in the Local View in order to reduce the clutter on-screen. An alternative to this, as there are some issues with working in the local view, is to move everything you are working on into a different layer. De-cluttering the screen is especially important when dealing with mesh objects that need to be adjusted during the rigging process.
REMEMBER! Before moving the mesh you wish to animate, put in a temporary object (like an empty) at it's object center in order to keep it's proper position for later.
To move an object (or objects) to another layer, you can use the following procedure:
- Select the object(s)
- Press the "m" key.
- Press a keyboard (not number pad) number 1 thru 9, or select a layer from the popup menu shown to the right.
You can see the layer information in the bottom of the 3D view window, as shown on the right side of the image above. Each small square represents a layer. If there is an even smaller cube inside it, then there are objects in that layer. If the square is dark (like the top left small square).
You can view layers by doing the following things:
- Press a keyboard (not number pad) 1 thru 9 key.
- Click on the layer square you want to view
You can toggle the view of multiple layers on and off by:
- Hold SHIFT and press the keyboard 1 thru 9 keys of the layers you want to view.
- Hold SHIFT and click on the layer square(s) you want to view together.
- Press the ` button just under the ESC key on your keyboard to view all layers.
Orient Object With Global Axes
This process is very important and can become quite complicated, especially later on. Building good practices now will help you later on.
Move Object To New Layer & Center at Global Center
Leave a temporary empty at the current object's position and then move the object to a new layer that doesn't have any other mesh in it. I like to use layer 3 for my temporary working layer. Move the object to the center of the model space (x=0, y=0, z=0). The easiest way is to snap the cursor to the center and then snap the object to the cursor.
In OBJECT MODE, rotate the component so the planned axis of rotation (green line) lines up with a global axis (red line).
You will need to zoom in very closely to the object along the global axis in order to make the axis of rotation line up as close as possible with the global axis.
BEFORE PROCEEDING TO THE NEXT STEP!!!!!!!!
Make sure you write down, the rotation you made to the object. Failure to do so will result in issues with the animation.
This next step is the single most important part of the rigging process for objects that need to be rotated into alignment with a global axis.
Zero-out Object Rotations
Make sure you have written down or otherwise recorded the rotation you made in the previous section. Once you have done that, make sure you are in Object Mode and then press CTRL + a. This will bring up the Apply Object menu as shown below. Select Scale and Rotation to ObData. What this does is take any rotation and scaling you have applied to the object (as seen in the Transform Properties window) and move the mesh such that the model does not physically change location, but now the transformations are zeroed out and are now hard-applied to the mesh.
Assigning a Parent Empty
While this is not 100 percent necessary in absolutely every situation, more often than not it is necessary to assign a mesh to a parent object if you plan on animating the mesh. Therefore it is best to get in the practice of using empties earlier rather than later.
First, snap your cursor to the origin which should by now be the object center of the rudder. To do this hold SHIFT + c.
Second, press the space bar and select Add > Empty.
Once you have inserted the empty, de-select all objects. This ensures that when creating a parent-child relationship, that the proper order is established.
Creating A Parent-Child Relationship
Once you have inserted the empty, it is time to establish the parent-child relationships between the mesh object and the empty.
- Select the mesh (future child object)
- Select the empty (future parent object)
- Press CTRL + p and select "Make Parent"
Once you have created the parent-child relationship, you can verify it by looking at the transform properties window of the child object. Note that in the top right corner, the parent object's name will appear.
For more information about Parent-Child relationships in Blender, review Lesson 2!
Move Rigged Mesh Back Into Position
Now that you have completed the parent-child relationship, it is time to re-position the rudder back where it was originally. You can perform the following two steps in any order.
- Rotate the parent empty object by the opposite angle of the rotation you wrote down earlier. If you wrote down 27.5 degrees, rotate -27.5 degrees. If you rotated -30 degrees, now rotate the empty by 30 degrees. This should now align the rudder mesh to what it looked like before any rotations were made a few steps back.
- Snap the empty to the position marker that you left before moving the rudder prior to rigging.
Before You Finish
Congratulations, you are almost done. Before you finish you work rigging this component, I suggest naming your mesh and empty objects in a system that will make sense later. Personally I name my mesh objects after what they are. In this example I have named the rudder mesh "rudder" and the empty that is it's parent "rudder_empty". You can rename an object by selecting it in Object Mode and then opening the Transform Properties Window and editing the name shown in the OB: box at the top left of the Transform Properties Window. Note that there is a character limit, so short hand notation like "LMG" for Left Main Gear, or "Left_Rudder_E" for the left rudder's empty may be useful to make. You will find that if you try to enter a name that is too long, the name will be truncated.
Now that you know how to rig a mesh that needs a rotation about 1 axis, practice by rigging the left and right ailerons in the provided model! When you are ready, proceed on to Lesson 7, where we will go over some differences that come up when rigging objects that need 2-axis rotations to properly setup.