Automatic mapping of walk animations based on velocity

I watched a CGI video today, which shown a glimpse of how the author animated their character. It wasn’t in Blender, and one of the things I saw was a very useful feature. I’m not sure if Blender has it, and I’d like to know if there’s any way to achieve the same here.

I’ll start with the standard way of animating moving characters in Blender, which is how I (and IIRC most people) do it: You create a walk animation for the armature, copy-pasting keyframes to repeat it over the duration of the walk. Then you key in the position and rotation the character starts from, the ones it ends at, as well as intermediate ones along the way. If you’re lucky, animation matches the walk speed and the feet never slide off the ground.

Now this is what I seen, which I think is a dozen times better: The author only had to key the positions of the character, that’s it. Leg animation as well as the character’s rotation were automatically handled. At first I was confused, but easily understood how this must be: The armature has a walk animation, but it’s automatically mapped based on the character’s velocity. So no matter how fast or slow it walks at any moment, the legs will always move correctly, making sure the character never slides. Rotation is pretty obvious… you just make the character face the way it’s going.

How can we have the same in Blender? Is there a way to make an armature action automatically loop, animation speed based on how fast the character is moving at each moment? As an even better addition, can you pin different armature actions to different speed ranges and have them blend (so walk and run animations automatically come in place where needed)? Further more, what if we could assign armature actions based on acceleration and deceleration too? That way we could also automate the character pushing forward to gain speed, or backward to brake while trying to stop after running. Obviously, such actions should only act as modifiers, so other movement can still be animated on the timeline as usual.

If the feature exists, shame on me for not knowing. If not, it would be fantastic and I really hope the Blender team can consider it! An artist can leave permanent walk / run / accelerate / decelerate animations in their model, and when they make an animated film they only have to keyframe specific movements, without needing to touch the walk cycle and waste time adapting it again.

No thoughts on this in a week? Surely someone must know if the feature exists or not. I can live without it, but would sure love to see it added to Blender at some point. Perhaps someone has made an addon for the time being?

Someone wrote a script for blender a while back called walk’o’matic or something.
I remember it people talking about updated it.

Its very possible to generate automated walking.
It would be nice have such a feature implemented as an addon, if it hasnt already.

Thinking better about the animations I plan to do with Blender, I realize I need this more than I expected. Primarily when I have a character walking a long way: In some areas I’d want them to walk faster or slower, at other points I’d want them to stop, while at other points I might want them to slowly move to the side for instance. Not to mention the blending of the position between keyframes, when a straight vector curve isn’t used… walk animation speed should adapt to that too. Doing it manually would be painful and a lot of used time.

I haven’t tried Walk-o-matic yet, but it doesn’t seem to do what I’m expecting. It apparently animates bones with a script rather than adjusting the playback of an armature action, while I’ll want to use my own animations.

There’s one method that might work natively, but I’m not sure if NLA tracks behave this way: If the character is walking on a path, and the Evaluation Time of the path is keyed in. Couldn’t I automatically convert those keyframes into keys for the animation speed? Or share the keyes between both, if I can put them on the same NLA track.

Sadly, Blender offers little solutions to this problem out of the box :frowning: I’d like to be able to bring this up to the developers.

‘Sadly, Blender offers little solutions to this problem out of the box I’d like to be able to bring this up to the developers.’

Scripts like these are very useful, having one with blender would be a good start.
Scripts like these require research if people want them to be improved, because they can become very advanced.

I can only suggest people review them, document them, highlight problems, propose new features.
Then if a coder wants to improve them, this gives them reference they require.
A wiki page is usually a good place to write such material, the pages can have sub pages, which are easier to manage.

Automated Walking

  • Scripts
    – a
    – b
    – c
  • Tutorials
    – How to use a.
  • Code Documents
    – The ui code.
    – Data structures.
  • Problems
    – This dont work properly.
  • Idears
    – Different types of walking.
    – Side stepping.

These kind of things are long term projects, that only work if people are interested, and willing to add material.

I havnt used the scripts myself, so i dont know what they are capable of.
But if you do get a problem, and you post it with a working example file, people may be able to help.
This saves people having to download the script, and having to set it up to emulate the problem.

There was a method built into Blender that does much of what you have mentioned here but it was dropped after 2.49. It utilized a stride (offset) bone built into the rig, a “stride” path, and the NLA editor. I tested it once back then and found it a bit of a pain to set up but it worked pretty well. Walking or rolling, on a path in 3D (up and down hills etc), and NLA so speed adjustable as well.

http://wiki.blender.org/index.php/Doc:2.4/Tutorials/Animation/Armatures/NLA_Editor_and_Stride_Path
http://wiki.blender.org/index.php/Doc:2.4/Manual/Animation/Techs/Armatures/Stride

Edit: Here’s 2.49b if you want to check it out. Good luck finding your way around old Blender UI tho. Yikes!

-LP

I also posted my question over here if anyone’s interested. I know the developers have a lot on their plate, but I’d really like to bring this feature up to them. It would likely help a lot of people, and get a lot of work off the animator.

I can add a page to wiki.blender if you like.
Then people can add stuff there.

Sure, I think that would be nice. This is a feature that attention should be brought to IMO.

Ive added Automatic walking to this page. http://wiki.blender.org/index.php/Dev:Ref/Requests/Animation2.6
So people can add material to it.

I think you are seriously misdirecting your effort. If your animation plans include characters walking, stopping, running, etc, for significant amounts of time, you are planning on making boring animations.

Let me give an example: Sintel. Blender Foundation project, top notch animation.

It’s the story of a girl’s journey to rescue her dragon, so you’d think a road trip story would have a lot of use for your automatic walk/run cycle, right? But in the first six minutes, there are maybe 20 seconds where such a gizmo might be useful: 8 seconds of an extreme long shot where Sintel is trudging through the snow, but the camera gets close enough to show she is walking, four paces (about two seconds) of her feet running along a road as she leaves her city, and 10 seconds or so of background characters walking as Sintel does something in the foreground.

Now, Sintel is a very active girl. She runs through alleyways, climbs walls, jumps over obstacles, runs up temple steps, runs through jungles, slogs up mountainsides and across desert sand dunes… In fact, the only time she isn’t running around like a madwoman she is asleep, unconscious, or playing with her pet baby dragon, which is probably why she loved him so much. And talking to the Shaman, who seems to have a calming effect on her.

But in almost all the cases where she is moving her feet, the action is custom made for the situation.

She dodges around bystanders while running through the streets. She steps across an alley and then climbs up a wall. She dodges or jumps over debris and swings around corners as she climbs to the roof of the temple. She leaps over obstacles and dodges around vegetation as she runs through the bamboo jungle. Her pace as she walks away from her battle on the mountain becomes slower and more unstable until she collapses in the snow.

So, you are proposing to take a lot of developer time to create and perfect something that might be useful for very few seconds in a good animation, and could easily be replaced by using a pose library with some standard walk cycle poses. I think that if it is developed, it will be overused and result in a lot of truly awful animation.

‘So, you are proposing to take a lot of developer time to create and perfect something that might be useful for very few seconds in a good animation,’
The page is only there for if people want improve or develop new tools.
Its up to a developer if they want to improve something or not.
Having a page on wiki.blender doesnt mean someone is going to code, its just reference for if they want to.

Thanks. You might want to add the description HERE to that page, as it lists the features I thought about in detail.

Otherwise, I don’t plan to make boring animations that are only about walking. But walking is probably the most common thing that happens together with all other actions. If only those other actions could be focused on, and walking was handled automatically as the object moves, things would be quite easier.

I think such a system of automatic walking, running, strifing etc. with added sliders for character mass, age, stamina, injuries etc. would be amazing for the BGE - or even as a base for baking character animation to touch up later on and export to other game engines. People keep forgetting that it’s not only films and still renders that are made with Blender… and games have significantly more “running time” on screen then films

The difference here is that it could also work ingame in the BGE, so there’d be proper inverse kinematics for step height, differences in movement on slopes etc.

On a side note I’ve yet to figure out how in the BGE to have my characters feet have inverse kinematics while walking so their feet don’t sink in the ground…

If you check out the Sintel DVD, Lee Salvemini goes through a method where he animated a birds flight path, using a single flight cycle and animating the speed of its expression

Here it is