Roggvir Posted July 2, 2022 Posted July 2, 2022 DD 5.1 to DAR (Python script) View File A Python script to build a Devious Devices 5.1(+?) animation set package for Dynamic Animation Replacer mod. The script requires Python 3.+ (tested on 3.8.9), and should work for DD 5.1 SE/LE (possibly also 5.2, but i didn't test it).  Place the contents of this package somewhere Add unpacked Devious Devices mod package Run the included Python script to build a DD animset for DAR. Tell FNIS AA good bye.  Of course, to fully move your DD from FNIS AA to DAR, you also need to modify DD's zadBoundCombatScript, but i have no permission to upload modified DD scripts, so you will have to do that yourself (for instructions see README.TXT included in the download package).   Full README (also included in the download package):  Spoiler ===============================================================================  WHAT IS THIS? ===============================================================================  This is a Python script and TXT "config" files, to help simplify building a  Devious Devices 5.1(+?) package for Dynamic Animation Replacement mod.   ===============================================================================  HOW TO USE IT ===============================================================================   1. Install Python 3.8.9 or NEWER, required to run the included script.    Download the installation package from https://www.python.org/downloads/    Run the installation and follow its instructions, should be pretty simple.    (refer to https://wiki.python.org/moin/BeginnersGuide/Download if you are     struggling with the installation, or seek help in some forums).   2. Unpack the contents of this archive anywhere you want, but make sure there    is enough disk space for the contents of the Devious Devices mod package,    which is required for the process to work.    Let's assume you unpack it to "D:/DD_DAR", resulting in paths like these:        D:/DD_DAR/_copy_DD_files.py        D:/DD_DAR/_README.txt        D:/DD_DAR/100001 [abc5] - Elbow tie (no wrists).txt        D:/DD_DAR/100002 [abc4] - Front Cuffs.txt        D:/DD_DAR/100003 [abc3] - BB Yoke.txt        ...    NOTE: Those TXT files ARE IMPORTANT.          They are used by the script during the process.   3. Unpack the Devious Devices mod package into a subfolder under wherever you    placed the files from this archive in step #2.    Assuming you used the example path "D:/DD_DAR", you want to unpack the DD    mod package into a subfolder inside that path, resulting in directory    structure like this (i list only the folders required by this process):        D:/DD_DAR/DD_Source/00 Core        D:/DD_DAR/DD_Source/02 BunnyHop        D:/DD_DAR/DD_Source/02 Cedec0        D:/DD_DAR/DD_Source/02 Feuertin Alt        D:/DD_DAR/DD_Source/02 MaikCG   4. Edit the Python script "_copy_DD_files.py" to configure it.    You need to set "ddSourcePath", "animStyle", and "hobbleAnims" variables    in class "CFG" at the beginning of the script.        The script should contain enough comments explaining what's what.    "ddSourcePath": Set to absolute path where you unpacked the DD mod package                     (eg. "D:/DD_DAR/DD_Source").    "animStyle":   Set according to your preference (read the script comments).    "hobbleAnims": Set according to your preference (read the script comments).   5. Run the Python script "_copy_DD_files.py".    The script should copy specific animation files from the DD source folders,    rename them to fit DAR requirements and place those renamed copies into the    "meshes" folder where the script is located (eg. "D:/DD_DAR/meshes"), and    generate the "_condition.txt" files needed by DAR.   6. Modify and recompile the DD's "zadBoundCombatScript".    Without modifying the "zadBoundCombatScript", DD will keep using FNIS AA to    enforce the bound movement animations.        I do not have the permissions to redistribute any modified DD scripts,    so the best i can do, is to provide instructions how to modify the script.    So, here goes:         Function UpdateValues:            Keep the function, but remove or comment out its contents.         Function CONFIG_ABC:            Keep the function, but remove or comment out its contents.         Function Maintenance_ABC:            Keep the function, but remove or comment out its contents.         Function SelectAnimationSet:            Keep the function, but remove or comment out its contents,            and make it return zero integer value (place "return 0" right            after the function declaration before all its original, now            commented out, content).         Function EvaluateAA:            Comment out every call to FNIS_aa.SetAnimGroup().            Find these two lines:                 int animState = GetSecondaryAAState(akActor)                int animSet = SelectAnimationSet(akActor)             ...and add the following code right after:                 Debug.SendAnimationEvent(akActor, "IdleForceDefaultState")                if animState != 1 && animState != 2 && animSet != 6                    akActor.SetAnimationVariableInt("FNIS_abc_h2h_LocomotionPose", animSet + 1)                endIf     That should do it, now figure out how to compile it (if having trouble,    seek help in the forums).   7. Take the created "meshes" folder, add the recompiled script, and have fun.    All you need is the modified "zadBoundCombatScript" from step #6, and the    "meshes" folder (eg. "D:/DD_DAR/meshes"), so copy it all into game's "Data"    wherever it belongs (NOT RECOMMENDED! UNLESS YOU KNOW WHAT YOU ARE DOING),    or make a mod package for your Mod Organizer (RECOMMENDED, but out of the    scope of this little guide, as i am not using any of the publicly available    Mod Managers, so i cannot help you with this).    Submitter Roggvir Submitted 07/02/2022 Category Modders Resources Requires Python 3, Devious Devices 5.1 (likely compatible with 5.2) Special Edition Compatible Yes 10
Roggvir Posted July 2, 2022 Author Posted July 2, 2022 (edited) Several people asked me for the DD DAR package, or how to do it themselves, and since i cannot redistribute modified DD data, i decided to make this script that should automate the process. Hope it helps somebody. Â EDIT: Oh, and obviously, if using this, please, do not bother @Kimy with any possible DD-related problems you may end up having. Not that this should cause any problems, but regardless, consider the warranty void, do not ask in any of the Official DD topics for help, ask in the support topic here instead. Â Edited July 2, 2022 by Roggvir 2
Martin1313 Posted July 2, 2022 Posted July 2, 2022 Cool!!! Great job!!! But I am a complete noob in programming and the video tutorial is very necessary for me and many people such noobs as me)))
Xleymn Posted July 2, 2022 Posted July 2, 2022 This is great! Could you give some more direction on how to rebuild the bound combat script? I'm not sure what program I need to use
Roggvir Posted July 2, 2022 Author Posted July 2, 2022 (edited) 56 minutes ago, Martin1313 said: Cool!!! Great job!!! But I am a complete noob in programming and the video tutorial is very necessary for me and many people such noobs as me))) Well, this little script requires the user to be maybe a bit more experienced even with a video - it will gather the required animation files and put them in DAR animation sets under "meshes" folder, but then you still need to know what to do, how to install them, etc. (not mentioning recompiling that script, etc.). To make it easier, and completely automated, would require much more effort, and even then there will be still some manual steps. But all is not lost - i had a quick back and forth with Kimy about this, and she is willing to include a DAR patch into the official DD package as an optional element. So, instead of making a video, or improving the script further, i will rather focus on preparing the patch and properly testing it. Â 45 minutes ago, Xleymn said: This is great! Could you give some more direction on how to rebuild the bound combat script? I'm not sure what program I need to use Hmm, that is unfortunately a bit complicated. The easiest way would be probably to create some "includes" folder, then put into it all the required dependencies (just the scripts), each into its own folder: Â - SKSE scripts - Papyrus Util scripts - Vanilla game scripts (get them from... CK?) - Aradia Devious Devices Integrated 2.0 - Bathing In Skyrim 1.11 - DD 5.1 - Skooma Whore 1.0 (it is possible i forgot some other dependencies - i am not using all normaly required dependencies when recompiling DD scripts, because i use gutted or "dummyfied" DD scripts that allow me to ignore most of dependencies). Then you would just run the Papyrus Compiler feeding it the script source to recompile and point it to all the includes. I guess this is not detailed enough to be helpfull to you, but i don't have the time right now for more thorough explanation - maybe somebody will fill in the blanks in the meantime, if not, i will try to explain it properly later. Â Edited July 2, 2022 by Roggvir 3
Martin1313 Posted July 2, 2022 Posted July 2, 2022 (edited) Thank you for the extended answer! Super I will be waiting for your animation version!!! Sorry, can I make DAR animations for version 5.2 SSE ? Edited July 2, 2022 by Martin1313
Ondine. Posted July 3, 2022 Posted July 3, 2022 Amazing and worked like a charm thanks! Â 1 hour ago, Martin1313 said: Thank you for the extended answer! Super I will be waiting for your animation version!!! Sorry, can I make DAR animations for version 5.2 SSE ? it worked for me. I just had to update the folder names in the script to reflect the 5.2 FOMOD. 00 Base 10 Feuertin Alt 10 Cedec0 10 MaikCG 11 BunnyHop 2
Maddac Posted July 3, 2022 Posted July 3, 2022 (edited) is there a way to have other mods like billy's SLAL animations change from FNIS to DAR? would love to make as many mods work under DAR as possible to reduce FNIS load. Also I have the patch to make Ariada Devious DD4 compatible, is there one for DD5.1? Edited July 3, 2022 by Maddac
ihatemykite Posted July 3, 2022 Posted July 3, 2022 8 hours ago, Roggvir said: - SKSE scripts - Papyrus Util scripts - Vanilla game scripts (get them from... CK?) - Aradia Devious Devices Integrated 2.0 - Bathing In Skyrim 1.11 - DD 5.1 - Skooma Whore 1.0 (it is possible i forgot some other dependencies - i am not using all normaly required dependencies when recompiling DD scripts, because i use gutted or "dummyfied" DD scripts that allow me to ignore most of dependencies). Most of these are required when compiling DCL script. Base DD doesn't require these scripts I think. What it requires tho is SkyUI SDK. Also if my memory is correct, FNIS SexMove script are required. You also have to change time format to AM:PM format in case you are using normal 12:24 format, otherwise the compiler will somehow fail (at least in CK, using compiler in notepad or VScode might work better). 2
stas2503 Posted July 3, 2022 Posted July 3, 2022 (edited) If you'll allow me, I'll add the instructions: After compiling the scripts, you will need to edit the FNIS_DD_List.txt, FNIS_DD2_List.txt and FNIS_DD3_List.txt files as follows: At the very bottom, you will need to comment out with "[']" or delete all lines below: AAprefix abc AAprefix hbc AAprefix pon including these lines. After that, you will need to run the GenerateFNISforModders tool and regenerate the behavior files for the FNIS_DD_List.txt, FNIS_DD2_List.txt and FNIS_DD3_List.txt sheets. Then run the GenerateFNISforUsers tool and enjoy what you've done. After all this, the coefficient of potential CTD in FNIS decreased by 20%. Special note: Do not use the DAR.dll fix - it does not work with DD. Edited July 3, 2022 by stas2503 4
tznvlw Posted July 3, 2022 Posted July 3, 2022 5 hours ago, stas2503 said: If you'll allow me, I'll add the instructions: After compiling the scripts, you will need to edit the FNIS_DD_List.txt, FNIS_DD2_List.txt and FNIS_DD3_List.txt files as follows: At the very bottom, you will need to comment out with "[']" or delete all lines below: AAprefix abc AAprefix hbc AAprefix pon including these lines. After that, you will need to run the GenerateFNISforModders tool and regenerate the behavior files for the FNIS_DD_List.txt, FNIS_DD2_List.txt and FNIS_DD3_List.txt sheets. Then run the GenerateFNISforUsers tool and enjoy what you've done. After all this, the coefficient of potential CTD in FNIS decreased by 20%. Special note: Do not use the DAR.dll fix - it does not work with DD. Â I have a question for you, should I just comment out these three lines, or should I include the lines below them?
stas2503 Posted July 3, 2022 Posted July 3, 2022 37 minutes ago, tznvlw said: Â I have a question for you, should I just comment out these three lines, or should I include the lines below them? Each file has its own line, you need to delete or comment them and the lines below them.
Murphiee Posted July 3, 2022 Posted July 3, 2022 This is great! definitey including in my next setup. Thank you!
Roggvir Posted July 3, 2022 Author Posted July 3, 2022 13 hours ago, Maddac said: is there a way to have other mods like billy's SLAL animations change from FNIS to DAR? would love to make as many mods work under DAR as possible to reduce FNIS load. Also I have the patch to make Ariada Devious DD4 compatible, is there one for DD5.1? If you mean Billy's SLAL animations used by SexLab for normal sexing, then nope, that is not what DAR is for. Any sexing animations still need FNIS, and DAR cannot help you.  DAR works by realtime replacing the paths to animations the game is trying to load, based on some set conditions. For example, when the game is loading a "walk forward" animation to make certain character walk forward, and DAR has an animation replacement set that includes this "walk forward" animation with conditios set in a way that makes this animation replacement set applicable to the NPC the game is trying to load the animation for, then DAR causes the game to load that replacement animation instead. So, you can have old npc's walking in a different way than youg npc's, or you can make the npcs/player use different movement animations based on the type of worn armor, or you can change attack animations based on what weapon is equipped, etc. Or, you can use DAR to handle enforcing bound walking animations (like walking while wearing an armbinder, or cuffs, or bunnyhopping/hobbling while wearing a hobbledress, etc.).  There is no point using DAR to replace SexLab's sexing animations - how would that even work? the game is trying to load "Leito_Missionary_A1" and you set up DAR conditions to replace that with "Anubs_Doggy_A1" ??? That would make no sense, why would you do that? So, nope, this has nothing to do with sexing animations, only with walking/movement animations.  This download is for people who want DD to stop using FNIS AA (Alternate Animations) functionality to force the bound movement animations, and leave it up to DAR instead. The reason why you may want to use DAR for this instead of FNIS AA, is the following: The DD bound movement animations can be completely excluded from FNIS. If using DAR instead, those animations won't count towards the FNIS animation limit, as they do not need to be injected by FNIS into the game's behavior files. I completely omitted this information, thinking it will be obvious to everybody who would want to use DAR to handle DD's bound movement anims, but i guess i should have mentioned it too - anyway, stas2503 described the process here.  Applying the animations using DAR is usually WAY faster then when using FNIS AA functionality There is usually no delay, and it is also a completely scriptless solution, DAR doesn't need any scripts, it is a SKSE plugin. Of course, to make it real snappy, sometimes you may have to call Debug.SendAnimationEvent(akActor, "IdleForceDefaultState") after changing animation sets, causing the game to reloading the animation on the actor, which immediately triggers DAR, but even if you do that, it is just one quick line of code, instead of calling bunch of functions and whatnot when using FNIS AA.  Long story short: While you could do it in theory, it doesn't make any sense. If you need to lower the number of animations for FNIS, then the best way is to comment out or remove any unwanted animations from the corresponding SLAnims TXT files, then use SLAnimGenerate to generate the JSON files for SL Anim Loader and the FNIS_*_List.txt files for FNIS, then use FNIS for Modders to regenerate the behaviors based on the new FNIS_*_List.txt file, and then reload the JSON's in SLAL in game. Unfortunately, many animatiors are really REALLY REALLY REALLY (i can't say that often enough) TERRIBLY BAD when it comes to handling data and creating proper, clean TXT source files for SLAminGenerate, making it annoyingly more tedious for anybody who wants to edit these files, because you need to usually fix various errors in order for the SLAnimGenerate to work properly (it seems most animatiors are using SLAnimsGenerate only half way, and then still edit the FNIS TXT files manually, resulting in the source TXT files not having all the data needed to generate the correct final FNIS TXT files - i find that utterly mindboggling as to why they do it that way - it is not needed, it makes no sense, and helps noone... but, here we are, end of rant).  6
Maddac Posted July 3, 2022 Posted July 3, 2022 @Roggvir thanks for the explanation. now if only we could get @Kimy to implement using DAR as an option for DD animations, it would make things easier for someone like me that knows nothing about scripts or python etc, but really enjoys playing the game.
tznvlw Posted July 4, 2022 Posted July 4, 2022 10 hours ago, stas2503 said: Each file has its own line, you need to delete or comment them and the lines below them. Â Thank you very much for your reply, I understand?
Roggvir Posted July 4, 2022 Author Posted July 4, 2022 3 hours ago, Maddac said: @Roggvir thanks for the explanation. now if only we could get @Kimy to implement using DAR as an option for DD animations, it would make things easier for someone like me that knows nothing about scripts or python etc, but really enjoys playing the game. Actually, Kimy did talk to me about this, and she is willing to do exactly that - add it as an option when installing DD. I promised i will provide the modified data. I am a bit too busy with RL stuff, but i should be done testing everything in a few days, and send it all to Kimy. 7
tamai Posted July 4, 2022 Posted July 4, 2022 sorry if this sounds stupid but what does this help with? does it cut down on the animation limit?
stas2503 Posted July 4, 2022 Posted July 4, 2022 @tamai Yes, this reduces the potential CTD coefficient in FNIS by 20.6%. 2
Murphiee Posted July 12, 2022 Posted July 12, 2022 so. trying to recompile the script using creation kit. getting   (cannot convert to unknown type fnissmconfigmenu)   error. fnis source scripts are properly installed, anyone have any idea what i could have messed up?
Roggvir Posted July 12, 2022 Author Posted July 12, 2022 53 minutes ago, Murphiee said: so. trying to recompile the script using creation kit. getting   (cannot convert to unknown type fnissmconfigmenu)   error. fnis source scripts are properly installed, anyone have any idea what i could have messed up? Looks like you are missing the source scripts from FNIS Sexy Move. 1
Maddac Posted July 17, 2022 Posted July 17, 2022 any chance you can get kimy's permission to actually upload the DAR patch for DD 5.1 or 5.2b6 for us numpties that dont understand python etc? its doing my head in but I would love to reduce FNIS load 20% 4
Roggvir Posted July 31, 2022 Author Posted July 31, 2022 On 7/17/2022 at 3:40 AM, Maddac said: any chance you can get kimy's permission to actually upload the DAR patch for DD 5.1 or 5.2b6 for us numpties that dont understand python etc? its doing my head in but I would love to reduce FNIS load 20% Kimy offered to include a complete DD-to-DAR patch in the DD itself as an option when installing DD, but i am supposed to prepare and test the patch, and then give it to her. The patch is nearly ready, but i still need to setup the bunny hopping as "running" in a hobble dress (the slow hobbling is used only for "walking"), but i don't have the time to do it right now. So, you need to have a bit more patience, or find somebody else to do it faster. I am sorry. 2
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now