The video below shows two clips; one from a game called Gunz 2 and then a clip from my own work in progress. In the first Gunz 2 clip, the dashing has a certain “smoothness” to it that I want to replicate in my own movements. When spam dashing and changing direction at the same time, the dash changes direction with you without fail. My rolling in my game, though, if spammed, will lock up and stop changing direction.
My question is what approach/method do you think they use to achieve this smooth dashing? Should I be using root motion animations? Launching character? Some other method? Looking for insight is all. Thank you.
I’m not sure how that could be done in UE4 ( haven’t gotten to animation portion of it), but that pretty much looks like run of the mill root motion with tweaks to me.
//running
When character is running in some direction, it could be root-motion controlled, though that is not necessary.
If it is root motion controller, then when player changes direction of movement, in addition to root motion character there’s extra non-root-motion rotation applied to the character. Rotation speed is high enough to turn him 180 degrees in 0.25 seconds.
//sliding
The trick with sliding animation in the first game is that they don’t wait for it to end. You start spamming animation, they just transition to (or blend into) the next animation clip even if character is in the middle of the move. In your game animation plays till it reaches the end of the clip.
You actually won’t be able to replicate that effect in your game, because your character rolls, and their character slides. Their character’s “sliding” stance is highly similar to running stance, jumping stance, so you can quickly blend between each of those and it will be pretty much seamless.
However if you start belnding into jumping stance in the middle of your rolling animation, that will be immediately noticeable, because stances are too different and in the middle of the roll character will be pretty much upside down. So during transition animation system would twist your character in very unnatural way, and players will see that.
Thanks for taking the time to assess the video and respond. So in other words you’re saying you think they’re using a root motion animation for the “dash”, not any type of character launching. And you say they are simply blending the animations together. Does this mean a blendspace? or do you mean the animations are just so similar that it blends together on its own? Also, about the changing direction thing, you’re saying in their game it doesn’t wait for the animation to end. So I just have to find a way to override the animation if new input is given past a certain point.
Just to clarify, I understand that my roll is different from their sliding/dashing, but I want to create my own dash as well. Basically, once I understand the method I need to use, I will create all my own animations that will blend together seamlessly, if that’s what this calls for.
Frankly, they could use pretty much anything, but root motion dash would be easier (IMO). When you are not using root motion for movement, character may end up moving in quake3 style, and that can be quite hard to fix.
I can’t answer that, because I’ve recently transitioned from unity and haven’t yet worked with animation system in detail and will only acquire necessary info in a few days.
“blended” means that for the duration of transition between animations they’re playing both new (newAnim) and old animation clips(oldAnim) and interpolate character’s pose. At the beginning of transition oldAnim has interpolation factor of 1.0 and newAnim has interpolation factor of 0.0, at the end it is other way around.
When controller is playing one clip and some external condition requires it to transfer to next clip, it can start transitioning immediately, or it can wait for the clip to end playing first. During transitions animtion from the old and new clips are blended together.
The difference between your controller and the first video is that they don’t wait till the end of current animation clip when they start transition, and your character waits till clip ends before playing next animation.
AFAIK Unreal 4 engine should have similar mechanism.
No, I definitely do not mean that.
Not “override”, but “start transitioning”. If you abruptly override animation it will be noticeable.
After reading the unreal docs for a while, it seems that what I need to do is create “state machines” which will help me transition and blend animations together.