About this mod
Another one click power attack mod with input buffer and modern action games input system. Also allows you to do attack in whole attack recovery time window and dodge.
- Requirements
- Permissions and credits
- Changelogs
- Donations
The Problem
MCO Input Buffer Problem
In MCO world, animation behaviors handle input as soon as the animation started. That means, if you do a quick double-click, the character will do a 2 attack combo instead of one. It is too sensitive and is no a modern action game design.
Attack Problem
In MCO animations, it will have MCO_WinOpen and MCO_WinClose to define the valid transition time window to next attack.
Most of authors will set it to a very limit time window. For example, you have a 3 second animation, it can transition to next attack between 1.5-2s. The remains 2-3s is recovery window. In recovery window, you can move to "cancel" the animation. But you can no longer click attack key to make next attack combo.
It is quite annoying because:
1. Most action games, like Monster Hunter series, have very long input time windows. Their unresponsive recovery time window is very limit or even zero.
2. Skyrim doesn't have input buffer. So when you are in recovery window, you have to wait for the animation end and the character actually reset to idle, to do another attack. It makes the input feels unresponsive and hard to control because it dropped your input.
Dodge Problem
Like attack but worse. Most dodge framework doesn't allow you to do attack input during dodge animations.
You input during dodge is simply dropped.
While most people using "Attack Cancel", which do inputs like this: attack - dodge - attack.
Because of the problem above, you can only perform the second attack until the entire dodge animation end and character reset to idle.
Humans have reaction time. Even if you can predict the end of the dodge, your character will likely stand dumb for a little while unless you spam your attack key (even spam attack key doesn't resolve this problem because your clicks have interval).
This problem makes the dodge-attack strategy very hard to use and the game feels really unresponsive.
The Fix
This SKSE plugin implements a simple input buffer mechanism and try to consume buffered input in some specific animation events.
It also dynamically allows you make MCO combo attack while your are in MCO_Recovery time window.
If you are using 1.1:
This mod is designed to be used with an One Click Power Attack mod. I am using this one: One Click Power Attack NG.
In fact, this mod does the same thing as the One Click Power Attack mods, but it cannot trigger the first power attack.
If you are using 1.2+:
To reduce potential problems, Smooth Input 1.2+ is a fully functional one click power attack mod. It can be used without other one click power attack mod.
I hope this can reduce strange behaviors.
1.2 also contains some fixes, here is the tech explanation:
Caution, I can't say my understanding is correct. MCO is a black box for me, I can only speculate about how it works. Character weapon is drawn in context.
I found that this mod doesn't work right during the "recovery window" because of an extra time window that's not part of the attack animation.
AttackAnimation - ExtraTimeWindow - Idle
The extra time window contains some animation events which forcibly cancel all animations (at least based on my observation) to ensure the character returns to idle. If an attack animation is canceled, it bugs.Non-attack animations, like movement or dodging, will transition to Idle with animation events like this:
TKDR_DodgeStart
...
TKDR_DdogeEnd
tailCombatState
attackStop
Pie [contains nextattack, nextpowerattack, etc]
tailCombatLocomotion
FootLeft
tailCombatIdle
What I've done for dodge animations is handle the `tailCombatIdle` event. I cannot handle other events like `FootLeft`, because `tailCombatIdle` event seems certain to triggered, although with an extra delay. If I handle FootLeft, the next attack animation will be canceled by `tailCombatIdle`. If the attack animation is canceled, the internal variables probably remain with dirty values. This is the potential cause of some known bugs, like power attacks not working, or some animations are "skipped" - or more accurately, "canceled".Attack animations, transition to Idle with an extra animation events like this:
PowerAttack_Start_end
HeadTrackingOff
MCO_PowerWinClose
MCO_WinClose
MCO_TransitionClose
MCO_AttackInitiate
...
MCO_Recovery <- some animation doesn't have this
attackStop <- attack ends here
HeadTrackingOn
Pie
..
CastOKStop
tailCombatState
Pie
..
tailCombatIdle
attackStop
The problematic part is that attackStop appears twice, and the second one is later than `tailCombatIdle`, with the last attackStop has about 0.2s delay after tailCombatIdle. So in this uncancelable 0.2s extra time window, if you perform an attack, the attack will be canceled too. This results in dirty values and prevents power attacks in idle.Dodge part is correct in v1.1, and attack part is fixed in v1.2 by handling more events to determine current state. I use `MCO_(Power)AttackInitiate` and `HeadTrackingOn` to know if current animation is an attack animation, and I will consume the input buffer after the last attackStop event.
Again, I cannot guarantee that my understanding is correct, but it is currently working well in my testing. Perhaps some animation sets will break these patterns, causing them to not work with my mod, or it may be due to my misunderstanding. Please report any issues at any time.
Dodge Attack Fix
TUDM - Supported!
TK Dodge - Supported!
DMCO - You will need DMCO 2.1.11 because it provides a dodge attack feature which allows you to interrupt the dodge animation to perform attack.
But most animation packs doesn't have dodge attack animation file, I have a tool Dodge MCO - Dodge Attack Generator to generate them for you.
Check the video for the effect preview.
Compatibility & Uninstall
Perhaps conflict with other mods also handle MCO_Recovery or other animation events.
Safe to uninstall at any time.
Incompatibility:
You SHOULD NOT enable directional power attacks for AMCO. Otherwise, power attack during recovery time won't work.
That means, in esp, "Idle Animation" section, "PowerAttackLeft", "PowerAttackBackward", "PowerAttackRight", "PowerAttackForward" should have "attackPowerStartInPlace" animation event.
FAQ
- Is DMCO/dodge framework a hard requirement?
NO. It only provides a way to support smooth dodge attack input. You can use this mod without it to have smooth attack input.
Known Issues:
Other mod bugs:
1. If you are using DMCO and try to do a second dodge at almost end of previous dodge, you will get stuck. It is a DMCO bug, I can't fix it.
2. If you try to move in the recovery window, your movement direction is fixed and you can't use any attack to cancel this move. This is limited by MCO.
Probably bugs I can't fix:
1. If your current attack has no next attack annotation, attack in recovery time probably won't work. This is limited by MCO.
2. If your character is in a "blend animation", for example, right hand dagger with left hand magic, and you don't have a specific moveset for this situation, attack in recovery time probably won't work. Idk why but maybe this is because MCO too?
Real bugs with workaround:
1. If you are using double-click dodge (will perform roll instead of step dodge) feature of vanilla DMCO, enable "Keep MCO behavior". It is a bug caused by the mod haven't handle dodge input right now. This option is a work around.
Bugs
1. Hold attack key for a long time will consume stamina just like power attack
2. Perform a power attack at specific time window will not consume stamina
3. If you are using idle moveset like Smooth Moveset Addon, it may generate an extra attackStop event. This means that any input just before this attackStop event will be canceled and cause some kind of bug. I am trying to avoid this.
Potential bugs, but don't know why, and probably related to specific animation in specific moveset:
All known bugs below only caused by attacks in recover time.
1. Sometimes your next attack is kept even if you have returned to idle if you do attack in recover time. This often happened in power attack. I am not sure why, I will guess this is another strange MCO behavior/game engine limitation.
For example, you have a power attack combo 1-2-3-4. And you only perform power attack in recover time. You may find your input from 2 to 3 will do nothing. After your character reset to idle, do a power attack will directly perform power attack 4, just like the game still think you are in attack3. You probably can only observe this behavior in specific animation in specific moveset.
This probably fixed in 1.2+.
2. Sometimes your power attack in idle simply do nothing, probably you can fix this by doing a power attack in another attack.
I am not sure why, I will guess this is another strange MCO behavior, or probably because this mod and OCPA mod are both handled power attack things.
This bug seems to be like the first one, like the game engine/behavior has some incorrect variables.
This probably fixed in 1.2+.
3. Sometimes some attack combo will likely to be skipped if you do attack in recover time. This seems to only happen in specific animation in specific moveset.
For example, you've a combo 1-2-3-4-5, and you only perform attack in recover time. And you probably will notice in OAR log window, after attack2, your character will goto attack3 and immediately goto attack 4. And this skip behavior only appears in attack3. Other moveset may not have this problem in the meantime. I don't know why.
This probably fixed in 1.2+.
Other Dodge Framework Support?
This mod handles idle animation event. It should work for all dodge frameworks. But only supported dodge frameworks will take benefits from "Extend Input Buffer in Dodge" option.
If you encounter bugs with other dodge frameworks, please leave a comment.
Donation