Modding SSF4AE for PC (NO DLC UNLOCKS!)

17810121368

Comments

  • brad86brad86 Joined: Posts: 55
    edited May 2013
    .
    Post edited by brad86 on
    ygu28.jpg
  • sloth86sloth86 Joined: Posts: 286
    Really interesting finds! Yeah I kinda understand how the files work but not all the datas they contain. :D

    Like the obje.emo, I found some stuff on the 2nd part but I don't understand what it does. o_O

    I found out some more stuff reading source code. I used your screenshots here, and wrote my explanations in red

    2nd part of the emo contains skeleton info
    03.jpg

    offset 00: E0 number of entries (224 in decimal) = total number of nodes

    offset 04: 11 ?

    offset 08: 40 1st part = skeleton start offset. here the data are 80 bytes (224 blocks). each block represents a node

    04.jpg
    offset 40: parent node of this node. FFFF if there is none (ie this is a root node)
    offset 42: ID number of this node
    offset 44, 46, 48: child node1, 2, and 3. FFFF if none
    offset 4A-4F: always a bunch of 00s
    offset 50-8F: the joint matrix of this node. Consists of 16 float decimals. Written as a matrix, it's:
    [ 1 0 -0 | 0]
    [ 0 1 -0 | 0]
    [-0 -0 1 | 0]
    [ 0 0 -0 | 1]

    offset 0C: 4D40 index of offsets of the 224 names
    14.jpg
    1st name's offset: 50C0. These are the names of all the nodes.

    13.jpg

    offset 18: 4640 end of 1st part, "00 00 00 00 FF FF 00 00" written 224 times
    11.jpg

    offset 1C: 5B30 2nd part, here the data are 64 bytes (224 blocks)
    10.jpg

    offset 20: 9330 end of 2nd part, bunch of datas
    12.jpg[/quote]
  • error1error1 Joined: Posts: 421
    has anyone figured out what it takes to switch around stages? in vanilla it was easy, but simply renaming seems to cause a black stage.
  • hunterkhunterk Joined: Posts: 2,237
    @error1
    you should be able to replace them by renaming and then open in a hex editor and find-and-replace all of the 3-letter name abbreviations (TRN or whatever) with those of the one you're replacing.
  • yoroshikuonegaishimasuyoroshikuonegaishimasu Joined: Posts: 10
    @yoroshikuonegais himasu
    The first thing I would try would be changing the material in the obj.emm file to see if that helps. Kraga Phan's specularity trick might have an effect, too, though I kinda doubt it.

    Thanks for replying. Can someone give me a bit more information please? How do I change the material in the obj.file? And change it to what? Thanks.
  • hunterkhunterk Joined: Posts: 2,237
    @yoroshikuonegais himasu
    You have to open the obj.emm file in a hex editor, find the offending section (probably named 'hair' in your case), then locate the material (it's the first thing after the name; probably something SpcBumpBrush or something like that). Overwrite that material with that of something else that you were successful modifying, like his body material or his boot material (make sure you don't add/subtract any text; it needs to stay the same size). You can also try NanjouJ's MatEdit tool (get it from the 'tools' page on the wiki), which alleviates the need for manual hex editing.
  • yoroshikuonegaishimasuyoroshikuonegaishimasu Joined: Posts: 10
    @yoroshikuonegais himasu
    You have to open the obj.emm file in a hex editor, find the offending section (probably named 'hair' in your case), then locate the material (it's the first thing after the name; probably something SpcBumpBrush or something like that). Overwrite that material with that of something else that you were successful modifying, like his body material or his boot material (make sure you don't add/subtract any text; it needs to stay the same size). You can also try NanjouJ's MatEdit tool (get it from the 'tools' page on the wiki), which alleviates the need for manual hex editing.

    Thanks a lot for the information, I appreciate it. I'm a bit busy at the moment, but I'll look into this and report what happens. Thanks again.
  • yoroshikuonegaishimasuyoroshikuonegaishimasu Joined: Posts: 10
    I've opened it in a hex editor (never used one for anything before) and am understandably more than a little confused... I've found the 'SpcBumpBrush' you mentioned beneath 'hair', and tried to look for another mention of this from something that shows up okay on the model - in this case his 'armband'. However, the line of text is exactly the same as the one beneath hair?

    hair material - SpcBumpBrush_UV1_W
    53 70 63 42 75 6d 70 42 72 75 73 68 5f 55 56 31
    5f

    armring material - SpcBumpBrush_UV1_W
    53 70 63 42 75 6d 70 42 72 75 73 68 5f 55 56 31
    5f

    I thought maybe I'd try copying and pasting the numbers from a different line (armring material) to the hair material but if it's exactly the same that won't do anything...

    I've read and re-read your original reply, can you give me more information please?
  • hunterkhunterk Joined: Posts: 2,237
    hmm. you did the right stuff, so that option isn't going to work, it appears.

    I'm not sure what else could be done. I looked at a bunch of old vanilla mods to see if there were any with different-colored hair to copy from, but I couldn't really find any. They were all either black or transparent... If I think of anything else, I'll post here or PM you.
  • yoroshikuonegaishimasuyoroshikuonegaishimasu Joined: Posts: 10
    hmm. you did the right stuff, so that option isn't going to work, it appears.

    I'm not sure what else could be done. I looked at a bunch of old vanilla mods to see if there were any with different-colored hair to copy from, but I couldn't really find any. They were all either black or transparent... If I think of anything else, I'll post here or PM you.

    Thanks. I actually think it's something Capcom did in a strange fashion... Despite their predeliction for dark colours and shades throughout SFIV, I checked again and the default textures (.dds) for Zangief do have brown hair (not black), quite noticeably so. Also, I was looking at some old magazine pages from my Capcom folder today and I saw a number of screenshots of Zangief with a black mohawk that looks distinctly untextured (just like a big, black, block of polygons). Even by default, the game isn't displaying what's on the dds correctly(?). Again, his chest hair is the same...brownish on the dds, but almost black in-game...
  • sensibeatsensibeat otaku Joined: Posts: 343
    I found out some more stuff reading source code. I used your screenshots here, and wrote my explanations in red
    2nd part of the emo contains skeleton info
    Great breakthrough!
    I've seen your cammyoda in the other thread, it opens so much possibilities.
    Is it tough to manually change the link between an object and a bone?

    I haven't tried your script yet (I'm on a laptop atm and I don't have all my stuff).

    About your question on emm in the other thread, I haven't found a way to add materials manually in hex and if I remember well it didn't worked using matedit either.
  • KaiserPhoenixKaiserPhoenix Joined: Posts: 31
    I just downloaded Ono's moveset editing program, and I must say very nice work, I can edit and make chain combos easily now. I have a couple of quick questions,

    1. "Does anyone know which option allows you to edit your move effects on the opponent?" For an example, I am trying to make my crouching fierce punch launch my opponent for easier air Combos. Any Ideas on how and where to edit this?

    2. "Where can I find the option on how far, and high I can knock my opponent?" For an example, after I perform my crouching fierce punch I want the opponent to just go directly straight up, instead of up and 7" inches to the right.

    Again thanks for such a nice program guys, and good work to each and every one of you for making it possible to edit using your modding tools
  • iAfroiAfro Joined: Posts: 1
    can anyone tell me how can i open the files to edit their outfits. the only thing that looks familiar is the .obj, however its blocked off with the .emm file extension.
  • sloth86sloth86 Joined: Posts: 286
    Great breakthrough!
    I've seen your cammyoda in the other thread, it opens so much possibilities.
    Is it tough to manually change the link between an object and a bone?

    I haven't tried your script yet (I'm on a laptop atm and I don't have all my stuff).

    About your question on emm in the other thread, I haven't found a way to add materials manually in hex and if I remember well it didn't worked using matedit either.

    Changing what bones an object links to is actually pretty easy. At first I thought each vertex in an EMG refers to some bone ID found in the EMO. Not the case. The number of bones used in a submesh is first counted at the start of the submesh data. Here's cammy's cap emg again, the bone count is circled in green (only 1 bone used here):
    ex3s.jpg

    At the end of each submesh section, after all the face data, the bones are listed. I believe it's from this list that the vertices later refer to later at the bottom of the EMG. There's only one bone here, bone C3 00 or bone #195:
    ex4.jpg

    If you look back at cammy's EMO file, bone #195 is a bone called SCD_00_01_Hair1. Not sure what kind of bone that is, but I think it would work just as well if we change it to the head bone or neck bone or whatever. So you just need to change that value. For example if you were to import cammy's cap EMG to Ken's EMO, you would change 195 to 8 or whatever the bone ID is for Ken's head bone.
  • hunterkhunterk Joined: Posts: 2,237
    @iAfro
    There are tutorials for all of the basic editing and some of the more advanced stuff:
    http://sf4mods.pbworks.com/Tutorials
    http://aemods.pbworks.com/Tutorials

    I recommend the updated skinning guide and the intro to model editing to get started. After that, sensibeat's col-based transparency will get you up and running on the hex stuff.
  • KaiserPhoenixKaiserPhoenix Joined: Posts: 31
    Hey Hunterk, thanks for suggesting the tutorials, but I don't see anything about customizing the BAC file. Can you point me towards a tutorial that explains BAC and BCM file editing?
  • yoroshikuonegaishimasuyoroshikuonegaishimasu Joined: Posts: 10
    I took a screenshot to test what was happening with Zangief's textures. Notice the ridiculously vivid green I used for the purpose of this and then note how dark it appears on the model. The image on the right is my original brown hair and again, shown quite drastically darkened on the model itself...

    ss2.jpg
  • hunterkhunterk Joined: Posts: 2,237
    @KaiserPhoenix
    heh, sorry, that post was intended for iAfro. Unfortunately, I know very little about bac/bcm editing and I don't think there are any tutorials written for it yet. I think dantarion and co. are still working on documentation, but they were very helpful and informative when I spoke with them in IRC. So, maybe play around until you get stuck and then hit them up there for some tips.

    @yoroshi
    yikes, that *is* some srs darkening. I just checked his model and it doesn't appear to be a problem with ambient occlusion (the darkening/shadowing that occurs on some characters' limbs underneath clothing items, such as Chun Li's bracelets)... His skin looks okay, so have you tried renaming the hair sections in the obj.emo (not the obj.emm) to, say, "body" or "leg" (this is the crux of Kraga Phan's specularity trick)?
  • KaiserPhoenixKaiserPhoenix Joined: Posts: 31
    Oh ok Cool, Thanks for responding Hunterk. I'll just mess around with the script portion of Dontarion's program to see what happens. Sometimes the best way to learn something is through trial and errors. Thanks again
  • sloth86sloth86 Joined: Posts: 286
    Got a couple programs to put out here:

    EMG Swapper: http://www.mediafire.com/?wpvh9csjunj76te
    This is just compiled .exe of my previous script.
    1. Type in the filename of the .obj.emo you want to swap into (must be in the same directory as this exe
    2. Type in the number of the EMG you want to swap out. Find this number out using piecemontee's SF4 assets explorer
    3. Type the filename of the EMG you want to swap in. (must be in the same directory)
    4. Type a name for the new emo file to be saved as.

    DDS Reference Editor: http://www.mediafire.com/?9ci7xgx9ikrjkuk
    After you swap in EMGs into an .emo file and after you added DDSs to .col.emb and .nml.emb, you can use this to save yourself the hassle of changing every single DDS references in the emo file. You can change the references of a specific EMG in an emo file and add +1 to the normal map reference for every other EMGs (just check the box).
    Note: If the emg whose references you're changing makes use of more than 1 set of texture and normal map, this will changle all of them to the same references. You're gonna have to reedit them manually via hex editor.
  • hunterkhunterk Joined: Posts: 2,237
    wow, awesome stuff there, sloth86! I'll get those copied to the wiki.
  • AlietteFayeAlietteFaye Joined: Posts: 31
    Got a couple programs to put out here:

    EMG Swapper: http://www.mediafire.com/?wpvh9csjunj76te
    This is just compiled .exe of my previous script.
    1. Type in the filename of the .obj.emo you want to swap into (must be in the same directory as this exe
    2. Type in the number of the EMG you want to swap out. Find this number out using piecemontee's SF4 assets explorer
    3. Type the filename of the EMG you want to swap in. (must be in the same directory)
    4. Type a name for the new emo file to be saved as.

    DDS Reference Editor: http://www.mediafire.com/?wpvh9csjunj76te
    After you swap in EMGs into an .emo file and after you added DDSs to .col.emb and .nml.emb, you can use this to save yourself the hassle of changing every single DDS references in the emo file. You can change the references of a specific EMG in an emo file and add +1 to the normal map reference for every other EMGs (just check the box).
    Note: If the emg whose references you're changing makes use of more than 1 set of texture and normal map, this will changle all of them to the same references. You're gonna have to reedit them manually via hex editor.

    This is the same link twice? owo
  • sloth86sloth86 Joined: Posts: 286
    This is the same link twice? owo
    oops, fixed it
  • sensibeatsensibeat otaku Joined: Posts: 343
    Changing what bones an object links to is actually pretty easy. At first I thought each vertex in an EMG refers to some bone ID found in the EMO. Not the case. The number of bones used in a submesh is first counted at the start of the submesh data. Here's cammy's cap emg again, the bone count is circled in green (only 1 bone used here):

    At the end of each submesh section, after all the face data, the bones are listed. I believe it's from this list that the vertices later refer to later at the bottom of the EMG. There's only one bone here, bone C3 00 or bone #195:

    If you look back at cammy's EMO file, bone #195 is a bone called SCD_00_01_Hair1. Not sure what kind of bone that is, but I think it would work just as well if we change it to the head bone or neck bone or whatever. So you just need to change that value. For example if you were to import cammy's cap EMG to Ken's EMO, you would change 195 to 8 or whatever the bone ID is for Ken's head bone.

    Thank you! It worked great:
    2z6xx6x.jpg
    I used the 2nd script you gave in the other thread to swap the emg, the one here didn't worked.

    edit:
    I tested your 2 programs, they don't want to run under my windows version (vista 32 bits)
  • sloth86sloth86 Joined: Posts: 286

    I tested your 2 programs, they don't want to run under my windows version (vista 32 bits)

    Crap, i think the compiler is probably set to x64 by default. I recompiled them here. I think it should work now?

    EMGSWAPFULL32.exe:
    http://www.mediafire.com/?r6nfk67u8px74pp

    DDSREFEDIT32.exe:
    http://www.mediafire.com/?jixmzgalcolih2d
  • sensibeatsensibeat otaku Joined: Posts: 343
    Crap, i think the compiler is probably set to x64 by default. I recompiled them here. I think it should work now?
    EMGSWAPFULL32.exe:
    http://www.mediafire.com/?r6nfk67u8px74pp
    DDSREFEDIT32.exe:
    http://www.mediafire.com/?jixmzgalcolih2d
    Yes, thank you, it works now.
  • buzzer25buzzer25 Joined: Posts: 185
    Thanks alot to the guy posting simplified stages for ae on wiki mod pages.... keep up the good work....p.s. remove all the kids from the bridge stage, and leave one giraffe in solar eclipse stage-just a suggestion, you do what you think it's best ;)
  • DantarionDantarion Joined: Posts: 258
    Hey Hunterk, thanks for suggesting the tutorials, but I don't see anything about customizing the BAC file. Can you point me towards a tutorial that explains BAC and BCM file editing?
    There isn't one. Come to #sf4-modding.
  • KaiserPhoenixKaiserPhoenix Joined: Posts: 31
    There isn't one. Come to #sf4-modding.
    Hey Dantarion, I ran across one of your old post that had some of your old dumps in it. I find it helpful, but I am still having no luck figuring out how to customize the effects of the hitbox. For example, I want 2HP to launch the opponent so I could perform a max air juggle of six. When I open the program "Ono's" and i click on BAC - Scripts, I see all the parameters for the hitboxes, but I also see alot of Unknown Hex options. Is any of the unknown options considered the "Launch" effect of the attack? Or am I looking at the wrong options? Should I check in the HitBox Table for the launch effect? Again thank you for all your help guys.
  • AlietteFayeAlietteFaye Joined: Posts: 31
    Yes, thank you, it works now.

    You got it to work for Viper? Nice! Any chance of getting of a tutorial on how to it? It'd be great. :3
  • MisucraMisucra Joined: Posts: 32
    Yo guys. I have a tiny little problem and I am still newbie with all the skinning/modding process. Can someone help me find solution how to change this effects fully?

    This one has still that purple color even if it is a little, it still annoys me. It seems I changed all textures I could find. Did a lot of trial and error, but nothing. Maybe I have to go deeper?
    effectsy.jpg
    And this one is the same problem can't find the dds or any other file which could help me change the color of this eye effect
    effects2.jpg

    I would really appreciate any kind of help
  • DantarionDantarion Joined: Posts: 258
    Hey Dantarion, I ran across one of your old post that had some of your old dumps in it. I find it helpful, but I am still having no luck figuring out how to customize the effects of the hitbox. For example, I want 2HP to launch the opponent so I could perform a max air juggle of six. When I open the program "Ono's" and i click on BAC - Scripts, I see all the parameters for the hitboxes, but I also see alot of Unknown Hex options. Is any of the unknown options considered the "Launch" effect of the attack? Or am I looking at the wrong options? Should I check in the HitBox Table for the launch effect? Again thank you for all your help guys.
    It would be in the HitBoxTable.
    Honestly, if you want help to do things, you almost have to come to the IRC. Theres no use writing a tutorial when the program changes every day! And answers I give you now may change soon because of changes to the terminology and UI of the program
  • DantarionDantarion Joined: Posts: 258
    Also, the hitboxtable is almost completely wrong in terms of displaying the hit effects, sfx, and a bunch of other stuff.
    Me, anotak, Zeipher, and pol are the main ones using the program, and the versions we are using haven't been posted outside of #sf-modding.

    Me and anotak are working on the program daily, and Zeipher and pol are using it and helping us figured out all of the unlabeled/unknown data.
  • sloth86sloth86 Joined: Posts: 286
    couple new model modding tools:

    OBJ2EMG converter http://www.mediafire.com/?v2ip2l2dadvw8d4
    *edit: new version: http://www.mediafire.com/?38ncj8d682a0fx4
    Converts .obj files to .emg. I'm sure it's still buggy, may not work on everything.
    There's a few limitations:
    - if the .obj has multiple groups in it, they will all be turned into one single mesh in the emg
    - the resulting emg will be static, you can only assign it to one bone
    - street fighter iv models have ambient occlusion values baked into them, but here you can only assign the same value to all the vertices in the emg
    - the resulting EMG will have 0 and 1 by default as its DDS references for texture and normal map respectively. You can change this by hex editing or by using my DDS reference editor tool after you import the emg into an emo file.
    How to use this:
    1. I would first do a quick rescale and rotate on the obj I want to import so it fits the character you want to use it for.
    2. Type in the filename of the .obj in the same directory
    3. type in what you want the name for it to be inside the emg
    4. type in the bone ID you want the object to be attached to (to find out you can use the skeleton extractor tool below). Note that Bone IDs are numbered starting from 1, unlike in SMD files where they're numbered starting from 0.
    5. You can leave the ambient value as it is. Default is FDFDFD which is a light gray and matches most other objects in the game.
    6. Type a save as filename. It may take up to like 5 min for it to write the emg. A popup window will appear when done.
    7. To import the emg into a character emo file you can use my EMGSWAP tool

    EMO Skeleton 2 SMD http://www.mediafire.com/?8pv9oa2ag42xs16
    Extracts the skeleton from a character EMO file and saves it as an SMD file. I guess you can't really do much with this except use it to look up Bone IDs, bone names, and their positions. Also I should mention the skeleton in the SMD is scaled up 20000% so I can see it in Milkshape3d, so just scale it down by 0.05% if you want it back to its original size. Also SCD nodes are what dynamic stuff like loose clothing or hair are attached to.
  • hunterkhunterk Joined: Posts: 2,237
    @sloth86
    Nice! Obj2EMG is one of those fundamental, previously impossible conversions that had been holding up progress. Thanks for sharing all of your work with the community!
  • KaiserPhoenixKaiserPhoenix Joined: Posts: 31
    Also, the hitboxtable is almost completely wrong in terms of displaying the hit effects, sfx, and a bunch of other stuff.
    Me, anotak, Zeipher, and pol are the main ones using the program, and the versions we are using haven't been posted outside of #sf-modding.

    Me and anotak are working on the program daily, and Zeipher and pol are using it and helping us figured out all of the unlabeled/unknown data.
    OK, I thought something like that was the issue. I can figure out some of the tables, but the unknown stuff is whats throwing me off. Thanks alot for responding Dantarion. You guys are doing a great job with this stuff I use to code DOSMugen daily, but i didn't have the time for it anymore. I'll tinker around with it myself, or be patient enough for you guys to post a documents or such. Thanks again guys.
  • chenfanchenfan Joined: Posts: 6
    could any Mod expert help me in making a patch for Chun-Li to rectify her move's frame data in the real gameplay? i wanna adjust Chun-Li's Hyakuretsukyaku to 10 frame hit adventage instead of 7.thanks a lot
  • orgoloveorgolove Maximum Modding Joined: Posts: 87
    @Dantarion:

    I assume you already found the offset that controls which byte controls which fireball from being fired.

    Sigh. I can't get IRC working. Why keep the versions in the irc only? -_-
  • DantarionDantarion Joined: Posts: 258
    You can use mibbit.com to get in the IRC.
    The versions change a lot every day.

    I just haven't made a build system yet.
    I will do that soon. The program is now 2 seperate programs and a set of python data files with the character VFX and animation names.
    Its getting more complex very fast.
  • seijuro475seijuro475 Joined: Posts: 51
    Does anyone know if its possible to mod the game so that each character can use both there ultras at once instead of being selectable.

    also, i think i found the effect file for colour 12, and i wondering if someone knows where the effects in the graphic settings files are. want to see if it can switch them so that all 10 colours will have the cross hatching

    and one last thing. when i export an emg that has multiple pieces in it to an obj file, then open it in maya and export back into the asset explorer, says that triangles eddition is not allowed. it only does this to the emg with multiple pieces in it. also if i delete all the pieces except the first one, i can manage to import it in, but all the ones after still wont. does anyone know how to fix this issue?

    thanks
Sign In or Register to comment.