We may earn an affiliate commission when you visit our partners.
Lincoln Margison

In this course you will learn how to create a fully procedural walk/run animation system for characters, entirely within Unreal Engine 5.1+ This system will allow you to control every aspect of the characters walk and run style, with manual control over every bone, using custom logic and variables inside Control Rig (which allows for very good performance, allowing it to be used on many characters at once).With a fully procedural animation system, your characters will fit within their environment and adapt their movement based on the surroundings. Whether the character is walking, running or anywhere in between, standing with one foot on a ledge, walking across stepping stones, running up a ramp backwards whilst spinning in circles, or any other situation your character may find themselves in.

Read more

In this course you will learn how to create a fully procedural walk/run animation system for characters, entirely within Unreal Engine 5.1+ This system will allow you to control every aspect of the characters walk and run style, with manual control over every bone, using custom logic and variables inside Control Rig (which allows for very good performance, allowing it to be used on many characters at once).With a fully procedural animation system, your characters will fit within their environment and adapt their movement based on the surroundings. Whether the character is walking, running or anywhere in between, standing with one foot on a ledge, walking across stepping stones, running up a ramp backwards whilst spinning in circles, or any other situation your character may find themselves in.

To create this level of interaction with traditional static animations, you would need to create hundreds if not thousands of walk cycle variations and a complex system to blend between different animations at the appropriate times. Then if you'd like to make a tweak, such as to change the character's walk style or speed, you would have to start all over again.Instead, with a procedural system, we figure out the logic that dictates how a human actually walks: where they place their feet, how their speed influences their stride time, how they swing their hips and spine to accommodate for their leg movements; to create an intelligent system that mimics how a human (or any character) would walk.After you've created the system (which is included as a download for use or reference), you can adapt it to any character you may want in the future. For example, you may create a heavier & stronger character for your game, perhaps a robot / mech / monster, and instead of spending hours creating walk cycles to figure out how he should move, you simply tweak a few numbers in the procedural system to see how the character looks when he stamps his feet whilst walking, or takes longer strides, or swings his arms like a madman.

We don't rely on any major inbuilt functions within the engine, and so the same concepts and techniques can apply to any form of procedural animation. For example, after completing the course, you may want to take what you've learnt about creating procedural human animations and use the same concepts to make a procedural swimming animation for a shark. Or procedural weapon recoil controlled by the strength of the gun. Or a parkour climbing system. In theory, anything that can be animated can be animated procedurally. Is it always beneficial? No. But procedural animation is the best solution for any animations which need to be adaptive and change based on the environment, user input, or gameplay events. The best part is, everything we create in this course runs as a single node in the animation blueprint, allowing you to blend it with regular animations, or any input pose for the character.

This is not a course where I simply tell you what buttons to press. Every single step is explained, and the thought process behind decisions about what to do next is discussed, so you will always have an idea of why we're doing each step. We routinely take a look at what we have created so far to analyse it for further improvements.

The information and ideas in this course are not available anywhere else, trust me; I have looked, as all of the solutions are a result of 7 years of experimentation with procedural animation. This method of animation isn't being done to this degree by any game developers yet, only basic hybrid IK systems, and I strongly believe it will be the primary form of character animation in the next few years.I have set up a Discord server where you can directly ask me any questions, or see the results of other students of the course. If there are any areas that you don't understand or need further explanations, I'll be happy to help, and look forward to seeing your results.

Enroll now

What's inside

Learning objectives

  • The fundamentals of procedural animation
  • How to create a fully procedural walk and run cycle
  • How to analyse and incrementally improve your animations
  • How to create custom functionality within control rig
  • How to control every element of your animation through logic and variables
  • How to use ik for realistic foot placement
  • How to predict player footsteps based on the environment
  • How to seamlessly blend between different angles of movement
  • How to create a dynamic cycle-time that adapts to different speeds
  • How to create a natural and smooth human animation system
  • How to create a system which can be modified for various styles of character movement
  • Show more
  • Show less

Syllabus

Initial setup
Getting started
Creating your first 'procedural animation'
Basic leg IK
Read more

At the end of this video, it is EXPECTED that the box position WONT match where the right foot is. And each time you compile, the foot will move further and further away. We fix this issue shortly by adding a 'RESET' foot array at the very start of the Construction Event. But feel free to add it now if it will help.

Note: If you do not end up with two boxes being drawn, make sure that you have "Recursive" ticked on the Get Children node.

