Unity 3D game engine comes with procedural animation features.
Procedural animation is a type of computer animation, used to automatically generate animation in real-time to allow for a more diverse series of actions than could otherwise be created using predefined animations.
The Unity learn area comes with a full course and project files.
You can read the full article on the Unity blog, and see the video tutorial: