About This 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):
Â
===============================================================================
 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).
Â
Â
Â