Custom Animation doesn't work for Stride Warping, but Retargeted Lyra anims work fine?

I’m having an issue where my custom animations with root motion don’t seem to work for stride warping, but retargeted Lyra animations, to the same character skeleton as the one I made for my custom animation, work fine. My animations have all the same settings as the retargeted Lyra ones so it’s a bit hard to understand why stride warping isn’t changing the feet bone positions. Ik bones are moving fine in my custom animation and root motion is working properly too.

I have it where 3 directions of walking is the retargeted Lyra anims and 1 direction is my custom animation and stride warping works, but when it changes to the custom anim stride warping stops actually working correctly. It shows debug that stride warping is on for the custom anim but doesn’t actually change the stride. Is there anything that I might’ve missed with my custom animSequence?

Any help would be really appreciated, been stuck on this for the past few days…



Debugging the stride warping anim node code I saw that the RootMotionTransformDelta value for my custom animation was close to 0 while the retargerted animations’ value was at least over 1. So it seems my root motion was either not properly sent from blender or was messed up by unreal on import. I’m not sure which though or how to tell which it is

Were you able to figure this out? I’m importing animations from blender using ARP and noticing that my stride warping is still sliding. The IK bones moves in debug mode, but the adjustments just move up and down at the center of the character. When I add a LegIK node at 2 limbs it also locks the feet in place and is just sliding across the floor

What I found was that if the rootmotion animation (RootMotionTransformDelta) is too slow, it actually doesn’t do anything. There’s a speed threshold for the rootmotion and if its smaller than the actual game movespeed then it won’t change the stride at all. So you may need to lower your in-game movespeed.

You can calculate the approximate rootmotion speed by finding how far the distance was and then dividing by seconds. Unreal uses cm/s so take the meters of the distance in blender and divide by 100 then divide by seconds. That’s the rootmotion speed and would be the approximate exact speed needed, if you lower it then you can see the stride actually changing. Or at least you should see it changing.

Otherwise you can use Distance Matching to make up for it, like they did in Lyra where they use “Set Playrate to Match Speed” node in Update Cycle Anim function in ItemLayers AnimBp. They have it clamped though so to make sure you see it working, you can set the Play Rate Clamp to 0,0 for testing.

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.