Distance Matching Locomotion : Giving it a shot!

For me it looks much better in jogging, sprinting and leaning, but i hate these non-animated hands in both packs.

Yep, but it’s not hard to fix :slight_smile:

Hey what axis you extracting the distance curve from? btw Is looking really good so far

For distance and speed, you don’t need to know anything about the axis. All you need is to save the root bone location at start and calculate the distance between start location and location at the current frame and add this distance with the current frame time into a curve.

P.S.: This works only if you retrieving root bone location from animations with root motion! Only foot sync markers can be done without root motion.

Here is an update video for what I have been working on. Not perfect but getting there. Was more of a pain then I thought to get pivots and 45 degree starts and stoos working.

Working on start animations

Looking good chief ! @

Update:

  • Starting movement on any angle
  • Some issue with legs jittering (will be fixed with foot sync markers)
  • Blending issue when moved forward-right on the angle between 45 and 90 degrees (I think the problem in animations because it’s working for movement on any other angle or/and direction)

needs more polishing…

SpeedWarping Graph Node testing.

Still sliding around a lot. I would wager that the math for the placement it is very slightly off. And/OR something isn’t right with the animation, meaning the pelvis should be shifting towards (or opposite?) the direction based on speed as well in order to give the appearance of the feet planting.

You can easily blame the animation for this, after-all you always get a better result from using a slow walk animation and transitioning it to a faster pace…

Thank You for feedback. I’m pretty sure, my calculations for gettting speed are wrong.

This whole thread made me consider doing a plugin with a bunch of physic and statistic equations solver, from dynamic to fluid sim, i can even implement some quantum physic models, wondering if there’s an interest for that.

If you want to share this knowledge - of course, YES! Anyway, I think it will be useful for many people who don’t know how to do this or who wants to save time.

I think the community would benefit more from a tutorial series on ā€œhowā€ and mostly ā€œwhyā€ rather than a source of copy/paste instructions or a module you just add in.
At least from 90% of the forum posts show that people aren’t even aware that you need to know physics in order to use physics… ā€œwhat? I need to put in all that work?ā€ The answer is, yes. Yes you do.

https://twitter.com/KennethClaasse2/status/1298559885257318400?s=20](https://twitter.com/KennethClaasse2/status/1298559885257318400?s=20)

Three times YES! ;d

Hey, everyone! I’m loving all the shared knowledge I’m finding on this thread. I was hoping someone on here could point me in the right direction with regard to issues I’m having. I’m currently using speed warping and orientation warping, but I’m stuck as to how to properly transition between left/right motion and forward/backward motion without weird foot floating and foot sliding. (I’m not yet tackling other transitions, as I know I’ll need some sort of start/stop anims, which I don’t currently have.)

Here is a video showing my issue: https://youtube.com/watch?v=15elNZ381bc
You’ll notice I’m in the ALSv4 project. For the sake of testing, I’m using the ALSv4 AnimBP, but I’m using my own AnimGraph with the speed and orientation warping nodes.

I don’t expect anyone to solve my problem, but any hints are appreciated.

I think your problem with foot sliding is different speed of animations. You should apply different values for speed warping for each type of animation. You can extract speed from root motion animations and create speed curves for ā€œIn Placeā€ animations. As additions you should apply foot locking for completely removing foot sliding.

In my Orientation Warping node, there is a parameter called ā€œRotation Interpolation Alphaā€. It is a Lerp from previous Orientation to new one. If you make that value higher, Rotation reacts faster and there will be less foot sliding during turning. This issue you are having looks very similar. Also you can change the ā€œBase Speedā€ of Speed Warping node dynamically by using the Root Motion Speed curve as mentioned. This will also help for less foot sliding in general. To, get the speed curve from root motion animation there is a Root Motion Extractor plugin from Yaki Studios or you can do it yourself with Animation Modifiers.

Thanks for the feedback, . I created a curve inside each animation that has a constant value reflecting the speed of the animation. But I didn’t use a tool to do so. I merely kept testing different speed to see which speed allowed the default animation to move without slide. I downloaded Root Motion Extractor when it was free, so I don’t know why I didn’t consider using that tool. Another thing I didn’t do is blend the speed curve values from one animation to the next when animations change. I’m not exactly sure how to go about doing that, but it doesn’t seem overly difficult. I’ll work on figuring that out.

I also need to figure out foot locking. I’ve never created foot locking before, so I’m not familiar with its implementation. I know ALSv4 has that characteristic, so I will try to interpret Caleb’s setup and adjust it to fit my needs. Any suggestions on this are welcome.

I actually purchased the Strider plugin before I had even heard of your warping node plugins, but Strider has a similar function regarding interpolation, though it’s called Smoothing. I don’t want rotation to be too jumpy though, but finding a value that isn’t too fast or too slow is a bit challenging. I’m sure there is a better way to approach this issue, but I don’t know what it is yet.
As for speed warping, since I’m using the Strider nodes rather than yours, I need to input a Stride Scale, but the idea is the same. I will now use the Root Motion Extractor. I don’t know why I didn’t consider that approach before.