Home Artists Posts Import Register

Downloads

Content

Hey! I've been busy with the in-game menu.

Right now, the menu will only allow inspection for legacy animations (DAR-structured mods). You can select a ref to see which conditions are passing and which are not, in real time.

In the future, with mods structured for OAR (I haven't started working on the structure yet) you'll be able to edit and save the priority and conditions in-game.

Toggle the menu by pressing Insert - you can change the key in the "Data/SKSE/Plugins/OpenAnimationReplacer_beta.ini" which will be generated after the first launch. You can also entirely disable the whole UI code by changing bEnableUI to false in the .ini.

As a bonus, there's also a progressbar that shows up when animations are queued - it can be disabled (and it probably will be disabled by default on release) inside the settings menu in the UI.

I've added a configurable animation limit (only up to 32767 per project - I've looked into the limit and it's... not great. It's complex and there's several issues blocking us from lifting the limit). I've also noticed that if you have absolutely maxed out the limit (32767 on both), the game will crash with a heap corruption after passing some limit of loaded animations. So there's a reason to keep it at default, at least for now. AFAIK this is no different to what happens with DAR currently.

The file and condition parsing is now multithreaded - your game should load faster, depending on the amount of DAR mods you have. It can be a drastic improvement.

A lot has changed internally, and I had to rework the OR conditions again - as far as I could tell I didn't break them, but keep that in mind.

I've also fixed the some battleaxes missing the battleaxe keyword not being treated as battleaxes (yeah...)

The menu will probably evolve a lot during the development, nothing is set in stone of course.

EDIT 0.2.1: Fixed some conditions not being parsed if they had a space between the condition name and argument - like IsClass ("Skyrim.esm"|0x00043BCC) instead of IsClass("Skyrim.esm"|0x00043BCC). This should fix the remaining discrepancies from DAR.

EDIT 0.2.2: Fixed a crash introduced in 0.2.1 when trying to read invalid lines inside conditions.txt

EDIT 0.2.3: Added a havok heap size setting. By default it's doubled from vanilla. I've also increased the default animation limit to 32767 as the game does not crash with the increased heap size anymore. Going over 32767 is still not supported. Please let me know if this breaks something, it's experimental!

EDIT 0.2.4: Fixed the toggle key not actually being rebindable. Oops.

Comments

Tuan Anh Nguyen Duy

Hi Ersh, I realize there 1 condition in my play through is not working: if I try a moveset with a shout. You happen still miss some condition command am I right?

Anonymous

Hey Ersh, I may have encountered a potential bug where for some reason when using Elden Rim's power button I do the Taunts. When switching back to DAR everything would work as intended. Figured I would report this to you. Would like to also add that my Skyrim version is 1.5.97.

tridbee

Many thanks for this update Ersh. It's always fascinating to look into the technicalities of SKSE mods like this. If I read this right, this means the uint16 limit for animation count is hardcoded and there's not much you can do to raise the limit, right? Have you implemented some form of failsafe when user accidentally going over the animation limit? EDIT: nvm I found the failsafe. Will setting the animation limit beyond 65535 do anything or it will just not load animation past certain point in your current mod list?

Ersh

All conditions are implemented but there's currently an issue where they aren't parsed if there's a space between the name and the (. I'll fix soon, maybe it's that?

Ersh

There's currently an issue where some conditions aren't parsed if there's a space between the name and the (. I'll fix soon, maybe it's that?

Ersh

Well "hardcode" is the wrong word when it comes to SKSE plugins. Nothing is hardcoded (or everything is, depending on how you look at this) :) Anything beyond 32767 will fail as the game does a signed comparison for the int16 so anything beyond that will be wrong. That can be patched, but the real issue is that even with a 32767 limit at some point there's Havok heap corruption after you load too many animations. No point in changing that limit until this is fixed, and I'm not sure it can be. If it's something very internal to Havok it might not be feasible to patch it. This is why DAR does not recommend going above the 16k limit per project, and so do I. There's no 65k limit anywhere, there never was, in DAR either. It's 16k per project, optionally up to 32k. They're evaluated separately.

