Lesson 2 - Parent-Child Relationships
Parent-child relationships are critical to unlocking the potential of YSFlight animations. Without this property, most animations would be impossible.
What Are Parent-Child Relationships?
When making complex models, especially animated models, having a series of parent-child relationships (I like to call this a family tree) helps organize and control the various pieces of the model.
Child objects look to a parent object for global position, rotation and scaling information. If the parent object changes states in one of these ways, then the child object is dragged along for the ride. This does not mean, however, that child objects cannot move independently. In fact it is this property that makes the relationship between parent and child objects so powerful. While the parent object moves about, the child object can move independently as long as it references the parent object for all of the global information.
Parent objects have at least one child object. These parent objects may be themselves children of another object. The only limitation on parent objects is that it cannot be the child of one of its children, thus creating a circular parent-child family tree.
Here we can see that the while cube is the parent object. When it moves or rotates it drags the purple child object along. When the purple child object is rotated or moved, the parent object does not change in any way.
Note the dashed line between the two objects. In Blender this indicates the relationship between the objects.
Defining Parent-Child Relationships
In Blender it is fairly straight forward to create the parent-child relationship. Simply select the desired child object(s) and then finally select the desired parent object. Hold CTRL + P and select Make Parent. Once the relationship is established, more child objects can be added to a parent object by selecting only the new children objects and then the parent object.
Removing a Parent-Child Relationship
Removing a parent-child relationship is a bit more complicated than creating one. Select your parent object and press ALT + P which will open the menu shown below.
- The first option just clears the relationship and does not cleanly transfer the parent's transformations to the child object. Thus if this option is selected the child object typically jumps around a bunch.
- The second option is a much cleaner version of the first. Here the transformations are kept and applied to the child objects so there shouldn't be any jumping around.
- This option is perhaps the most interesting from a Blender point of view but not something that we deal with. You can find more information on the Blender Wiki
Identifying Parent-Child Relationships
There are three main places to view parent child relationships:
- The 3D view window as noted above with the dashed line between object centers. The main downside of this is that you cannot determine the parent or child object just by looking.
- The Transform Properties window (press N when the mouse hovers over the 3D view window) will show if an object has a Parent and if so what the name of the parent object is.
- The Outliner window will show child objects under the line item for the parent object.
The top right box shows the name of the parent object.
No Parent object name means this object does not have a parent.
The outliner window shows that Cube.001 is a child to Cube.
How We Use Parent-Child Relationships
There are two ways we use parent-child relationships in YSFlight modeling. The first is to establish visibility order when dealing with transparencies. The second is between animated components. Often times when dealing with animated components, each part has an Empty object as it's parent. If you import any .DNM model with animations and look at layer 6, you will find all these empties. They look like mini-coordinate systems because that is what they functionally are. Using these in our animations helps eliminate many errors that creep in without their assistance.
Empties for animated components. Note the large bundle on the left side. When making complex animations many empties will be required.
While fairly simple to define, parent-child relationships are powerful tools that we use to define more complex animations for reasons which will be clearer later on. For now, try importing several .dnm files into blender and look for parent-child relationships between objects.