In this lesson, you will learn how to configure rig hierarchies and space switching to give your characters the flexibility to interact with props and their own body parts dynamically.
Understanding Rig Hierarchy
At its core, a Rig Hierarchy defines the parent-child relationships between your Control Rig's nodes. When you move a parent control, all its children follow. However, sometimes you need a control to break this "family" tie to follow something else. This is where Space Switching comes in—it allows a control to change its "parent" reference at runtime.
Implementing Space Switching
Imagine your character is holding a sword. While the character is idling, you want the sword's control to follow the Hand_Control. But what if the character throws the sword into the air, or places it into a scabbard on their back? If the sword stays parented to the hand, it will look glued to the palm.
By using a Parent Constraint node within your Control Rig, you can tell the engine to drive the transform of the sword based on a different target. You create a "Switch" (usually an Enum or a Boolean variable) that tells the constraint which bone or control to look at as its parent.
In the Control Rig graph, you might set it up like this:
// Logic for Space Switching
if (SpaceSwitchEnum == 0) {
ParentConstraint(Child: Sword_Ctrl, Parent: Hand_Ctrl);
} else {
ParentConstraint(Child: Sword_Ctrl, Parent: Spine_Ctrl);
}
Why This Matters
Without space switching, your character would be locked into a single hierarchy defined at the start of the project. By dynamically shifting the parent, you can seamlessly transition a control from following the "World" (for stationary items) to "Hand" (for carrying) to "Spine" (for holstered items) without creating complex, separate animation sequences. This keeps your animation workflow clean and highly responsive to gameplay interactions.
Key Takeaway: Space switching transforms your character’s rig from a static tree into a fluid, modular system that can parent controls to different targets on the fly, enabling complex interactions like picking up objects or switching between animation reference points.