tridbee

Hey, thanks for the info! Not sure if this is useful to you but my recent finding with OAR 0.2.0 is that, with Nemesis reporting that I am having 50k animation and a few thousand more added on by my DAR folders, if I set the limit to 32767, OAR will still report that I have too many animation loaded. When I finally raise the limit to 65534, this is where OAR stopped warning about having too many animation.

Cameron Duggins

First, I want to thank you for everything you are doing. It is truly amazing. Both my disabled daughter and I run a little over 500 mods each and are very DAR heavy. One of my kiddo's biggest joys is skyrim. With her disabilities; this game helps her like art therapy does. She just loves it As we have finally got our game up to date. I have been heavily testing everything before making changes to my kiddo's mods. Everything is working well with your mods in our mod list. The only glitches I am noticing is possibly from the max skeleton mod not playing nice with DAR and your mod anymore. I am not super techy, so I could be wrong. The mod author posted in the comments of the mod that she is done with skyrim and making mods. She stated she will not update the skeleton again. At some point if you have the time or are interested. Could you fix that one or look at it to see if it is causing issues. Thank you again.... and my kiddo says you are her hero. She is so funny.

Ersh

The game literally can't handle over 32767 animations in a project, you'll either T-Pose or crash depending on how lucky you are. The index will roll over to negative values when the animations that are over the limit try to play, as the game thinks it's a signed int16, and the game will try to access stuff that's outside the array and crash. The max limit *is* the true limit right now, plus the game can also crash even if you don't go beyond the 32767 limit - when I was testing, with the animations up to the 32k limit, the game consistently crashed with the Havok heap corruption when queueing the replacement animations for a second behavior project (that is, everything for the Male project was loaded and the crash happened while loading the Female animations). It might not be happening if most of the animations aren't DAR but are included in behaviors - the heap corruption issue might only happen to the dynamically loaded animation. I will be looking into this in the future, but right now 32k per project is the hard cap and raising that through the ini is inevitably going to bug out. Also as far as I know the animation count in Nemesis is summed up, not per project

Ersh

Thanks :) I don't think it's possible for a skeleton mod to be incompatible with DAR or OAR. The only thing the plugins are really doing is just switching up the index of the animation that should play, right before it plays, plus pre-loading of the animations. Everything else like the conditions is purely internal logic. Nothing here has anything to do with skeletons.

tridbee

I guess I'm one of the few lucky one where the game is still pretty much functional when working with that many animation. Still, I'm very excited for the future progress of OAR!

Ersh

I mean if the game tries to use the animation that's over the limit it's gonna bug out. Most likely you just haven't seen these anims get actually used (well, because you have so many lol) yet. Doesn't change the fact that the game literally can't play animations past the 32767 index correctly. You're bound to have issues - it's possible you'll never experience them - if you go past the limit. I strongly suggest cutting down till the plugin doesn't complain that the animation limit was hit (with the original maximum, not the 65k). Then you can be sure the only risk is the havok heap corruption, not the signed integer thing.

Ersh

It's like, sure, you have more than 32k animations if you change the cap in the ini. But the game is incapable of playing those above the 32767 limit anyway.

vai1lyn

Just curious: does the condition formula syntax support parentheses to dictate operator precedence? For instance, (IsInInterior() AND Random(0.1)) OR (NOT IsInInterior() AND Random(0.8)) I am used to "AND" binding stronger than "OR", but it seems to be inverted in the CK. Therefore, when writing more complex conditions, I need to logically massage my intended formula first, to have the form IsInInterior() OR Random(0.8) AND NOT IsInInterior() OR Random(0.1) While it is easy in the above case, it becomes a bit more complicated as conditions stack, and I'd be a fool to not make use of parentheses in case they are supported :P)

Ersh

Right now no. I'm just replicating the DAR structure now. Mods structured for OAR won't be using a contitions.txt file but something else, and I want to make this exact thing (logic operators) easier to grasp and set up.

Ersh

I think I might've just found the havok heap size. I doubled it and the reliable crash didn't happen. I'll be looking into this further.

