Home Artists Posts Import Register

Downloads

Content

Hey there! I think the core of the plugin is now ready for testing. It has been almost entirely rewritten.

The plugin now adds an active ragdoll to actors for two purposes:

  • Precise collision detection, this time done properly, entirely within Havok
  • Procedural hit impacts - Similar to the bEnableHavokHit .ini setting, except better and (hopefully) less buggy

I feel like I have to mention again that it wouldn't be possible without the incredible mod PLANCK - Physical Animation and Character Kinetics and the author's help.

Known issues:

  • The trails are not yet implemented
  • The recoils when you hit a static are not yet implemented
  • Weird stuff might happen with the active ragdoll sometimes. It is a big change for the engine.

The plugin supports all attacks that contain a weaponSwing animation event by default. There's a .toml config file located in Data/SKSE/Plugins/Precision that contains attack definitions for vanilla attacks. Similar to how TrueHUD works, all .toml files from the folder will be read so no conflicts are needed. The .toml file includes a detailed explanation.

I've only included human attack definitions and a rough example of dragon attacks. The other creature attacks unfortunately need to be manually filled by someone, which is a pretty annoying and boring process. You can open and close the mod's MCM to reload the .toml file if you want to iterate and test quickly.

The plugin also supports custom collisions defined inside animation files. If the animation contains proper annotations, the .toml attack definitions are ignored.

If an attack animation doesn't include Precision annotations and is missing a weaponSwing event or the attack definition isn't found in the .toml file, the vanilla attack functionality is used.


Installation:

Still SE only for the moment.

Use the optional TK Dodge / Ultimate Combat patch if you're running one of those mods and NOT running TK Dodge RE.

Use the optional TK Dodge RE patch if you're using TK Dodge RE, regardless of whether you also have Ultimate Combat. Do NOT install the other patch or you'll crash.

Run Nemesis after installing the mod.

