Starting from v1.0, the animation patcher is now provided as EXE file. This means that you don't need to install Python, and environment fiddling is no longer needed. Please check the updated usage and installation instructions in the description. Changelog
1.0: full support for DMCO 2.1 (stamina and magicka consumption, including modifiers) 0.2: fixed iFrames not working after patch
I can't understand, I have version 1.6.1170. I have the latest dmco version with ae support, if I dodge, the pg stays still. the animation happens, but it doesn't move
I managed to convert the dynamic dodge animations to work with mco 2.1.x Only problem is the attack cancel dodge doesn't really work and let you cancel an attack like in the original mod and the stamina isn't being consumed. Is this a common problem with patching it?
The first point is not an issue with the patcher, but a rule change within DMCO: DMCO 2.X, in its default configuration, doesn't support mid-attack dodges. I think you can enable mid-attack dodges again by setting the animation graph variable "MCO_DodgeAlwaysOn" to 1. Alternatively, if that doesn't work, you can add a custom Nemesis patch for it. I have created a working patch (by editing the #4802.txt file in DMCO's 1hm_behavior), but unfortunately don't have permissions to share it :/
However, stamina should be consumed successfully after the patch. If it isn't, this could be an issue with the patcher. Do you have a custom MCM value set or do you use the defaults?
I'm also having the same stamina problem, but may have an insight. I have the default MCM values (even re-installed DMCO and Dodge Framework just to be sure). Changing the values does nothing either. Doesn't seem to matter if I install the 'distar experience' or the mco version of DMCO.
I tested another DMCO mod that was made for the newer versions, Butterfly Dodge, and the stamina cost worked perfectly. Switched back to my attempt at updated dynamic dodge, and there was no stamina consumption. So it's not my installation of DMCO as far as I can tell.
I'm brand new to working with havok files but I decompiled them using HKXPack and tried to compare them to the working ones and may have an answer.
In Butterfly Dodge, it calls for the stamina spell like this: <hkparam name="text">PIE.$DMCO_staminaCost</hkparam>
But with the Dynamic Dodge files that were updated with your tool it calls for the stamina spell like this: <hkparam name="text">@CAST|0x804|Dodge_MCO-DXP.esl|1|0.6|0|0|0|0|0|0|0</hkparam>
Checking the .esl with SSEEdit shows that on the latest version of DMCO the stamina spell is in fact 0x804, but perhaps there's something else causing that line of code not to perform properly? I haven't tried changing it to the way Butterfly does it and recompiling yet since there's so many files. Going to automate it with python first or something so I don't have to spend hours doing that manually. Seems like it could be something with the way the patcher does the stamina conversion though, so I hope my investigation helps you update the tool (if you plan to).
Completely separate question (because I too would like to have the attack cancel functionality back), Where would I find the animation graph variable to change "MCO_DodgeAlwaysOn" to 1? I looked through the DMCO and Dodge Framework files but didn't see anything for that. I did find file #4802.txt to try that workaround, but have absolutely zero clue what to modify to patch it in the way you did. I know you can't share the file, but any tips on a place to start or the lines that need editing would be great.
Strange, theoretically, PIE.$DMCO_staminaCost should be an alias for @CAST|0x804|Dodge_MCO-DXP.esl|1|1|0|0|0|0|0|0|0. I'll take a look into this, thanks for the report! Does your PayloadInterpreter.log report anything unusual regarding this annotation?
For the animation graph variable, it is stored in Nemesis_Engine/mod/dmco/1hm_behavior/#0085.txt, in the "variableNames" field. I believe you can update it by opening Nemesis_Engine/mod/dmco/1hm_behavior/#0086.txt and setting the value at the location corresponding to the list in 0085 to 1, However, this is untested and may not work or even . After that, you need to regenerate the behavior using Nemesis.
Alternatively, regarding the #4802 file in Nemesis_Engine/mod/dmco/1hm_behavior (note: this is only tested with MCO installed, and may not work as expected with vanilla combat):
1. open it up in your favorite IDE or text editor 2. look out for the XML data between the `<!-- MOD_CODE ~dmco~ OPEN -->` and `<!-- CLOSE -->` comments (it's at the bottom of the file) 3. in the section, you'll find several `<hkobject> ... </hkobject>` blocks. Delete everything between the comments except the last block. 4. in the last remaining block, edit the following values: 4a. modify the "flags" hkparam field so it only has `FLAG_IS_LOCAL_WILDCARD|FLAG_UNINTERRUPTIBLE_WHILE_PLAYING` 4b. in the initiateInterval and triggerInterval blocks, set the value of the "enterEventId" and "exitEventId" hkparams to `-1`
Save the file, run Nemesis, update the engine and regenerate the behavior, then you should be good to go!
Thanks for the guide! Now I have the attack cancel working perfectly (editing the #4802.txt was necessary, so I thank you for the in depth instructions).
I was also able to get the stamina working perfectly by modifying your source .py files to just replace the stamina line with 'PIE.$DMCO_staminaCost' regardless of the weight. I wonder if the newest version of DMCO or PayloadInterpreter or something else in my load order just doesn't like the 0.6 value for some reason. Not ideal from a 1:1 conversion standpoint, but it worked lol.
It took some effort but I finally have the best dodge system I've been able to put together so far, thanks for the conversion tool and the help.
As for the logs, here is a newly generated log with the stamina still broken, and a newly generated log with the stamina fixed. I didn't see anything glaringly wrong in either, but you might know more. Hope I was able to help you and anyone else looking to replicate this in the future!
For those wondering what line I changed or how I modified the source files to correct the stamina consumption, I'll be honest it's been too long and I don't remember exactly what I did (nor do I have the files anymore). After reading what I'd already commented before and redownloading and looking at the source files (in this case the AnimPatch.py file), I believe I modified the line payload = f"{time} @CAST|0x804|Dodge_MCO-DXP.esl|1|{weight}|0|0|0|0|0|0|0" to be payload = f"{time} PIE.$DMCO_staminaCost"and then I compiled it into an .exe and used the patcher as normal.
I could be mistaken on if that's the exact change I made, but that was basically what I ended up having to do. Sorry it's not more in depth ✌️
For anyone looking for a patched Dynamic Dodge Animation for 2.1 DMCO, here's a link : https://drive.google.com/file/d/1bsUWClNP8LXUtQFZnbkY1utn7iTE_XzR/view?usp=sharing
Anyone has a patched version of Dynamic Dodge Animations that they are willing to share? I just cannot for the life of me get this tool or hkanno to work.
if anyone still can't get this to work, go to page 2, the mod author has a reply to one comment and I suggest you do it that way, it worked for me, folder names shouldn't be complicated because Powershell is erroring for dynamic dodge animation (MO2 guide only) install the dmco version, right-click, open in Explorer,open the folders till you see the 6000-6009 folders copy the contents make a new folder to your disk (for me it's E:) name it anims (it should be like this E:\anims) paste the 6000-6009 folder in E:\anims copy the hkanno64 files to this patcher files then, copy all files make a new folder again, name it tools, then make another folder named hkanno64 inside tools (it should be E:\tools\hkanno64) copy the combined content of hkanno64 files and this patcher file then paste it in E:\tools\hkanno64 after copying all files press shift+right click in E:\tools\hkanno64, a prompt that says Open PowerShell window here should pop up then use the following command .\AnimPatch.exe -a E:\anims -c E:\tools\hkanno64\hkanno64.exe
Hello i am trying to patch dynamic dodge animtions with this tool and i have created two folders named anims and tools in one of my computer partition root and put animations in anims and this patch and its requirements and when i try to patch dynamic dodge animtions i am getting this problem.
PS L:\tools> .\AnimPatch.exe -a L:\anims -c L:\tools\hkanno64\hkanno64.exe [+] Initiated patching process. [i] Operation: UPGRADE (0.9.X -> 2.0) [0xabba9733] Warning : Couldn't load DLL (C:\Program Files\Havok\HavokContentTools\filters\hctFilterTexture.dll [ Processing All Configurations... ] [ --- Configuration: Default --- ] *** There are no filters in this configuration. *** Finished in 05:30:00 [-] hkanno dump failed. Make sure it is installed in the correct location. PS L:\tools>
i have put this patcher files inside tools folder and hkanno64 folder inside tools folder
I have also checked havok and its installed currently and the dll its giving error for its in currect place too any suggestions to fix this issue will be appreciated
Edit so i able to fix my issue by copying this patcher files into hkanno64 folder then running the command in powershell patched dynamic dodge animations
could someone help me convert dynamic dodge properly to 2.1.x ? I can't get it to work correctly(like I can't enable attack cancel properly ) I tried to modify #4802.txt like mentioned below but I can't find the correct text to change.
129 comments
Changelog
1.0: full support for DMCO 2.1 (stamina and magicka consumption, including modifiers)
0.2: fixed iFrames not working after patch
However, stamina should be consumed successfully after the patch. If it isn't, this could be an issue with the patcher. Do you have a custom MCM value set or do you use the defaults?
I tested another DMCO mod that was made for the newer versions, Butterfly Dodge, and the stamina cost worked perfectly. Switched back to my attempt at updated dynamic dodge, and there was no stamina consumption. So it's not my installation of DMCO as far as I can tell.
I'm brand new to working with havok files but I decompiled them using HKXPack and tried to compare them to the working ones and may have an answer.
In Butterfly Dodge, it calls for the stamina spell like this:
<hkparam name="text">PIE.$DMCO_staminaCost</hkparam>
But with the Dynamic Dodge files that were updated with your tool it calls for the stamina spell like this:
<hkparam name="text">@CAST|0x804|Dodge_MCO-DXP.esl|1|0.6|0|0|0|0|0|0|0</hkparam>
Checking the .esl with SSEEdit shows that on the latest version of DMCO the stamina spell is in fact 0x804, but perhaps there's something else causing that line of code not to perform properly? I haven't tried changing it to the way Butterfly does it and recompiling yet since there's so many files. Going to automate it with python first or something so I don't have to spend hours doing that manually. Seems like it could be something with the way the patcher does the stamina conversion though, so I hope my investigation helps you update the tool (if you plan to).
Completely separate question (because I too would like to have the attack cancel functionality back),
Where would I find the animation graph variable to change "MCO_DodgeAlwaysOn" to 1? I looked through the DMCO and Dodge Framework files but didn't see anything for that. I did find file #4802.txt to try that workaround, but have absolutely zero clue what to modify to patch it in the way you did. I know you can't share the file, but any tips on a place to start or the lines that need editing would be great.
For the animation graph variable, it is stored in Nemesis_Engine/mod/dmco/1hm_behavior/#0085.txt, in the "variableNames" field. I believe you can update it by opening Nemesis_Engine/mod/dmco/1hm_behavior/#0086.txt and setting the value at the location corresponding to the list in 0085 to 1, However, this is untested and may not work or even . After that, you need to regenerate the behavior using Nemesis.
Alternatively, regarding the #4802 file in Nemesis_Engine/mod/dmco/1hm_behavior (note: this is only tested with MCO installed, and may not work as expected with vanilla combat):
1. open it up in your favorite IDE or text editor
2. look out for the XML data between the `<!-- MOD_CODE ~dmco~ OPEN -->` and `<!-- CLOSE -->` comments (it's at the bottom of the file)
3. in the section, you'll find several `<hkobject> ... </hkobject>` blocks. Delete everything between the comments except the last block.
4. in the last remaining block, edit the following values:
4a. modify the "flags" hkparam field so it only has `FLAG_IS_LOCAL_WILDCARD|FLAG_UNINTERRUPTIBLE_WHILE_PLAYING`
4b. in the initiateInterval and triggerInterval blocks, set the value of the "enterEventId" and "exitEventId" hkparams to `-1`
Save the file, run Nemesis, update the engine and regenerate the behavior, then you should be good to go!
I was also able to get the stamina working perfectly by modifying your source .py files to just replace the stamina line with 'PIE.$DMCO_staminaCost' regardless of the weight. I wonder if the newest version of DMCO or PayloadInterpreter or something else in my load order just doesn't like the 0.6 value for some reason. Not ideal from a 1:1 conversion standpoint, but it worked lol.
It took some effort but I finally have the best dodge system I've been able to put together so far, thanks for the conversion tool and the help.
As for the logs, here is a newly generated log with the stamina still broken, and a newly generated log with the stamina fixed. I didn't see anything glaringly wrong in either, but you might know more. Hope I was able to help you and anyone else looking to replicate this in the future!
payload = f"{time} @CAST|0x804|Dodge_MCO-DXP.esl|1|{weight}|0|0|0|0|0|0|0"
to bepayload = f"{time} PIE.$DMCO_staminaCost"
and then I compiled it into an .exe and used the patcher as normal.I could be mistaken on if that's the exact change I made, but that was basically what I ended up having to do. Sorry it's not more in depth ✌️
for dynamic dodge animation (MO2 guide only)
install the dmco version, right-click, open in Explorer,open the folders till you see the 6000-6009 folders
copy the contents
make a new folder to your disk (for me it's E:)
name it anims (it should be like this E:\anims)
paste the 6000-6009 folder in E:\anims
copy the hkanno64 files to this patcher files then, copy all files
make a new folder again, name it tools, then make another folder named hkanno64 inside tools (it should be E:\tools\hkanno64)
copy the combined content of hkanno64 files and this patcher file then paste it in E:\tools\hkanno64
after copying all files press shift+right click in E:\tools\hkanno64, a prompt that says Open PowerShell window here should pop up
then use the following command
.\AnimPatch.exe -a E:\anims -c E:\tools\hkanno64\hkanno64.exe
This is way too finicky for me.
+ FullyQualifiedErrorId : CommandNotFoundException
Using
EDIT
I managed to convert animations.
PS L:\tools> .\AnimPatch.exe -a L:\anims -c L:\tools\hkanno64\hkanno64.exe
[+] Initiated patching process.
[i] Operation: UPGRADE (0.9.X -> 2.0)
[0xabba9733] Warning : Couldn't load DLL (C:\Program Files\Havok\HavokContentTools\filters\hctFilterTexture.dll
[ Processing All Configurations... ]
[ --- Configuration: Default --- ]
*** There are no filters in this configuration. ***
Finished in 05:30:00
[-] hkanno dump failed. Make sure it is installed in the correct location.
PS L:\tools>
i have put this patcher files inside tools folder and hkanno64 folder inside tools folder
I have also checked havok and its installed currently and the dll its giving error for its in currect place too
any suggestions to fix this issue will be appreciated
Edit so i able to fix my issue by copying this patcher files into hkanno64 folder then running the command in powershell patched dynamic dodge animations
After reading the description zi lost on how to install am I missing anything