Anonymous

If you mean Maximum Skeleton, that's an XPMSE-compatible skeleton made by DWon (who is certainly a dude AFAIK, and definitely not "done with modding") to go along with his Maximum Carnage gore mod... I can't think of any reason it would really interact with DAR or OAR at all in any way that mattered.

tridbee

As of 0.2.3, I found some issue involving jumping conditions. The mods I installed for jumping animation in order are: - Better Jumping SE with following config: https://pastebin.com/8Zxv0jQu - Double Jump: https://www.nexusmods.com/skyrimspecialedition/mods/56236 - Smooth Random Jump Animation - Rework With all above mods installed, jumping with weapon sheathed will always cause game to crash. Uninstall Smooth Random Jump Animation - Rework seems to fix the initial jump. However, double jumps following the initial jump will also cause crash. NetScriptFramework crashlogs: - Crash w/ everything installed: https://pastebin.com/W4CZjbAN - Crash w/o Smooth Jump Animation installed: https://pastebin.com/VJhptM1Z

Ersh

It works just fine for me. Have you increased the animation limit beyond the maximum?

Ersh

I'm pretty sure you have. The crash log suggests it's the exact situation I've warned about. The game is trying to access an element of the animation bindings array with the index -32590, because the signed int has rolled over to negative values.

tridbee

It seems like I was over the limit with defaultfemale.hkx by only 2 animation. I'll test some more to see if there's any problem with jumping conditions.

Ersh

I am planning to at least try to double the limit to the range of unsigned int16, but I need to find all the places where the game treats the index as a signed int16 and patch that.

Ersh

Just leave the animation limit at the allowed maximum. There's no point going over it, something is going to be broken and whether you find it or not is pretty much random luck depending on what indexes the animations get.

Ersh

There's nothing wrong with the jumps or the animations, it's just that in your case these animations ended up over the cap so it was immediately noticeable. It might've been something else that you wouldn't see for hours, or ever.

Anonymous

What would be the line to change the keybinding, it seems to be missing in the .ini file and I can't use the insert key. This is the contents of my OpenAnimationReplacer_Beta.ini [General] uAnimationLimit = 32767 uHavokHeapSize = 1073741824 [UI] bEnableUI = true bEnableAnimationQueueProgressBar = true fAnimationQueueLingerTime = 5.000000

Ersh

Oops, fixed now. Thanks! It's uToggleUIKey, should be added to the ini on generation now.

Anonymous

Something I have noticed is that when I go into a sitting animation when I wait my character sits like normal but when I stand up, I go into the blacksmithing animation, this doesn't happen with DAR 1.3 that said I cannot make it consistently happen, but it has happened twice out of the dozens of times I have used them and I think always on the first time. Also, while the animations are more stable and you do not have t-posing on the first time an animation is played like DAR does it takes my pc ~72 seconds to load the 3200 total dar animations I have (1/10 of the max) which is a longer load time then DAR these are the animation mods that I am using for both DAR and Nemesis: https://pastebin.com/rytuNX3K *edit I forgot to include ABR 5.2 and elden rim 1.9.92 in the mods that add animatons

Ersh