If it still doesn't work, and you've followed all steps correctly but are getting a "Item not valid" warning, delete the "contains" nodes and the "AND" node, and recreate them. There may be some bug with control rig causing this but recreating them has fixed it with someone who had the issue. 

IK both legs in a loop
Prevent multiple copies of each foot being added to the array

Note: If you follow this part and test the trace, the box I test it on in the level is higher than in the project file. So you may not see the effect in your version. So you can test it by moving that box higher up and you should begin to see the knees bending if the trace is working.

Collapse to functions

Towards the end of this video, I modified the Z offset inside the OffsetPelvis function, to be -10 on Z axis.

If you find your character is floating in the viewport, you can set this value to -10. But if the character is floating it also isn't a problem, and won't cause issues later, it's just a visual thing of where the floor is in the preview window.

Foot rotation

If you notice your character is floating in the viewport, refer to the previous videos description. You want to set the Z offset inside the OffsetPelvis function to be -10. This wasn't shown (cut accidentally in editing) and won't impact things down the line, but will display the debug drawings in the 'wrong' place and can cause confusion.

Foot platform traces
Foot platform rotation offset
Calculate foot platform forward offset
Rotate foot bone around foot platform
Calculate ball rotation point offset
Calculate tip rotation point offset
Calculate heel rotation point offset
Rotate foot around ball
Heel point fix
Unrotate ball/tip
Rotate around tip of the toes
Rotate around heel
Velocity, cycles, and leg movement
Create a calculate velocity function

Note: when calculating the velocities, ensure these variables are regular variables, and NOT local variables. Local variables cannot be accessed outside of the function, and will disappear after the function is used. So it wouldn't be possible to use the previous world transform because it would reset to 0 every time. So make sure you use regular variables :)

Convert to rig space velocity
Locked feet locations array
Calculate world delta movement
Create calculate foot targets function
Basic time cycle
Foot locked bool array
Calculate foot targets lerp (linear interpolation)
Lock the feet
Shift the locked feet based on the world's movement
Unlock the locked feet
Predict foot landing spot (basic)
Stride length
Set the feet cycles to be out of sync
Floating foot fix and stride length improvements
Predict character movement for foot traces
Basic foot spline
Dynamic cycle time
Swing time as a percentage
Foot landing spot prediction improvement
Minimum stride time
Velocity based spline diagram
Advanced foot spline
Minimum cycle time and Z lift tweaks
Swing time tweaks

The "Space" used by the clamp node should be set to the Thigh location. This part was missed in the video edit, at around 4:03.

By setting the 'space' the clamp uses, it sets it to limit it based on the distance from that 'space' input. So in our case, it sets the maximum distance to be a distance from the thigh bones. If nothing is plugged into that, it will limit it around 0,0,0 (location and rotation) which is not correct.

Pelvis and spine control
Pelvis motion initial setup
Pelvis sin cycle
Pelvis up/down offset
Pelvis bob based on speed
Pelvis left/right swing
Shoulder swing compensation
Neck rotation
Save foot platform outputs for later
Pelvis offset diagram
Calculate target pelvis rotation
Save and visualize movement angle offset
Offset the landing spot foot angle
Rotate IK pole vector
Rotate pelvis to match foot rotation average
Head rotation fix
Foot separation
Smoothing and rotation limits
Reduce rotation offset
Snapping issues
Creating vector lerp (linear interpolate) function
Velocity smoothing
Movement angle offset smoothing
Sideways movement foot rotations
Locked foot rotation limits
Relax midair foot
Leg intersection problem
Basic foot avoidance
Dynamic stride length
Arm motion
Arm motion setup
Arm IK
Arm swing
Arm swing sync
Arm swing based on speed
Swing angle offset
Reduce arm swing running backwards
Arm swing sync improvements
Shoulder bobbing
Tweaks, fixes and improvements
Foot twist fix
Leaning
Arm lift tweaks
Pelvis tilt
Pelvis tilt overcompensation
IK clamp fix
Feet lagging improvements
Extra smoothed velocity

Save this course

Save Procedural animation for humans in Unreal Engine 5 to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Procedural animation for humans in Unreal Engine 5 with these activities:
Review Inverse Kinematics (IK) Fundamentals
Reinforce your understanding of Inverse Kinematics, a core concept used for realistic foot placement in the procedural animation system.
Browse courses on Inverse Kinematics
Show steps
  • Review the basic principles of IK.
  • Practice implementing simple IK solvers.
  • Experiment with different IK constraints.
