
An introduction to the course content and an overview of the process. Download the project file from the Resources section of this video to begin.
A quick overview of some troubleshooting tips which may come in handy. When ready, download the project file from the course resources of the previous lecture. Remember to save often. ControlRig can crash unexpectedly. Create backups of what you are working on. And remember to close and re-open your ControlRig class if things are acting weird, particularly when dealing with Arrays.
Make the control rig actually manipulate the skeleton by offsetting a bone with get transform and set transform nodes, using an add node to modify translation.
Create a foot names array in the control rig blueprint to drive the full body IK, listing each leg end such as front, middle, and back ends.
Loop through foot names once during construction to save each foot's world space transform. Store these transforms in the World Final Foot Transforms array for use before the forward solve.
Explore how the full body IK node solves character pose by targeting multiple target points with minimal moves, bending limbs and adjusting the body to reach all target points.
Collapse the selected nodes into a new function called set full-body IK, then compile and save. Access and open the function from the functions list or via the rig graph.
Convert world space transforms to rig space before feeding the full body IK solver to ensure feet align during simulation. Understand the difference between world space and rig space.
Calculate velocity by comparing the previous and current frame, then divide distance by delta time to obtain units per second, guiding feet placement during animation.
this lecture demonstrates smoothing the calculated velocity in Unreal Engine 5 control rig by using a spring interpolate node to blend the current value toward the target each frame.
create a master cycle timer that loops from 0 to 1 to drive leg movement, and adjusts cycle speed to synchronize per-leg offsets for organic, staggered swing and lock/unlock behavior.
Create a calculate cycle function to track the character's cycle using a cycle percent that increments by delta time and wraps with modular math to stay between 0 and 1.
Create a foot locked boolean array in a control rig for Unreal Engine 5, align it with world final foot transforms, default to unlocked, then lock as feet move.
Define swing percent to control the foot's swing phase in the master cycle, then unlock the foot when cycle percent falls below swing percent and update the foot locked array.
Explore inverse logic for foot locking in a control rig, using master circle percent and swing percent to lock or unlock the foot and update the foot locked array.
Keep the foot in swing phase when unlocked by updating the world transform from the input pose so it follows the actor instead of locking.
Create a float array called foot timing offsets with six values to offset each foot swing. Compile and apply offsets in move feet transforms to move feet out of sync.
Create and populate a per foot cycle percent array from foot timing offsets, then compute each foot’s cycle by adding master cycle percent with its offset and wrapping at one.
Predict foot landings by offsetting current foot translation with calculated velocity, converting rig-space predictions to world space, and refining to reduce jitter.
Scale prediction time in the control rig by calculating remaining cycle percentage from the foot's swing progress, convert to seconds, and adjust velocity to anticipate landings.
Demonstrate precise interpolation from the world locked foot to its predicted position using swing percent and foot cycle percent, with clamped, smooth t values and lift to create an arc.
Implement an arc foot lift by evaluating a custom curve and offsetting the foot's Z translation during swing, updating the move feet transforms in the control rig.
Demonstrate aligning the feet to the floor by using a line trace from above the foot to below ground to inform the predicted foot transform.
Implement two advanced sphere traces in control rig for Unreal Engine 5 to refine foot placement, selecting the best hit from above-to-foot and foot-to-below traces.
Port animation system to a four-legged monster by copying the scorpion control rig to its skeletal mesh, update foot names and timing offsets, and adjust settings for Unreal Engine 5.
Adjust swing percent and foot timing in the four legged monster control rig, using velocity-based curves and remapping z height to achieve smoother, faster, and synchronized leg movement.
Practice moving a ue5 mannequin with control rigs, comparing full body IK and basic IK, adding hand and foot effectors, and testing controls for transforms.
Learn full body IK settings and interpolating control targets in Unreal Engine 5, adjusting clavicle rotational stiffness with bond settings and using spring interpolate on translation for natural lag.
Compare the basic IK node with full body IK for a simple three-bone arm, set up an effector and hand control, and tune the primary and secondary axes.
Automatically compute the pole vector using the compute pole vector node, connecting it before the basic arc node to preserve elbow direction while moving the hand without manual pole adjustments.
Use the M node in control rig to point the head bone toward a target, aligning the primary y axis and a secondary x axis for upright orientation.
Learn to aim a character rig by weighting spine bonds and the head toward a target, using time offset and spring interpolation for smooth, delayed motion across spans.
Apply a control rig in unreal engine 5 to simulate breathing by subtly scaling the chest bone with a curve-driven, non-propagating transform, creating lifelike secondary motion.
Create a reusable function inside a control rig and publish it for use by other control rigs. Compile and set it to public to share across skeletal meshes.
Create a rotate around point function in control rig to rotate a bone in rig space about a point using quaternion multiplication, with transform, point, and rotation inputs.
Learn how to rotate a bone around a chosen point in Unreal Engine 5 by computing difference vector, rotating it, and adding the offset back for a translation-aware control rig.
Create a public rotate bone in place function that rotates a specified bone in rig space by a rotation amount. It uses set transform and keeps translation unchanged.
Build a procedural turning-in-place control rig that auto adjusts legs one at a time as the character rotates, using a turn-in-place character and control rig workflow in Unreal.
Learn to build a turning system in Unreal Engine 5 using Control Rig to accumulate and offset rotation, keeping the character facing the aim while undoing rotation input.
Negate the character's rotation in Unreal Engine 5 by inverting the accumulated rotation on the root bone using a rotate in place function, ensuring the world rotation remains constant.
Update for 5.4: "Item Chain" is now replaced with "Get Chain". Functionally the same but with some extra options.
Use a full body IK to rotate the feet from their locked positions, with pelvis and foot effectors, controlled by a 0-to-1 timeline that compensates rotation beyond a 20-degree threshold.
Learn how the control rig compensates rotation offsets by accumulating and subtracting rotation, snapping back when thresholds are exceeded, and testing end-of-timeline behavior in Unreal Engine 5.
Visualize and refine full-body IK corrections by rotating the pelvis and feet using rotate around point, blending rotations over a 0 to 1 timeline to prevent snapping.
Explore control rig timing in Unreal Engine 5 by offsetting foot rotation with curved timeline alpha, duplicating nodes, and staggering foot movements for natural pelvis translation and in-place rotation.
Tune the full body IK node to reduce head and pelvis wobble, adjust mass multiplier and iterations, and develop pelvis-driven weight transfer to the moving feet.
Shift the pelvis between the left and right thighs using a full-body IK and an interpolate transform node, driven by a timeline curve controlling the T value.
In this course you will learn to use Control Rig in Unreal Engine 5, with a focus on creating procedural animation systems.
This course is suitable for complete beginners, all the way through to professional animators and experienced game developers. It begins very slowly with detailed explanations and instructions to take you through creating procedural animation systems, which gives us a chance to explore and become familiar with various features of Control Rig.
After creating a procedural walk system, we take a general look at some useful features of Control Rig, and experiment with systems that allow you to create characters that interact with the environment and move realistically.
And finally we will create a procedural turn in place animation system, including troubleshooting, tweaking, and working through the logic step by step.
The project file includes the completed versions of everything we create for Unreal Engine 5.2 and 5.3. This will be updated to include a 5.4 version when that version of the engine releases.
The techniques and methods explored are suitable for single player and multiplayer projects. The techniques used within Control Rig are also suitable for UEFN. This applies to the fully procedural sections and the specific functionalities we explore inside of Control Rig (at the time of writing animBP access is not available in UEFN, preventing a combination with keyframed animation - but the majority of the concepts will still work).
This information in this course is not available elsewhere, and is the result of many years of experimentation with Control Rig and procedural animation systems. My goal was to condense all of my experience with Control Rig into an easily digestible and understandable course, with explanations and diagrams at every step, so that you can learn a full mastery of how to use Control Rig for your own procedural and dynamic animations.
I look forward to seeing you on the course, and for you to share your creations and ideas. I'm always available for a discussion of concepts/ideas/help with any project, even if your specific use-case isn't covered directly in this course.