I'm not as desperately in need of help with animations anymore as I was when I created the thread, describing my ''solutions'' in this quote, but leaving the thread open for reasons explained in the end of this quote
Yay figured out 2 new things which allow me to cheat my way out of the problems using scripting, so I should be able to get a functional and actually useful version of dodging out without the help of an animator.
The first thing I'm doing is intentionally putting a short delay on when the sprint button is pressed and when a dodge animation is played (controls which I'm currently going for is that pressing the sprint button while moving sideways or backwards will make you dodge, since the sprint button didn't do anything anyway in those circumstances). This may sound weird at first, but it allows me to pretty much fix the first 2 issues in the OP both at once
During this short delay, the player will probably still have his sideways movement or backwards movement buttons pressed (at least I did while playtesting, it's just intuitive to keep those buttons pressed). During the delay, I speed up the player's movement, and because he still has the button pressed, he'll run much faster in the correct direction during this delay. It's a very short delay and once it's over, the actual dodge animation plays. The result is that the player covers more distance (first a quick burst of sped up movement) and when he presses the button he immediately moves faster, which is then followed by the slower dodge animation, so the slow part of the entire dodge is now moved to the end of the action, which means that the player already moved away a bit and the dodge actually was useful.
It doesn't even look bad in game really; the player speeds up for a few quick steps, and then makes the dodge animation which looks kind of like a movement made to keep his balance after the sudden burst of extra speed. Obviously it doesn't look 100% perfect, but it doesn't look horrible either and at least it's functional and useful.
A second trick I've found is that forcing the player to play a ''SprintStop'' animation actually cancels the dodge animation. Initially I tried this because there would sometimes be a bug where dodging in first person mode would make the player sprint afterwards, so to fix that bug I made the player stop sprinting again. However, since this thing cancels the dodge animation, using proper timing I can decide when I want to cut off the dodge animation, so now there won't be a long ending to the dodge animation where the player can't do a thing, but instead he'll quickly regain control of his character again.
I think if I'm not too busy (with new year's day and all) I should be able to get an initial release tomorrow.
I'll leave this thread open still because all I've done is work around the problems, they're not entirely fixed. I'm not desparate for help anymore, but in case anyone else still reads the thread and is interested in properly fixing the animations, I'm obviously still interested in trying that out and seeing if it's an improvement over my current ''solutions''
The first thing I'm doing is intentionally putting a short delay on when the sprint button is pressed and when a dodge animation is played (controls which I'm currently going for is that pressing the sprint button while moving sideways or backwards will make you dodge, since the sprint button didn't do anything anyway in those circumstances). This may sound weird at first, but it allows me to pretty much fix the first 2 issues in the OP both at once
During this short delay, the player will probably still have his sideways movement or backwards movement buttons pressed (at least I did while playtesting, it's just intuitive to keep those buttons pressed). During the delay, I speed up the player's movement, and because he still has the button pressed, he'll run much faster in the correct direction during this delay. It's a very short delay and once it's over, the actual dodge animation plays. The result is that the player covers more distance (first a quick burst of sped up movement) and when he presses the button he immediately moves faster, which is then followed by the slower dodge animation, so the slow part of the entire dodge is now moved to the end of the action, which means that the player already moved away a bit and the dodge actually was useful.
It doesn't even look bad in game really; the player speeds up for a few quick steps, and then makes the dodge animation which looks kind of like a movement made to keep his balance after the sudden burst of extra speed. Obviously it doesn't look 100% perfect, but it doesn't look horrible either and at least it's functional and useful.
A second trick I've found is that forcing the player to play a ''SprintStop'' animation actually cancels the dodge animation. Initially I tried this because there would sometimes be a bug where dodging in first person mode would make the player sprint afterwards, so to fix that bug I made the player stop sprinting again. However, since this thing cancels the dodge animation, using proper timing I can decide when I want to cut off the dodge animation, so now there won't be a long ending to the dodge animation where the player can't do a thing, but instead he'll quickly regain control of his character again.
I think if I'm not too busy (with new year's day and all) I should be able to get an initial release tomorrow.
I'll leave this thread open still because all I've done is work around the problems, they're not entirely fixed. I'm not desparate for help anymore, but in case anyone else still reads the thread and is interested in properly fixing the animations, I'm obviously still interested in trying that out and seeing if it's an improvement over my current ''solutions''
So, I've been working on something which especially users of my Deadly Combat mod have been requesting for a long time, which is a dodge mod. The idea is pretty much identical to the TK Dodge mod already available on skyrimnexus here: http://skyrim.nexusmods.com/mods/20923/
but there are 2 reasons I'm doing it all over anyway: the first is that for mods which I regard highly essential to my skyrim gameplay I like to be fully in control of how they work so I can add onto them if I like. The second reason is that TK Dodge requires Script Dragon, and instead I'm making a version using SKSE.
But I'm not making this thread to discuss this mod project anyway, so let's get to the point: I could REALLY well use the help of an animator to tweak the animations used in this mod a bit. So far everything is working rather well, but I'm running into some similar ''issues'' which the author of TK Dodge also ran into, which are the following:
( 1 ) The dodge animations used (they are vanilla animations, come packed with vanilla skyrim, but are completely unused in the base game) cover very little distance, especially the leftwards dodge. This means that even though the animation looks kind of cool and all, it's not particularly useful in combat. It would be nice if someone could tweak the animations to cover a bit more distance.
( 2 ) In my opinion, the animations are kind of slow, especially in first person. There's some sort of ''windup'' in the animation where your character ''prepares'' to dodge. In a combat situation, I'd like the dodge to be very responsive and I need the player to be able to actually use the dodge reactively to get out of the way of an attack quickly enough. So if someone could speed the animation up that'd be wonderful.
( 3 ) There's a third issue, which I (with my very limited knowledge of how animations actually are structured in skyrim) suspect to be much more difficult to solve than the above 2, so I don't really expect anyone to react to this saying he can fix it, but if someone can that'd be great. The issue is that with some combinations of equipped weapons, the dodge animations simply will not play at all. I think there are some ''conditions'' baked into the animation files, which are not accesible from the Creation Kit (trust me on that, I've looked everywhere), which prevent animations from being played even with a Papyrus function like Debug.SendAnimationEvent(): http://www.creationkit.com/SendAnimationEvent_-_Debug . Examples are: when the player has no weapons drawn at all, or when he has a staff or spell in the right hand.
The animation files which I'm using are the following ones:
- Data\meshes\actors\character\animations\dodgeback.hkx
- Data\meshes\actors\character\animations\dodgeleft.hkx
- Data\meshes\actors\character\animations\dodgeright.hkx
- Data\meshes\actors\character\_1stperson\animations\dodgeback.hkx
- Data\meshes\actors\character\_1stperson\animations\dodgeleft.hkx
- Data\meshes\actors\character\_1stperson\animations\dodgeright.hkx
In fact, I'm experiencing something similar to the third issue in my Dual Wield Parrying mod, so if anyone can deal with that for the dodge animations I'd also like to talk about that and see if something can be done there, but for now I'm especially desparate for help with the first 2 issues since in my opinion those issues currently make the entire mod project almost useless.
If someone can help with this, you'd obviously get lots of mentions in the credits.. or I suppose you could also upload the animation files separately as your own mod. That way users of the TK Dodge mod could also download that separate package and also enjoy the fixes, since these issues have also been plagueing that mod.