Read 'Character Art in 3D'
Gain insights into character design principles to create more visually appealing and believable procedural animations.
Show steps
  • Review the chapters on character anatomy and design.
  • Analyze the examples of well-designed characters.
  • Apply the principles to your character models.
Read 'Game Anim: Foundations of Good Animation'
Gain a deeper understanding of animation principles to enhance the quality and realism of your procedural animations.
View Game Anim on Amazon
Show steps
  • Read the chapters on timing and spacing.
  • Study the examples of good and bad animation.
  • Apply the principles to your procedural system.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Follow Advanced Control Rig Tutorials
Deepen your understanding of Control Rig by exploring advanced tutorials, enabling you to create more complex and customized procedural animation systems.
Show steps
  • Search for tutorials on advanced Control Rig techniques.
  • Follow the tutorials step-by-step.
  • Experiment with the techniques in your own projects.
Experiment with Foot Placement on Uneven Terrain
Extend the course project by implementing foot placement adaptation for uneven terrain, building upon the IK and foot prediction techniques learned.
Show steps
  • Modify the foot trace system to detect terrain normals.
  • Adjust foot rotation based on terrain slope.
  • Implement IK adjustments for foot height.
  • Test the system on various terrain types.
Create a Showcase Video of Your Procedural Animation System
Solidify your understanding by creating a video demonstrating the capabilities of your procedural animation system, highlighting its adaptability and realism.
Show steps
  • Record footage of your character in various scenarios.
  • Edit the footage to showcase key features.
  • Add narration explaining the system's functionality.
  • Share the video online and gather feedback.
Contribute to an Open-Source Animation Project
Enhance your skills and collaborate with others by contributing to an open-source animation project, applying your knowledge of procedural animation and Control Rig.
Show steps
  • Find an open-source animation project on GitHub.
  • Identify areas where you can contribute.
  • Submit your contributions and participate in discussions.

Career center

