UPDATE: Another workaround method was implemented in Animation Queue Fix SKSE plugin, you can try it with your existing modlist
Too much variety added using DAR for certain types of animations can lead to crashes on save load then your PC can't load this animation in time. DAR checks its folders from top to bottom (example: 25000000 before 100 and -100090), it's not instantaneous and done one by one. On good machine and\or without overwhelming amount of DAR folders with heavyweight animations it is done fast enough and no problem occures. But if PC processor is not fast enough by itself and\or some other mods use its resoursed on game load and\or you have overwhelming abundance of animation folders for it to go through, it can't play animation in time and you see A-pose - a static pose which is active then no animation is played by actor (this how T-pose looks by the way). And if this state of no animation is longer than about one minute, you game crashes (could be a safety mechanism of sorts to force close the game this way and reload everything with "missing" files present on the next game launch, idk).
DAR limitation or game engine weakness of some kind might be causing this, perhaps someone very clever can solve this in the future. But for now we can work aroung this problem and have big amount of animations added with DAR without breaking your game's back so to speak.
So, there are two types of animations: the ones that play only once and the ones that play in loop, over and over. First ones are OK to replace, because if they are not loaded in time, game sort of just skips it and goes to the one after it. Second type (which I am calling "looped idles") can cause this CTD problem. because if you have this kind of animation not loaded in time static pose will be present for amount of time that can be significant enough (it was around one minute on my PC) and lead to crash.
To avoid DAR related crashes, you just simply need to minimize amount of "looped" animations you are adding with it. I am placing here names of animations that can be swaped by DAR mods and colorcoding it.
Animations are safe to swap in majority of cases are colored with light green
Animations that play in loop and better not be added in abundance are colored with orange
Animations that play in loop, but unlikely to cause CTD are colored with yellowAnimations that not used by game at all in my experience will be crossed
Animations you can replace in special animations folder
C:\...\mods\Some DAR mod\meshes\actors\character\animations\DynamicAnimationReplacer\_CustomConditions\-12345
(list of file names will be added in the future)
In female or male folders with file patch like so
C:\...\mods\Some DAR mod\meshes\actors\character\animations\DynamicAnimationReplacer\_CustomConditions\-12345\female
animobjectchairdrinkingidlebase.hkx
animobjectchairdrinkingidlestart.hkx
animobjectchairdrinkingidlevar1.hkx
animobjectchairdrinkingidlevar2.hkx
animobjectchaireatingidlebase.hkx
animobjectchaireatingidlestart.hkx
animobjectchaireatingidlevar1.hkx
animobjectchaireatingidlevar2.hkx
chair_basevar1tobasevar2.hkx
chair_basevar1tocrossedvar1.hkx
chair_basevar1tocrossedvar2.hkx
chair_basevar1tolookdown.hkx
chair_frontentervar1.hkx
chair_frontexit.hkx
chair_idlearmscrossedvar1.hkx
chair_idlearmscrossedvar2.hkx
chair_idlebasevar1.hkx - if you add too much of it for player character, it can be overdone, possible, but unlikely
chair_idlebasevar1shoulders.hkx
chair_idlebasevar2.hkx
chair_idlelookdown.hkx
chair_leftenter.hkx
chair_leftexit.hkx
chair_rightenter.hkx
chair_rightexit.hkx
dialogueangrya.hkx
dialogueangrye.hkx
dialoguemovingtalka.hkx
dialoguemovingtalkb.hkx
dialoguemovingtalkc.hkx
dialoguemovingtalkd.hkx
dialogueneutralexpressivea.hkx
dialogueneutralexpressiveb.hkx
dialogueneutralexpressivec.hkx
dialogueneutralexpressived.hkx
dialogueneutralexpressivee.hkx
dialogueneutralexpressivef.hkx
dialogueneutralexpressiveg.hkx
dialogueneutralexpressiveh.hkx
dialogueneutralexpressivei.hkx
dialogueneutralexpressivej.hkx
dialogueneutralexpressivek.hkx
dialogueneutralexpressivel.hkx
dialogueneutralexpressivem.hkx
dialogueneutralexpressiven.hkx
idlebloodportalactivate.hkx
idlechairbook_onepage.hkx
idlechairbook_pagesturn.hkx
idlechairbook_read.hkx
idlechairgive.hkx
mt_idle.hkx - everyone's favorite, but you shouldn't add too many variants of it
mt_idle_a_left_long.hkx
mt_idle_a_leg_shift.hkxmt_idle_a_pull_pants.hkx
mt_idle_a_scratch_back.hkx
mt_idle_a_shakeout.hkx
mt_idle_a_shoulders.hkx
mt_idle_a_sigh_var1.hkx
mt_idle_a_sigh_var2.hkx
mt_idle_a_soft_right.hkx
mt_idle_a_sway_fast.hkx
mt_idlehhdleftenter.hkx
mt_idlehhdleftidle.hkx - I have "no looped idles" versions of my mods without tis ones
mt_idlehhdlefttoright.hkxmt_idlehhdltorheadscr.hkx
mt_idlehhdrightenter.hkx
mt_idlehhdrightidle.hkx
mt_idlehhdrighttoleft.hkx
mt_idlehhleftenter.hkx
mt_idlehhleftexit.hkx
mt_idlehhleftexitfast.hkx
mt_idlehhleftidle.hkx
mt_idlehhlefttoright.hkx
mt_idlehhrightenter.hkx
mt_idlehhrightexit.hkx
mt_idlehhrightexitfast.hkx
mt_idlehhrightidle.hkx
mt_idlehhrighttoleft.hkx
mt_idlelookinga.hkx
mt_idlelookingb.hkx
mt_idlelookingc.hkx
mt_idlelookingd.hkxmt_idlescratchhead.hkx
mt_idlescratchheadright.hkx
mt_runbackward.hkx
mt_runbackwardleft.hkx
mt_runbackwardright.hkx
mt_runforward.hkx
mt_runforwardleft.hkx
mt_runforwardright.hkx
mt_runleft.hkx
mt_runright.hkx
mt_sprintforward.hkx
mt_walkbackward.hkx
mt_walkbackwardleft.hkx
mt_walkbackwardright.hkx
mt_walkforward.hkx - and try to avoid adding too much variety for this one
mt_walkforwardleft.hkx
mt_walkforwardright.hkx
mt_walkleft.hkx
mt_walkright.hkx
npc_turnleft90.hkx
npc_turnleft180.hkx
npc_turnright90.hkx
npc_turnright180.hkx
npc_turntowalkleft90.hkx
npc_turntowalkleft180.hkx
npc_turntowalkright90.hkx
npc_turntowalkright180.hkx
special_horzcoffinenter.hkx
special_horzcoffinexit.hkx
special_horzcoffinidle.hkx
special_vertcoffinenter.hkx
special_vertcoffinexit.hkx
special_vertcoffinidle.hkx
weaponadjustment.hkx - this is not an animation really, don't replace it
Feel free to comment, I want to make this article more clear :)
Too many DAR animations can lead to CTD - read this to know how to avoid it
-
Endorsements
-
Total views15.8k
28 comments
This is in reference to something I spotted in the mod "Papyrus Tweaks NG", found here....
https://www.nexusmods.com/skyrimspecialedition/mods/77779
This limit says that in the vanilla code, only 100 papyrus instructions can be executed per frame. So, if DAR uses papyrus functions or scripts to execute its conditions, then maybe that "max operations per task" affects and limits DAR's condition processing? It's just a guess, but would be good to find out if this is causing the problem.
So CHIMgarden, can you easily reproduce this DAR animation problem? If so, it would be worthwhile doing the following test...
Firstly, install the "Papyrus Tweaks NG" Then open the ini file and change the "Max operations per taks" to a small number. Note the Tweaks mod has a default of 500. The papyrus vanilla value is 100. So, try setting it to a smaller number, and run the game. The idea is, that if DAR uses papyrus to process its conditions, and those functions are affected by the "Max operations per task" limit, then you should be able to increase and decrease the frequency of the DAR animation crash, by increasing and decreasing the "Max operations per taks" setting.
If true, and "Max operations per task" does affect DAR's condition processing, then we may have a way to prevent this CTD for players who have a lot of animation mods.
I would try it myself, but I don't have many animation mods installed, and my build currently isn't working. You mentioned on your build, that you frequently get the "T-pose" when starting the game, due to the conditions not being processed fast enough to find the next animation to play. So you're probably in a good postion to quickly test the above idea. I assume that using a lower value for "Max operations per task" should increase the amount of time you're in a T-pose, on the assumption DAR conditions are processed by papyrus scripts and are affected by the "Max operations per taks" limit.
Naturally, this "cement shoes" took my PC down every time. With 1, 100, 500 and 2000 Maximum papyrus operations per frame values. But I noticed what going from 1 to 2000 time before CTD was gradually lengthening. So next time someone will report this CTD problem, I will recommend to install Papyrus Tweaks NG, maybe go from 500 to 2000 value if needed.
I haven't been crashing on loading a save but when I attempt to load to the skyrim world
I had this issue for like 6 months on two different meaty very heavy modlists
simply reducing the mt_idle somehow fixed this issue
so thank you very much sir
DAR source code is not available, but rumor is Doodlezoid is updating DAR and perhaps it will be open afterwards
DAR precaches animations added like this
meshes\actors\character\animations\DynamicAnimationReplacer\Dawnguard.esm\00002B6C\female\mt_idle.hkx
But it can't do it for some reason for animations added like this
meshes\actors\(project folder)\animations\DynamicAnimationReplacer\_CustomConditions\<Priority>\(animation folders and files and _conditions.txt)
Edit: To quote Felisky "Condition checking is done dynamically, so too many may affect performance. Unlike the ActorBase assignment of this mod, animations added by custom conditions are pre-cached on load for all actors in the project." At the bottom of sticky post
Have you seen A-pose on save load in your game with DAR mods installed? On my not so powerful PC I see it every time with all my mods installed and some others
If I load a save from within the game, all the animations are precached and I have no wait. Not that I ever do that, I only did that for testing. I always go back to the desktop to load a save when playing the game for real.
EDIT: I still need to read through the article again and try to figure out how many good/bad animations I might have. Seems like someone could create a powershell or other script to be run from the vfs in MO2 to count the DAR animations and give some kind of analysis, rating, and recommendation based on the CPU.
EDIT #2: I see people in the Wounds Animation mod complaining about the number of animations and how it causes A posing. That mod has 5k animations, though they're only for the PC. The users in the posts refer to a 16k DAR limitation, and someone pointed to this as a way of increasing that to 32k. Thoughts on that?
I have never had over 16k of animations in my game, yet I had this CTD on save load, so I am convinced it is not the same. But other people can have both problems at the same time, why not :)
I think number of "looped" animations people can add depends on PC specs and other mods using it's resourses at save load, so if your PC can process all you have added without CTD, there are no reason to minimize amount of animations other than to get rig of visually unpleasant static pose display, if you would wish to.
Are this animations configured to play only on your character or all actors? What folder numbers are used? What is the average file size of this animations? Smaller file size and lesser amount of animations in folder, higher DAR folder numbers and focused conditions are factors that help to minimize this prolonged static pose display that might lead to crash
https://www.nexusmods.com/skyrimspecialedition/mods/31146