About this mod
This SKSE plugin removes the mismatch between displacement and custom animations caused by limitations in the engine. Welcome to next-gen gaming guys.
- Requirements
- Permissions and credits
- Changelogs
- Donations
I highly recommend you watching the following two videos, as they perfectly describe why this mod is so needed:
The magic happens through animation annotations. The plugin reads custom annotations containing the motion data. Then it is injected into the game engine to move the actor. If the annotations are correct, movement will be perfectly synced with the animation.
If you read up to this point, you may be interested on giving it a try in your modlist. So... back to Skyrim again?
Although it is not a hard requirement to work with animations, this mod would make little sense without Dynamic Animation Replacer. So go install it now! :)
In vanilla, only power attacks, stagger, and some interactions with clutter use motion data. The amazing Moder Combat Overhaul (successor of (SGC) SkySA - Combat Behavior Compulsion) enables attacks (other than power attacks) to be driven by motion data. MCO is built around this mod and it will unlock AMR's full potential, so go get it now!
Of course, SCAR - Skyrim Combos AI Revolution, the AI mod that allows NPCs make intelligent use of each attack animation at their disposal. My mod and maxsu2017's one shine the most together.
[time] animmotion [x] [y] [z]
Where [time] is the time at which the [x] [y] [z] displacement is applied. The magnitude and the format of the [time] [x] [y] [z] values are the same as Bethesda used for their animationdatasinglefile.txt (adsf) entries. For example, an entry in adsf:
X
1.5
6
0.3 0 87.7596 0
0.5 0 143.82 0
0.666667 0 238.906 0
1 0 349.674 0
1.23333 0 411.129 0
1.5 0 484.528 0
1
1.5 0 0 0 1
Would be translated to an hkanno file like:
# numOriginalFrames: 44
# duration: 1.5
# numAnnotationTracks: 99
# numAnnotations: 6
0.3 animmotion 0 87.7596 0
0.5 animmotion 0 143.82 0
0.666667 animmotion 0 238.906 0
1 animmotion 0 349.674 0
1.23333 animmotion 0 411.129 0
1.5 animmotion 0 484.528 0
Rotation can also be controlled from animations! The format of the annotations for rotation is the following:
[time] animrotation [degrees]
For a 360º rotation in 1.5 seconds:
0.5 animrotation 90
0.9 animrotation 180
1.2 animrotation 270
1.5 animrotation 360
Translation (animmotion) and rotation (animrotation) annotations can be mixed.
The plugin will work for any animation associated to a behavior with bAllowRotation or bAnimationDriven set, as this forces the game to move the actor based on motion data. For example, power attacks have this in vanilla. Use Skyrim Behavior Tool to edit the behavior modifiers.
- distar66 for making the call that finally motivated me to start learning RE and get into modding, for explaining me the behavior concepts, clarifying the motion data problematic and providing the animations for testing and for Moder Combat Overhaul
- Fudgyduff (Ryan) for his invaluable SSE RE library CommonLibSSE
- alandtse for helping me out to finally understand how function arguments work in ASM
- The SkyrimSE RE discord channel for the resources that helped me and surely others starting with RE
- Felisky384 for the mod that gave sense to this plugin: Dynamic Animation Replacer
- opparco for hkanno Animation Annotation Tools, that made the process soo much easier for animators and modders
- Zartar for Skyrim Behavior Tool. Simply revolutionary
- Ershin and maxsu2017 for their inputs and help with xbyak/assembly
- meh321 for Address Lbrary for SKSE Plugins
- The SKSE team for one of the most (if not THE most) useful contributions to SSE modding: SKSE64
- DarkX ShadowX21 for the cool font of the title
These people are awesome and very talented, so go check their job, download it, and don't forget to endorse :)
Source code: https://github.com/alexsylex/AnimationMotionRevolution