Learners who complete Procedural animation for humans in Unreal Engine 5 will develop knowledge and skills that may be useful to these careers:
Technical Animator
A technical animator bridges the gap between artists and programmers, implementing animation systems in game engines. This course on procedural animation in Unreal Engine 5 is directly relevant, because technical animators often work with procedural animation systems to create dynamic and realistic character movements. By learning how to create a procedural walk/run animation system using Control Rig, you can gain practical experience in a core skill of a technical animator. The course's focus on analyzing animations for improvements and adapting the system to different character styles directly translates into the responsibilities of a technical animator, making this course highly applicable to the role.
Animation Engineer
An animation engineer focuses on the technical aspects of character animation, developing tools and systems to improve the animation pipeline. This course directly aligns with the responsibilities of an animation engineer because it teaches the creation of a fully procedural animation system within Unreal Engine 5. Mastering Control Rig, as taught in the course, is invaluable for an animation engineer aiming to optimize animation performance and flexibility. Furthermore, understanding the logic behind human movement and being able to translate that into an intelligent system, as emphasized in the course, enables the animation engineer to create more realistic and adaptive character animations. The course may be useful for those who want to be animation engineers.
Animator
Animators create movement and visual effects for various media, and procedural animation is becoming increasingly valuable. This course may be useful because animators can learn the fundamentals of procedural animation. The course teaches how to create a fully procedural walk and run cycle, analyze and incrementally improve animations, and control every element through logic and variables. With traditional static animations, it would be thousands of variations and a complex system to blend between them at the appropriate times. This course is efficient and helps animators everywhere.
Game Developer
Game developers are responsible for building all aspects of a game, and animation is of course a key piece of the puzzle. This course may be useful because it shows the creation of a fully procedural walk/run animation system in Unreal Engine 5.1+. This allows for control of character movement, with manual control over every bone, using custom logic and variables inside Control Rig. This allows characters to adapt their movement based on their surroundings. Game developers may be use this course to expand their skills.
Character Rigger
Character riggers create the underlying skeletal structure and control systems that allow animators to bring characters to life. This course is helpful for character riggers interested in expanding their skillset to include procedural animation techniques. Learning how to use Control Rig within Unreal Engine 5, as taught in the course, provides a powerful toolset for creating dynamic and adaptable rigs. The course teaches how to control every element of animation through logic and variables. This is a highly sought after skill for character riggers. A character rigger may be interested in this course.
Virtual Reality Developer
Virtual reality developers create immersive experiences, and realistic character movement is crucial for believable interactions. This course may be useful for VR developers looking to implement procedural animation in their projects. The techniques taught in the course, such as predicting player footsteps and seamlessly blending movement angles, directly contribute to a more immersive VR experience. Furthermore, the course's emphasis on adapting character movement based on the environment is particularly relevant in VR, where users can interact with the world in unpredictable ways. A virtual reality developer may be interested in this course.
Motion Graphics Designer
Motion graphics designers create animated visuals for various media. While not always focused on character animation, the principles of procedural animation covered in this course may be useful for creating dynamic and automated motion graphics elements. The course teaches how to control animation through logic and variables, which can be applied to automate complex animations in motion graphics. Furthermore, the course's focus on analyzing and improving animations can benefit motion graphics designers seeking to refine their work. Although not always relevant, a motion graphics designer may find this useful.
Simulation Engineer
Simulation engineers create software to simulate real-world systems, including human movement. This course may be useful for simulation engineers interested in incorporating realistic and adaptive character animation into their simulations. The course teaches how to create a system that mimics how a human walks, adapting to the environment and user input. Furthermore, the course's focus on using IK for realistic foot placement and creating a dynamic cycle-time aligns with the needs of simulation engineers. Although not always relevant, a simulation engineer may find this interesting.
Artificial Intelligence Programmer
Artificial intelligence programmers develop algorithms that allow characters to behave intelligently within a game or simulation. This course may be useful for AI programmers who want to integrate procedural animation into their AI systems. The course teaches how to create a system that adapts character movement based on the environment and user input, which can be used to create more believable and responsive AI characters. Furthermore, the course's focus on predicting player footsteps and creating a dynamic cycle-time can enhance AI movement. Although not always relevant, an AI programmer may find this interesting.
Robotics Engineer
Robotics engineers design and build robots, often requiring complex animation and movement controls. This course may be useful for robotics engineers who need to create realistic and adaptable movement patterns for their robots. The skills may not translate directly, but it provides a foundation for understanding how to create a procedural system. It teaches the logic behind human movement, adapting to the environment and user input.
Software Developer
Software developers work on a variety of software, and this course may be useful for those who focus on animation. The course teaches how to create a fully procedural system within Unreal Engine 5.1+. This system will allow for control of character movements, with manual control over every bone, using logic and variables inside the control rig, and adapting to the character's surroundings. It is possible that a software developer will learn skills that are useful to their career.
Machine Learning Engineer
Machine learning engineers develop algorithms that allow machines to enhance learned behavior. This course may be useful for Machine Learning Engineers who want to integrate animation into their systems. The course teaches how to create a framework that allows character movement based on the environment and user input, which can be used to create new behaviors. The course's focus on predicting player footsteps can enhance machine learning movement. Although not always relevant, a machine learning engineer may find this interesting.
Physics Programmer
The physics programmer is responsible for creating realistic physical simulations within a virtual environment. Although this course primarily focuses on the art of smooth animation, knowledge of its contents may give a physics programmer some insight into character movement. These programmers have the ability to create realistic physical simulations, which helps characters seem like they are in realistic environments.
Multimedia Artist
Multimedia artists use various technologies to create art, and this course may be useful if they focus on animation or game design. The course teaches how to create a system within Unreal Engine 5.1+. This allows manual control over every bone, using custom logic and variables inside Control Rig, and adapting to the character's surroundings. It is possible that a Multimedia artist will learn skills that are useful to their career.
Web Developer
Web developers create websites and applications, and this course may be useful for those who focus on animation. The course teaches how to create a procedural system within Unreal Engine 5.1+. This system helps give control over character movement, with manual control over every bone, using logic and variables inside Control Rig, and adapting to the character's surroundings. It is possible that a web developer will learn skills that are useful to their career.

Reading list

We've selected two books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Procedural animation for humans in Unreal Engine 5.
Provides a solid foundation in animation principles, which are crucial for creating believable and engaging procedural animations. It covers topics like timing, spacing, and weight, which can be applied to refine the procedural walk/run cycle. While not specific to procedural animation, it offers valuable insights into creating high-quality animations in general. This book is more valuable as additional reading than as a current reference.
Covers the fundamentals of character design and creation in 3D, which can be helpful for understanding the artistic considerations behind character animation. While not directly related to procedural animation techniques, it provides context for creating visually appealing and believable characters. This book is more valuable as additional reading than it is as a current reference.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser