3
$\begingroup$

Usually walk cycles are symmetric which allow the first leg that moved forward to go backwards to its original position when the other leg starts to move, that creates the 'walk in place' effect.

I'm trying to create a non symmetric walk cycle, in which you always advance with one leg and close the gap with the other leg.

I'm not sure how to create a proper loop for the cycle, a loop the keeps the character in place so the following cycle will sync to the previous one.

You can see the issue here: https://www.youtube.com/watch?v=l5MYRZSlG1s

How do I prevent the sliding back after a step issue?

$\endgroup$
3
$\begingroup$

First, create a 6 step animation of your character moving forward. Don't move or keyframe the root bone for the moment, keyframe all the other ones. The fifth pose needs to be the same as the first one, except a step forward of course. The sixth pose is a duplication of the fifth so that your character makes a pause like in your animation. Don't forget to choose interpolation > linear.

enter image description here

Now animate the root bone only: Keyframe it at frame 1 as it is, then at the last frame make it go backward so that all the other bones are at the exact same position as at the first frame.

enter image description here

In the Dope Sheet switch Dope Sheet to Action Editor. Save your animation, push it down into the NLA. In the NLA, repeat the strip several times. Make the whole armature move from point A to B, make sure again that the interpolation is linear, move the second keyframe (or move the point B position) so that the speed of the armature in the scene synchronizes with the speed of the walk cycle (or play with the strip scale in the NLA N panel). You can also use a Follow Path to make the armature move, same thing you'll have to synchronize the speeds.

enter image description here

$\endgroup$
  • $\begingroup$ Thanks for the detailed answer, im cant get it to work. the flow is, frames 1,2,3,4,5 move the body forward with the step animation while moving the root bone backwards? frame 6 is the same as the original frame 5, meaning body fully forward and root bone at frame 6 is in it's original position (as frame 1) ? why would that do the trick? $\endgroup$ – aviran Jun 30 '20 at 18:21
  • $\begingroup$ look at the screenshots, you need to make the body move forwards except the root, the root doesn't move for the moment, you'll make it move later, and frame 6 is just a copy paste of 5 so that it makes a pause in his movement as you wanted him to do. I've edited, I hope it's more understandable $\endgroup$ – moonboots Jun 30 '20 at 18:59
  • $\begingroup$ Thanks, I've accepted the answer since I can see it's correct, it works fine within blender's animation domain. My actuall goal is a walk animation for a game, where the character is not advanced by the animation itself, the character should walk/move in place. I will give a few more tries and ask a new question if i cant get it to work. $\endgroup$ – aviran Jun 30 '20 at 22:34
  • $\begingroup$ he moves in place, it's only in the last part that I explain how to make him move in the 3D scene, it's exactly like a walk cycle except, as you asked, one of the legs goes forward, then the second one catches up. Yes if you don't understand something please ask. $\endgroup$ – moonboots Jul 1 '20 at 1:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.