DocClox Posted April 18, 2012 Posted April 18, 2012 I've made some progress: I have a .NET program that compiles new mt_behavior.xml files. It uses the DOM to insert records into the original structure, so hkxcmd takes it no problem. it also skips animations that are already defined, so there's no danger of bloating the behavior file. I need to do some in-game testing, but if that goes well I should be looking for some alpha testers. What it principally needs now is a built-in bsa unpacker (unless anyone knows one that will extract specific files from the command line) and to call hkxcmd automatically. If I can do that, we'll have an animation mnagement tool that can be incorporated into the mod install procedure, or into utilities like FOMM or Wrye Bash. And even better, because of the way it identifies insertion points it should be robust against updates from Bethseda. Anyone interested in seeing some source code?
sbseed Posted April 18, 2012 Posted April 18, 2012 that is some sweet news doc... sure, i wanna see how you coded it.
shedidwhat Posted April 19, 2012 Posted April 19, 2012 I'm ready to do a fresh install of skyrim for alpha just say the word Doc
Lupus78 Posted April 19, 2012 Posted April 19, 2012 Ready for alpha. Would love to test it out. I've got fresh install on another computer.
PuddyTat Posted April 19, 2012 Posted April 19, 2012 Yes, I can test an alpha too. Sounds like excellent progress.
Pervert_from_hell Posted April 19, 2012 Posted April 19, 2012 Always ready to test some adult content for skyrim lol . How succes with skyrim sex ?
BronyGames Posted April 19, 2012 Posted April 19, 2012 Anyone interested in seeing some source code? I like source code.
BronyGames Posted April 19, 2012 Posted April 19, 2012 Sorry I haven't been responsive for the past week. A YouTube video I put up for a mod I made went viral and I got a bit overwhelmed. Then there was the call I got from Zenimax Media... probably not much help... but it could be something to look into as far as coding goes, you can learn how to code with C# hopefully at least. You don't have to worry about that. I've been learning how to program in C# in my CSE class for this semester. The part I'm having a little bit of trouble understanding (mostly because I haven't really had much time to do the research and practice) are the classes that are used to handle .XML files. There are many different methods available for things that, if you don't know any XML terminology, can look very similar, or just plain alien. (For anyone who may be confused about terms being used, a definition of a class can be found in the first paragraph on THIS By the way, great job getting some progress done, Doc.
DocClox Posted April 20, 2012 Posted April 20, 2012 By the way' date=' great job getting some progress done, Doc. [/quote'] Thank you. Exe and source code attached to this message Doc's Behavioral Animation Compiler (DBAC) A couple of caveats: The big one is that this doesn't quite work yet. I'm posting it here so we can get more than one brain working on the problem, so as yet, it's not fully functional. Specifically, it seems to break all animations in-game for human males and females. They just stand there in cruciform pose. Yes, that is a pretty big bug. On the other hand at least this generates XML that compiles, so it's a definite step forward. Secondly: Even when it does work, it's going to need some polish before it's fit for purposes. This is still pretty complicated to use and probably nod for the casual user. Thirdly: the language is Boo and it's set up with a Makefile rather than a studio solution. Lastly: it doesn't do anything in game. It just makes animations available in the CK. What it does DBAC scans E:\games\Skyrim\Data\meshes\actors\character\animations looking for a folder called dbac. If it finds one it makes a list of .hkx files and uses that list to create new havok XML files. The files should show up in the CK as their filename, without the path or the extension and with a z-prefix, just in case the alphabetic ordering is important. You can have sub-folders and "\" chars are converted to __ (double underscore) in the animtion event name. Duplicate events are not added, so if there's already an animation called foo.hkx, it shouldn't try and add a second zFoo to the game. It also scans animations\FNIS and adds them in too. The effect is that this should be compatible with FNIS, in the sense that you'll be able to install this over FNIS or use it with FNIS based mods. The reverse is not true however. The new entries are added by manipulating the XML DOM rather than the crude cut and paste job from my first attempt. This should mean the XML is at least well formed. There's also a rough outline of an XML compare prog in there. It doesn't actually do the comparison ATM - just takes a pair of XML files and pretty-prints them, sans comments, to temp.1xml and temp2.xml. I've been generating the temp files and then running cygwin diff from the command line. Included in case anyone has a use for it. Procedure Unpack dbac.zip (or extract dbac.exe and Boo.Lang.dll) into your Skyrim/Data folder Back up any custom E:\games\Skyrim\Data\meshes\actors\character. You can get away with just copying mt_behavior.hkx and the large versions of defaultmale.hkx and defaultfemale.hkx if you want. Extract the files you just backed up from the BSA file. You can probably use existing ones if you want, but this is the basic procedure. Convert the files in question to xml using hkxcmd Run dbac.exe. If all goes well it should create 3 new xml files in Data: out.xml, male.xml and female.xml. These correspond to mt_behavior.xml, defaultmale.xml and defaultfemale.xml Optionally, inspect the generated files, compare against the templates and satisfy yourself that they seem ok. copy the new XML files over their originals and convert back to hkx with "hkxcmd convert -v:WIN32 mt_behavior.hkx mt_behavior.xml" Fire up skyrim and/or the CK and test. Bugs Probably infinite. This is a very raw alpha. Good places to start looking are probably the default male/default female files, since they've had the least checking. Acknowledgments None of this would be possible without FOMM for the BSA unpacker and figment's hkxcmd. It also wouldn't be possible without Fore who found the insertion points and annotated mt_behavior.xml. I doubt the two of us are ever going to be get along, but credit where credit is due.
DocClox Posted April 20, 2012 Posted April 20, 2012 OK, I can extract the hkx files from the BSA now. All I need do now is make hkxcmd convert the hkx->xml and back and we'll be ready for a second version And then if I can find the crufiform problem, I'll look at releasing this sucker to Nexus
deathstalker Posted April 20, 2012 Posted April 20, 2012 DOC = XML and HKX Einstein!! will be awaiting this one patiently, I can help test and lend a hand anyway I can, Keep on rockin' in the free world Doc
xiro8877 Posted April 20, 2012 Posted April 20, 2012 Thanks so much for your hard work Doc. Hopefully we'll have more animators starting to work on animations since we're getting systems in place!
deadmetal Posted April 21, 2012 Posted April 21, 2012 Ok im quite confused at the minute, a while back people were going on about FORE's system that somehow "Saved" animation modding in skyrim but obviously the mystical DocClox is also working on his own system, so does FORE's system not work effectively? or is it that he's being rediculously possessive of his own work?
diel Posted April 21, 2012 Posted April 21, 2012 Ok im quite confused at the minute' date=' a while back people were going on about FORE's system that somehow "Saved" animation modding in skyrim but obviously the mystical DocClox is also working on his own system, so does FORE's system not work effectively? or is it that he's being rediculously possessive of his own work? [/quote'] afaik basically What Fore did was create a way to add animations to skyrim, the issue was that it only would work for one mod at a time, what doc did/is doing is making a generator thing which will combine multiple mods into one behavior file which will let you use more then one animation mod at a time, doc's stuff should also just generally make it easier to add animations in as you won't have to do a lot of it by hand.
CrisG9 Posted April 21, 2012 Posted April 21, 2012 Do we have a working mod that adds sex animations to Skyrim yet? sorry for not going back thru 52 pages of thread..just hoped someone could reply quickly if they have time thanks. I have created finally a customized Lydia with a very sexy body and outfit but she dosent do anything yet
deathstalker Posted April 21, 2012 Posted April 21, 2012 Try out this one for the time being, Doc is cooking up something big by the sounds of it so this should tie you over till then, here's the link: http://skyrim.nexusmods.com/downloads/file.php?id=10748 like i said just for now, until something else comes out, it will probably blow this one out of the water. so just keep checking back til then
shedidwhat Posted April 21, 2012 Posted April 21, 2012 Just read on Tina's blog she is working on bringing her Oblivion mod to Skyrim. that makes my tail wag
DocClox Posted April 21, 2012 Posted April 21, 2012 First of all, new release: This one pulls a pristine copy of the hkx files out of the BSA and modifies them. It also calls hkxcmd, so you'll need that hkxcmd installed in your skyrim\data folder. I've not looked at the actual XML bug yet, but now I've got this out of the way I can do that a little more conveniently. Kudos to kaburke and timeslip of FOMM fame. The built-in BAS extractor is basically their code, cut down and converted into Boo. [edit] It would help a lot if I actually attached the attachment. Should be fixed now. [editty edit] I just tested this in the CK for the first time in a while. No animations show up at all. Yeep. On the brightside, we no longer have everyone standing cruciform in-game. So there is some good news. Investigations proceed. Ok im quite confused at the minute' date=' a while back people were going on about FORE's system that somehow "Saved" animation modding in skyrim but obviously the mystical DocClox is also working on his own system, so does FORE's system not work effectively? or is it that he's being rediculously possessive of his own work? [/quote'] First of all, Fore's system works. There are however limitations. The principle one the limited number of slot. We have 360 slots available. The sounds like a lot until you consider that these are going be shared by every animator modding for Skyrim. The problem is that if two mods use the same slots, their animations are going to overwrite one another. So you might ask your slave for a BJ and find she does the Macarena instead. Which would be funny the first time it happened... Fore has two proposed solutions. In the long term he's going to write a wrapper that scans lots of ini files and copies your animations into arbitrary slots, and then uses a SKSE call to read the ini files at run time and let you call your animations by name rather than by idle. Which is all very well, but it isn't here yet. The next SKSE release is in closed beta which means he might have it real soon ... or not. Meanwhile, he's letting "SERIOUS modders" reserve blocks of 10 lots, but only if they ask him nicely. This means that if someone uses your slots you have the right to shout at them. And a lesser problem: FNIS needs the animation files to be called FNIS001.hkx, FNIS002.hkx ... etc etc which makes it really hard to tell what's in 'em. You can copy them into one of fore's reserved slots and use one of his test spells in-game to find out, but with all due respect to fore, that's hardly as convenient as reading a descriptive file name. It's also not always very helpful, especially if you're trying to work out where one of JoshNZ's one second "twitches" fits. My approach is to rewrite the XML files and rebuild them. No one needs permission from fore, no ini files are involved, we don't need SKSE to make it work, and you keep your own filenames. We still get the lookup by name courtesy of the animation framework in the sexrim behavior thread. I'm using fore's XML as a template, so we SKSE stands to be released next week. For all I know fore has a copy of the beta and he might be out here with a working release, which I'm sure he'll do with his usual modesty and good grace. Meanwhile, I'm going to finish debugging this and turn it loose on the world. It's compatible with FINS, so it won't break FNIS based mods, it does things FNIS can't and it won't need any ini files. I hope that makes things a little clearer.
remois Posted April 21, 2012 Posted April 21, 2012 Well as for ini/cfg/csv (or whathever) file you may, in the future, have to make one... To keep track of installed mods and permit a clean uninstall... As for getting the pristine file from bsa, it may be risky in the long term... Bethesda may override it in his dlc (or make new one, if so it would be great to look how they fit it but we are not there, right?) What could be done though could be getting the hkx from the bsa, scan for an existing override, merge the two, then add the new anim (possibly leave in a file aside what has been added)... That way it may become update, uninstall AND override proof... Later you will be able to had uninstall with(out) deleting anim files (and if the mod/s that use it is/are referenced in the side file, issue a warning if the mod itself is activated... If we override the hkx with an mod that provides it's own re-add them... Should be easy as pie to let a bit of room to add this later with clean programming (I'm not speaking of coding the actual feature yet) Of course it's going far ahead than were we are, but as a programmer myself (though I am java more than c#), I learned to think about what I may have to add later and program in a way that I can add it easily when I get around to it... Teachers told me something that can roughly be translated by "Be lazy: think ahead." And I know that at least the first part is true for me XD
DocClox Posted April 21, 2012 Posted April 21, 2012 Well as for ini/cfg/csv (or whathever) file you may' date=' in the future, have to make one... To keep track of installed mods and permit a clean uninstall... [/quote'] I'm not against config files. But I'd prefer to avoid unnecessary ones. Especially when each animator needs to keep his or her own. That said we almost certainly will need them in the future when we get on to making complex behaviors rather than simple animations. As for getting the pristine file from bsa' date=' it may be risky in the long term... Bethesda may override it in his dlc (or make new one, if so it would be great to look how they fit it but we are not there, right?) [/quote'] They might. But so far they seem to be happy to update the respective BSA files. If they change the system that radically, we'll need to re-code. I think I'm happy cross that bridge if I ever come to it. What could be done though could be getting the hkx from the bsa' date=' scan for an existing override, merge the two, then add the new anim (possibly leave in a file aside what has been added)... That way it may become update, uninstall AND override proof... [/quote'] It's not a bad idea, either. Except I'm not sure what you'd gain from the exercise at this time. Eventually there are going to be animations that use more complex behaviors. They will need config files and probably some tweaking in the hkx files to accommodate them. Probably still nothing that can't be generated though. Still, if you want to do the DOM merging code, feel free Later you will be able to had uninstall with(out) deleting anim files (and if the mod/s that use it is/are referenced in the side file' date=' issue a warning if the mod itself is activated... If we override the hkx with an mod that provides it's own re-add them... Should be easy as pie to let a bit of room to add this later with clean programming (I'm not speaking of coding the actual feature yet) [/quote'] We can do that now. Remove the ESP, leave the hkx file and it should still work. Well, when it does work, it should still work I can see issues with Wrye Bash mind, but one problem at a time Of course it's going far ahead than were we are' date=' but as a programmer myself (though I am java more than c#), I learned to think about what I may have to add later and program in a way that I can add it easily when I get around to it... Teachers told me something that can roughly be translated by "Be lazy: think ahead." And I know that at least the first part is true for me XD [/quote'] I can't disagree.
remois Posted April 21, 2012 Posted April 21, 2012 I'm not against config files. But I'd prefer to avoid unnecessary ones. Especially when each animator needs to keep his or her own. That said we almost certainly will need them in the future when we get on to making complex behaviors rather than simple animations. I think you misunderstood... I'm speaking of a unique file that is managed automatically by your program only... The kind of file that neither modder nor users should open and that is only used by your program to keep track of what is installed... (I realize that the term config file is misleading, but I was thinking more to the format of cfg files than their use itself) For example your adds an animation in a file your program write in a file a line like (i used csv for this case): "name of idle";"name of mod";"name of anim file";"insertion key(s) in the xml files";"other meaningful info if any" Each anim you add with your program will write this kind line... The gain is that it's easier to search for conflicts, it permit to easily find what to search in the dom by having the modified lines referenced... As for the coding sorry other personal project eat to much of my time for now...
DocClox Posted April 21, 2012 Posted April 21, 2012 I think you misunderstood... I'm speaking of a unique file that is managed automatically by your program only... The kind of file that neither modder nor users should open and that is only used by your program to keep track of what is installed... (I realize that the term config file is misleading' date=' but I was thinking more to the format of cfg files than their use itself) [/quote'] Ah, right. Your comment about uninstalling makes more sense in that light as well. It would be useful to be able to tell the user clips from the beth ones if nothing else.
remois Posted April 22, 2012 Posted April 22, 2012 Yep the file itself is not that hard to make, but using it efficiently is harder though... Well, for now the best is to concentrate on making it work well... That said we almost certainly will need them in the future when we get on to making complex behaviors rather than simple animations. By curiosity what king of config can be useful for those complex behavior? Something like position between two actors?
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