I’ve been working on a procedural animation system for the past 6 months, and I thought it has reached a point where it’s nice enough to make a video showing the progress in it.
The basic approach is to create a series of (custom, not Urho3D) IK components for the legs and arms. A controller can then take info about the change in position and angle and character state (jumping, etc.) to decide a position for the hands and feet. The basic shape of the stride is an ellipse, and on top of that I have implemented foot-planting (only on the right foot at present to compare the two). Adding in a few more parameters, like some swaying and/or height-change based on where we are at in the stride (left foot extended, crossing, right extended, etc.) and some swaying based on the character’s acceleration results in a rather decent looking animation based on only a few parameters.
This allows for quick animation of a character with a similar bone hierarchy to another, in contrast to (my experience, at least) 3D modeling/animation software like Blender, where animations are typically key-frame based, so adjusting something like the stride length between two similar characters becomes a much more involved and time-consuming process than just editing a number. As I’m working on a project that will have 100+ models with a variety of skeletal structures, and it’s just my brother and I doing all the modeling and animation, a quick way to get decent animations was necessary.
The basis for the project was initially attempting to implement Wolfire’s Procedural Animation in Urho. However, their approach did not satisfy me, as they still required a number of poses to be created by hand for the characters (particularly when attacks are added in). It certainly seems more efficient than creating a series of animations by hand, but most of the poses that would be required could still be created (at least for an initial attempt) with a bit of programming and IK components. But at that point, I saw little reason to finish implementing their approach in blending (with fancier curves than just LERP/SLERP) rather than just using the IK for the actual animation.
Later on I’ll come back and provide more updates on the project, and maybe add something like a features list and/or road map.