I’ve been reading into root motion but it seems difficult to control the character’s positional movement during the animation. What I mean by that is in most tutorials, they suggest using the Add Impulse or Launch Character nodes, but what I want is to allow for different speeds during the same attack animation. Attacks like these can be seen in the Dark Souls series. Also, here is a video showcasing attack animations/weapon models for sale that does exactly what I’m wondering about in UE4. During each of these attacks, the position of the player’s character translates with the attack. Any help would be appreciated. Thank you!
If you want different speeds you can randomise in a range the ammount of “launchiness” or impulse that you want to add in the desired direction to your player.
In case you want something in a more manual basis (custom acceleration, and velocity all clamped) - You might want to look at simple physics formulas and implement them yourself on the character tick (usually this kind of movement would go on the Character Movement Component but, since we don’t have such a possibility on BP’s, doing it on the Character would be okay.) This is one example of a physics based movement that you could implement. It basically sets a velocity over a time based on an acceleration, then you could use the “AddActorLocalOffset” node to set your actor on “yourdesiredmovement” delta movement.
while(true) {
mydesiredmovement = (velocity + (1 * (acceleration * DeltaTime))) * DeltaTime;
velocity = clamp(mydesiredmovement/DeltaTime, 0, maxvelocity);
}
At the end of every tick you would calculate the velocity for the next tick to apply it, and you would only make these calculations when needed. If you do it generic enough, you could use these movement calculations for other gameplay mechanics.
Here it is a pretty good talk about how to manage this type of movement for your games: Data-Driven Character Movement | Live Training | Unreal Engine Livestream - YouTube