Strange. Do you have the animation queue fix? (The one from the Nexus, not the first version from here, it had a bug that could cause weird animation swaps like that) Also, by loading, do you mean the queue, or do you mean parsing the files? (which happens on the load screen, not after you're in-game) File parsing is multithreaded now and should be (and is, in my experience) dramatically faster than DAR's or my earlier versions.

Anonymous

I do have Animation que fix 1.0.1 and by loading I mean how long it takes for all of the animations to load and for the loading bar to reach the end, at one minute in I t-pose instead of the fmak animation it started about 5-10 seconds before the loading screen finished and continued until 1:17 seconds afterwards when the loading bar finished. Some of the slowness would be from me being on a HDD but it is weird that it takes my computer longer then DAR. I will try recording it next time I boot the game. Here is a video of it: https://youtu.be/a1UDzB4-TaE

Ersh

Ah, okay. This should be the same as DAR's speed, as I'm only calling a game function that loads all the potential replacement animations - which is exactly what DAR does as well in this case. You don't have a progress bar in DAR's case, so how can you be sure that it's faster? And yeah, HDD certainly doesn't help as it's file loading, after all. Until the queue finishes there's no point in checking what t-poses and what doesn't, the order in which the animations load is pretty much random. I did notice there's still possible improvements to be made to the animation queue though, it does seem like it's randomly faster or slower while the test environment remains exactly the same. Haven't found anything yet, though.

Ersh

Does the queue fix even speed it up at all, in your case?

Anonymous

Without Animation Queue Fix It took 1:27 seconds for all of the animations to load 15 seconds longer then with, which could mostly be variations in read times and when I started/ended the timer.... *Edit I have reinstalled Animation Queue fix 1.01 and the load time shrunk to 51 seconds Why does Skyrim have so much variation Tod...

Ersh

At this point I'm not sure if you're limited by something in game that the queue fix fails to speed up, or is it just how it is on a HDD, heh. Anyway the blacksmithing animation thing worries me. I'm not sure how that's possible.

Anonymous

I am wondering if vortex didn't update the fix correctly, I haven't gotten it in a while and I have reinstalled it since then. that said I have disabled and reenabled DAR to test and animations seem to only be loaded in when they are used. That might explain why my slow loading time is not as noticeable, that said with DARs version if I wait 10 minutes then use an animation for the first time it might not work. at the same tme though if i use it as the game loads it seems to work on the next try... I am not sure which I prefer. I am going to test OAR with some different situations for a bit.

Ersh

That sounds like DAR doesn't queue up the replacement animations for you? (That shouldn't happen) That's how it works without queueing them at all, the animation tposes, the game queues it, and the next time you try to use it it works because it's loaded now. That's definitely not desirable, IMO. But that's not how DAR works in my experience, it seems to be doing a very similar thing, it queues up all the replacement anims for loading. The tpose only happens during the initial loading, before everything has been loaded, which is effectively the same as in my mod.

Anonymous

I might have gotten a corrupted version of animation fix, after disabling the copy of 1.01 that I have and loading up version 1.0 the animations load in less then 2 seconds. Time to redownload 1.01 to see if it works at the same speed. as for DAR I have no clue I waited 10 minutes and tried to attack and the animations only loaded the second time which does not happen with OAR for me.

Ersh

As for the animation queue fix, I think it's the weird inconsistency that I've been noticing too. Sometimes it's lightning fast, sometimes it's not.

Anonymous

I disabled version 1.0 and redownloaded and installed 1.01 to test if it was corrupted and the freshly installed one it took 51 seconds to load (56 till fade and it takes 5 seconds to start fading) Now 1.0 is up to 56 seconds.... well At least I am somewhat consistent now, and I haven't had the animation swap in a while but why does Skyrim go from 2 seconds to 1 minute. that said I think it is mainly some quirk with my game now and not to do with the plugins. I am now transferring to a m.2

Anonymous

Loading the game onto a m.2 drive has caused it to load the animations before the game fully loads in <1-2 seconds (while the screen is still black). Also, the animation swapping does seem to be from my animation queue fix.dll being corrupted It has not showed up since. H.D.D Load times for 3286 Animations is ~=51 Seconds M.2 Load times for 3286 Animations is >=1-2 Seconds These are with Animation Queue Fix.

Ersh

Hah now these times are impressive. SSDs are truly a marvel. The issue you've had with the .dll is concerning and I'm not entirely convinced it was corrupted, but as long as everything works now I guess I'm happy.

Anonymous

Hi Ersh, I am loving OAR. Last night, I ran into a weird CTD when trying to mount my horse. I had three different crashlogs, but only the third mentioned OAR. However, I swapped back to DAR and have not experienced the crash. https://pastebin.com/SsBjJLQ2

Ersh

Thanks. I got another report about crash while mounting too.

Anonymous

Greetings! My biggest issue about DAR is its animation limit. Even with expand patch, 32k animation limit still not enough for me now.... Can OAR somehow reach like 64k and beyond?