Hi, I’m trying to replicate moves like Stinger(Dante) or Calibur(Nero) but I haven’t managed to find a good way to keep the inertia after the move is over with varying frame rates. The following are what I’ve tried:
-
Animations with root motion: Creates animations that don’t vary with frame rate, but don’t give the sense of momentum
-
Animations without root motion, but Position is moved with tick which decays with time: Creates animations with momentum after the move ends, but depending on frame rate, can travel different distances
-
Animations without root motion, but with Velocity: Motion decays weirdly with time, especially when transitioning from ground to air (Stinger off a ledge)
Any advice would be much appreciated. Thanks! 
Having checked out the references you mentioned, I don’t see much variance from standard animation montages and root motion. Some possibilities as to why you see it differently may be:
-
Camera shake and zooming – cinematic effect
-
Camera lag – this gives the false impression that the character is moving so fast that the eye (viewer) needs time to catch up
-
While in the air, the character naturally engages with inertia and gravity.
-
Finely tuned root motion data – starting with a sudden burst and ending gradually
-
Cloth physics and secondary movement – once again to convey the character’s speed
I could be wrong, however, as you’ve likely spent more time observing your references.
One other possibility would be the ‘Add Impulse’ node–this could be used to supplement movement a bit beyond the range of root motion. Though, you would need your animations to accommodate the latent movement to avoid sliding while in an idle animation.
Lastly, there’s physical animation; but this might be more trouble than it’s worth.
Just my thoughts.
I strongly suggest you to check the GAS Apply Root Motion nodes, since there are quite a bit of data that you can set, especially regarding velocity after the combo has ended.
Go with 2.
Then use the root bone animation curve to drive the momentum speed.
You negate frame lag effects by applying tick correctly to your code. Howeber obviously since the root motion is part of the animation it has to be affected by frame rate.
You either need to make the character always be in a “fly” state when you perform these moves, or you always have him be in a walking state and you prevent the capsule from leaving the floor (because floor applies drag to the simulation).
You can use whatever suits you, from launch character to add impulse - or you can manually position the character based on the root motion curve and a time line. Let’s be honest, the engine does a p*ss poor job at simulation, so placing manually has a much better appeal for a proper end result, but it comes with loads of work to make it right…