NLA walk/hop-cycle along path/curve

You’ll need to jump through some hoops to get a re-usable NLA-hop cycle that also follows a path/curve.
test

Expand to see method...
Why not just use the *follow-path* constraint?

You can, but if you change the path, you will get slippage and you’ll most likely have to re-key everything… It’s a hassle. Wish the follow-path constraint had an “absolute offset” measured in Blender units. That would fix this issue, but Blender doesn’t have that yet…

The solution (Thanks to Wiresoul Studio)

See this video for an overview of a solution to this issue which uses the curve modifier and parent-to-vertices. It also explains why the follow-path constraint doesn’t play nicely with the NLA editor.

Really hope this solution will be obsolete soon and that Blender gets some-or-other follow-path constraint update to ease animating walk-cycles.

Extending the solution for a non-constant speed hop-cycle

The YT solution above works great for a constant-speed walk cycle but the following additions were required to make it work for a hop-cycle.

First made a hop action for the path-following-triangle that the cube is parented to…
image
…which is a single step-and-shuffle of the X and Z positions (arbitrarily choosing a 20-frame cycle and a 2-unit step) which resulted in the following NLA clip settings:
image
Note this clip starts at frame 0. This is very important to get a 20-frame cycle.

Then made a driver for the path-following-triangle’s X-position (Using X+ as my deform axis) to generate a step-function with #floor(frame/20)*2. Meaning, step by 2 every 20 frames.
image
which then got converted to keyframes with 3D ViewPort->Object->Animation->Bake Action.

After deleting the rotation and scale keyframes you should be left with this:
image
… you then need the add blend type on your new step action:
image

The rest should be similar to the solution vid.

The downside to this method is that you can’t arbitrarily scale the hop-speed in the NLA editor - everything will go wacky and you’ll need to start over with your hop and step actions or create different actions for different hop speeds, but it is a massive improvement over trying to use the follow-path constraint in its current state.

Hope that helps someone.

6 Likes

Thanks that helps a lot. I now know not to make any one legged characters! :rofl:

Or not to try animation. Not an area I have got into at all, confirming my feeling to know my limitations.

Yeah, it seems like a big hassle initially, but you do get something reusable that doesn’t care about your curve length… which is not a obvious puzzle to solve with current state of Blender.
test2
Also, just to reiterate the point made in the YT video that your curve/path object should always have (0,0,0) origin or this will not work as expected (i.e. only make changes in Edit-Mode ).
image
like here you can see the 2nd curve still has its origin at (0,0,0)

3 Likes

Thank you for this!

Privacy & Terms