The Precision Nemesis patch is made by NickNak. It includes a non-exaggerated, smooth upper body pitch while attacking so you can hit targets above or below you (works great with TDM's target lock) and also includes the animation events necessary for the animation support.

The TK patches disable the upper body pitch modifier while attacking that is included in the TK mods, because Precision does the same thing but subtler and smoother.


UPDATE: NickNak sent me a fixed patch for the TK files, hopefully this will fix your crashes.

UPDATE 2: Apologies folks, turns out there's a different patch for TK Dodge RE and for the original TK Dodge / Ultimate Combat. I've separated them out of the main archive, override the original TK files with the correct patch. (Reminder, the patch just removes the upper body pitch while attacking that is added by TK, because Precision does the same thing but much subtler and smoother)

UPDATE 3: Added the missing .dll to the latest archive, sorry! No changes yet.

UPDATE 4: Updated the installation instructions to clear up potential confusion. I'll pack it all up in a nice FOMOD installer later on so it'll be easier.


For the animators: 

The animation annotations:

Collision_Start - HAS TO BE AT 0.0s TIME - this one informs the plugin that the animation supports Precision, and that the weaponSwing event should be ignored for the purposes of attack collisions.

Collision_Add - required payload: Node() - adds a collision. Use WEAPON for the right hand weapon, SHIELD for the left hand weapon (those are the node names in the character's skeleton.nif), or use other names if you want to use something like the hands, feet, head etc.

Collision_Remove - required payload: Node() or ID() - removes a collision

Collision_ClearTargets - required payload: Node() or ID() - this one is used so you can reset the already hit targets of an active collision, so you can hit again with the same collision. Only useful for animations that are supposed to hit multiple times, you don't need to use it for normal attacks.

The payload parameters:

Most of them are optional. The parameters are separated by |

Node(node name string) - the parent node of the collision. Required for Collision_Add.

ID(integer number) - optional, the id of the collision in case you want to add two collisions that are part of the same attack (they will share the already hit target list, so the attack will only hit once per target, no matter which capsule hits the target)

DamageMult(float number) - optional, the damage multiplier used for attacks dealt with this collision. Useful for combos where you want the later attack to deal more damage, or you might want to use something like a 0.5 multiplier for an attack that hits twice so you don't break the balance

Length(float) - optional, if set it will override the parent node's collision capsule length

Radius(float) - optional, if set it will override the parent node's collision capsule radius

Duration(float) - optional, if set the capsule will be removed after that time passes. If not set, you have to remove the collision with Collision_Remove.

Rotation(float, float, float) - optional, the local rotation of the capsule, in euler angles

Translation(float, float, float) - optional, the local translation of the capsule

Scale(float) - optional, the uniform local scale of the capsule

A random example (the attack doesn't make much sense, it's just an example of some more complicated annotations):

0.000000 Collision_Start

0.230000 SkySA_TriggerIntervalWin

0.233000 preHitFrame

0.350000 Collision_Add.node(WEAPON)|id(1)|scale(1.5)

0.350000 Collision_Add.node(WEAPON)|id(1)|rotation(180, 0, 180) another capsule in the opposite direction, like a twinblade. It has the same ID so the attack will only hit once regardless if both capsules hit the target.

0.400000 Collision_Add.node(NPC L Hand [LHnd])|scale(3.5)

0.400000 weaponswing

0.500000 Collision_Remove.node(WEAPON) this will remove the first collision matching the node

0.500000 HitFrame

0.570000 CastOKStart

0.650000 Collision_Remove.node(WEAPON) this won't remove anything as the previous event removed the collision already (they shared the ID)

0.690000 Collision_Remove.node(NPC L Hand [LHnd])

0.700000 SkySA_AttackWinStart

1.133000 SkySA_AttackWinEnd

1.330000 attackStop


Please let me know if the animation events are missing something that you'd like or are clunky in some way. Keep in mind they can change before the final release.

Comments

Sirgilly1

This is awesome work, well done, I will be trying it tonight on an existing save. Are there any potential compatibility issues with other items like, stop on slash or mods that allow you to hit multiple enemies with your attacks like the sweep attacks mod (I have the one that allows all attacks to hit more than one opponent)

Ersh

Hitstop should work fine as long as it's hooking the right things, sweep attacks are incompatible for now - I simply haven't even looked at how they work yet. They will probably cause double imprecise hits. Precision allows attacks to hit multiple opponents by default so you don't need to use them.

Anonymous

amazing work. Tested the updated version and so far its working fine, no ctd yet or anything. I noticed that this version of precision with updates for tk patches does not have skse dll. I guess this is an update to the already updated version that you released today?

Anonymous

Great improvement from the last iteration. Weapon impacts are now accurate, smooth, and much more reliable this time. The one issue that I've experienced so far are player animations. It's especially noticeable at lower framerates, but my animations from running to weapon movesets stutter and become jittery.

Ylikollikas

In the MCM the weapon range is 80 of vanilla by default. What if I use synthesis patcher like speed and reach fixes that already reduces ranges vanilla weapons? Should I increase the range back to 100 in MCM or still keep it at 80?

Ersh

Gotta be the active ragdoll, thanks for the heads up about framerate as I usually just test at like 140fps because my development modlist doesn't have any visual mods. I'll try limiting framerate, maybe the issues just aren't too noticeable at high fps. That issue will probably take some time to figure out, as the ragdoll code is mostly ported from PLANCK so I'm not 100% sure what's what. Maybe I made a mistake somewhere, too.

Ersh

Honestly it depends on what you think feels right. I've set the default values without any mods affecting weapon reach, but I wouldn't really say they're balanced yet, I didn't spend too much time on testing.

Ersh

Damn, I forgot to include it. Sorry! Thanks for the heads up. (Yeah there wasn't any update to the .dll yet)

KMHTech

Does this have its own Hitstop then?

Ersh

No, hitstop mods should work correctly with this. I haven't checked yet, though.

Anonymous

I haven't tested the weapon collisions yet (I'm on a mage playthrough), but it does make my character jittery when running (like up and down the ground as if the collisions or something is a bit janky). I could send a video or something of sort to help out?

Anonymous

My weapons shook constantly, I made a fresh install, enable ragdoll feature, still have this problem. Could it conflict with any other MOD?

Ersh

I'm aware this is happening to some people. Not sure what's causing this yet, it's gotta be related to the active ragdoll though.

Anonymous

First off, very cool. It's amazing what a relatively confined change does for the feeling of combat in this game. I did notice that vanilla unarmed animations are pretty hit or miss (pardon me), particularly if you're using a mod that lets you stagger enemies through punches

José Guilherme Trevisan Alves

I use custom animations for every weapon, and I've spent the last hours testing every one of them. Gotta say man, the "hit connection" feeling is awesome, make me feel like playing another game entirely. Congrats on that! Sorry for the dumb question, but I noticed that with the mod active, those custom animations become different from the original. They sometimes become slower and the weapon or swing movement changes location as well. Is this because of the .toml file or the anims annotations not being compatible with Precision? Thanks!!

Ersh

It seems there's something wrong with the active ragdoll, I'm not sure what exactly. Will take some time to figure out.

Ersh

You can increase the collision scales in the .toml file for h2h attacks ("AttackStartH2HRight" etc) I might've set it too low by default.

Infinity

Makes it impossible to hit dragons when using ultimate dragons and precision

Ersh

Works fine for me and I'm not sure why it wouldn't.