I’ve been creating a souls-like in the style of Elden Ring and I can’t get the combat feel okay. I want to recreate the feel when swinging your weapon, hitting an enemy and slaying an enemy. No code is necessary, I can do that myself.
It’s mostly in the animations. Your dummy reacts to being hit a bit slow. You might decide a frame ahead of the sword’s motion if there will be a hit or not, so that the dummy reacts on the hit frame and the sword feels like it’s got mass that shoved the dummy. Or you can adjust the sword swing speed at the moment of impact to make it feel like it’s not going through air. Or you might slow time itself briefly at the moment of impact.
Don’t overlook just how important sound is to “selling” an animation, either. A sword feels heavy if there’s a low-pitched swoosh. A sword feels light if there’s a high-pitched swoosh. A sword feels like it connects when there’s a bone-crunching thud.
Yes, I know about the sound FX part of the feel, I’m working on that. I could possibly try and slow the sword impact, yes, however the hit detection system is based on triggers and colliders, and thus it would be impossible to deduce a collision without ditiching this system and going for a raycast/spherecast physics hit system, however, due to that, a number of bugs would arise from the implementation, so its not very likely that I will implement it.
This. Elden Ring’s gameplay is tied directly to the animations. At various points in an animation different sections of the player and enemy collision detection change state or are disabled to create the required behavior. You can see it in action with this short video.
Interesting, really. However, I do not see how this pertains relevance to the matter at hand (the feel of hitting an enemy and swinging a weapon); however - it is still something I should implement. Thank you!
I have tried all of them, however most ended up worsening the feel of the combat. I realised screenshake breaks the flow of the steady movement, and the “follow-through” principles caused weird issues with camera movement that I couldn’t fix.