Monday, September 19, 2011

SSF4AE - Swapping Static Objects with sloth86's Tools

Swapping static objects with sloth86's tools.
copyright sensibeat

sloth86's toolshttp://aemods.pbworks.com/w/page/42053948/aetools#Sloth86sModelSwapTools

piecemonteeSF4explorerV0.37b.exehttp://sf4viewer.sourceforge.net/

With this method you can only swap static objects assigned to 1 bone.

First chose a .obj you want to swap:


Chose a character and extract the full model as a .obj with sf4explorer:


You'll have to edit the model in your 3D editor to fit the character:


¤ More infos about that part here: http://filthypants.blogspot.com/2009/08/beginners-guide-to-sf4-model-editing.html

¤ To open the .obj in 3ds max you may need to open it and save it in misfit model 3d first.

Now you have your model in place save it and open EMG2SMD.exe:

I want to swap my cap with zangief's hairs (15th #EMG -as viewed in sf4explorer-)

Open the smd in notepad and look for the number of the bone you want to link your object to:

in that case I want to link to the "head bone": #6.

¤ More infos on smd here: http://developer.valvesoftware.com/wiki/Studiomdl_Data

Now you can use OBJ2EMG.exe:

¤ To use a .obj from 3ds max in OBJ2EMG you may need to open it and save it in misfit model 3d first.

Then use EMGSWAP.exe:


We aren't done yet, it needs some textures (diffusion+normal map dds):

¤ See other tutorials to add dds to your col.emb and nml.emb...

Then use DDSREFEDIT32.exe (I renamed former new.emo to ZGF_01.obj.emo before this step):


That looks OK in sf4explorer:


Let's test in game:


edit:
I thought the bone ID# was in hexadecimal in the smb... it's in decimal sorry for the confusion, I erased that part.
You actually need to write it in hexadecimal when you do it manually, we'll see that in another tutorial...

edit 2: I knew I forgot something...

I didn't linked any material features in the .emm to my "mcap"

2 ways to do it:
1) the lazy way: edit the obj.emo in hexadecimal and change "mcap" by a material that could do the trick like "shoes" or "pants"

2) using NanjouJ's matedit tool, replacing an unused material (in that case "hair") by "mcap" and the features you want to use on it.
http://aemods.pbworks.com/w/page/42053948/aetools#NanjouJsMaterialsTool
UPDATE: use sloth86's EMMEdit instead. It's much easier.

Here's the final result with material features added (no more weird reflections):

45 comments:

  1. jam007: thankssssssssss!!!!!!!!!!!!

    ReplyDelete
  2. goshaN: I have a questions:
    Yesterday i make Ryu`s wear to Seth.
    In SF4Explorer it looks good, but when i tested it in games this i saw this clothes are standing. Why??? Explain me please)

    ReplyDelete
  3. It's because the clothing doesn't have any "bones" in the skeleton to match to. All model movement, including clothing, comes from the skeleton, so for clothes to be animated, the character's skeleton needs to have the appropriate bones to assign to the cloth.

    ReplyDelete
  4. goshaN:Thank you!!!
    I want to ask one more question:
    I don`t understand program is DDSREFEDIT32.exe, i can`t textured some parts of body, i make rufus`s hair to zangief and i can`t textured only hair, all model is textured. Explain me please what the problem)please)

    ReplyDelete
  5. Each object references a DDS texture to get its color. DDSREFEDIT lets you change those references, which is necessary if you import a new object.

    So, you would need to create new *.col.emb and *.nml.emb files containing the character's original DDS textures plus whichever one(s) is referenced by the imported model (put the new DDS *after* the old ones). Then use DDSREFEDIT to tell the imported object to use the imported DDS texture and normal map.

    Make sense?

    ReplyDelete
  6. How I create nnew *.col.emb and *.nml.emb files?
    I`am from Russia, some words i don`t now)

    ReplyDelete
  7. I think this is the easiest way:
    http://filthypants.blogspot.com/2011/07/how-to-create-high-resolution-textures.html

    ReplyDelete
  8. When i create high-resolution textures, i can draw some parts of body in photoshop? Where i can draw the hair on the texrure?

    ReplyDelete
  9. The high-resolution part isn't important, it's just that you're creating new emb files from scratch. These files can have any number or size of DDS textures that you want, including the normal, original DDS files, as well as the one that goes with your new object.

    If you're bringing in Rufus' hair, you need the DDS from his col.emb that has his hair on it.

    If this doesn't make sense, try reading my tutorial on EMG swapping and see if that helps any.

    ReplyDelete
  10. Wait please, i try to make, like in tutorial on EMG swapping. It is necessary use Kensou`s tools?

    ReplyDelete
  11. The emb files are really just a wrapper around the DDS files. Kensou's tool creates the wrapper for you. If you don't want to use Kensou's tool, you'll have to modify the hex code like in sensibeat's tutorials.

    Model swapping is difficult, doesn't always work, and relies on a lot of other modding techniques to work. If you are new to SF4 modding, I recommend starting with simple skinning and model editing (I have tutorials for them elsewhere on my site), then move on to hex editing (col-based transparency and material editing), and then maybe come back to model swapping after that.

    ReplyDelete
  12. I can make model, like on the 9 screenshot in the tuturial on EMG swapping. THIS IS DEAD END!) I can`t understand wnat i need do next!))

    ReplyDelete
  13. Ok, at that point you need to make the emb files that contain your old and new DDS textures and then use DDSREFEDIT to point tell the new object which DDS texture to look for.

    I don't really know what else to say.

    ReplyDelete
  14. After using Kensou's sf4tool in folder is appear new file: newpack.emz is it right way?

    ReplyDelete
  15. yes, that's right. just rename it to ZGF_01_01.col.emb or whatever.

    ReplyDelete
  16. If i makes Ruy, i must write RUY_01_01.col.emb. Than i must use DDSREFEDIT32.exe?

    ReplyDelete
  17. yes, that's right. Even before you use DDSREFEDIT, you should be able to load it into SF4Viewer (Asset Explorer) and see it on the model. It will probably just look strange (wrong colors) until you can fix it with DDSREFEDIT.

    If the colors don't show up on the model, you've done something wrong.

    ReplyDelete
  18. I load RYU_01_01.col.emb. My textured models looks strange. Now i must use DDSREFEDIT32.exe and than what?

    ReplyDelete
  19. Once you've used DDSREFEDIT to make the textures match the model, you're finished.

    ReplyDelete
  20. What write in "new texture map", if guy`s texture stay at first?

    ReplyDelete
  21. If you're doing the exact steps from my EMG swap tutorial, I think you would put 4.

    The number comes from the number of textures available in the col and nml emb files, starting with the col (and starting with the number 0 instead of 1). So, if you have 4 DDS files in each, and you want to point to the first DDS, your numbers would be 0 for the col and 4 for the nml.

    ReplyDelete
  22. Ok, lets fill:
    Input EMO file: RYU_01.obj.emo
    EMG# : 12 ( this is head)
    New texture map# : 0
    New normal map# : 4
    Output EMO file : new.emo
    \/ +1 to every other normal maps references.
    GO!

    ReplyDelete
  23. That should be right. However, try it once without checking the box to +1 the normal map references, just to be sure. It's easier to go back and add it, if needed than it is to correct it if you've done it wrong.

    In fact, you should probably backup your files now, in case something goes wrong.

    ReplyDelete
  24. hmm....
    In the assest explorer there are 5 textures: Guy texture1.dds, 2.dds, 3.dds, 4.dds.dds=>
    New texture map# : 0
    New normal map# : 5
    ??

    ReplyDelete
  25. Guy texture.dds, 1.dds, 2.dds, 3.dds, 4.dds.***

    ReplyDelete
  26. yes, if you have 5, those numbers would be correct

    ReplyDelete
  27. If i don`t make *.nml files it will be wrong for the texture?

    ReplyDelete
  28. Yes, if you didn't create a normal map, the object will be looking for the wrong thing and will have a strange textured look to it that won't match up with the colors.

    Sometimes it won't be very noticeable, other times it will.

    ReplyDelete
  29. ok, i must makes nml texture)

    ReplyDelete
  30. It didn`t work(( nml files makes like col files?

    ReplyDelete
  31. yes, nml files are DDS textures, just like the colors. You can extract them from the nml.emb files just like we did with the textures.

    ReplyDelete
  32. I extract 4 Ruy`s textures (his hand and arm, his face, hislegs and his wear), now i need to extract Guy texture, then makes *.nml like texture. Then use Kensou`s tool and makes newpack.emz - rename it on RYU_01_01.col.emb, then makes newpack.emz for nml files and rename it - RYU_01.nml.emb. THen import this two files. It is right?

    ReplyDelete
  33. Then use DDSREFEDIT32.exe.
    Input EMO file: RYU_01.obj.emo (this file must be on the desktop, RYU_01.obj.emo situated in c:/?)
    EMG# : 12 (this is head)
    New texture map# : 0 (0 - because Guy`s texture stay at first, 5 - it is number of a nml texture?)
    New normal map# : 5
    Output EMO file : new.emo
    \/ +1 to every other normal maps references.
    GO!
    It is right?

    ReplyDelete
  34. put the input emo file (in this case, RYU_01.obj.emo) in the same folder with DDSREFEDIT.

    Everything else looks good, but make sure you backup your files before doing it.

    If that doesn't work out correctly, try putting Guy's DDS (color and normal map) AFTER Ryu's and use 4 and 9 for the references with the box checked.

    ReplyDelete
  35. How putting Guy's DDS (color and normal map) AFTER Ryu's? USe the Kenso`s tool?

    ReplyDelete
  36. Numbers of texture must be: 1.dds, 2.dds, 3.dds, 4.dds, Guy texture.dds or 4.dds,3.dds,2.dds,1.dds and Guy texture.dds?

    ReplyDelete
  37. 1, 2, 3, 4, guy.

    I can't keep doing this. you'll have to just try it yourself from here on out. You have all of the information you need. Just backup your files and try things. If they don't work, try something else.

    ReplyDelete
  38. It does bot work((Any way, we(russians) have a good proverb: morning is wise than evening))
    Good buy, see you tomorrow))

    ReplyDelete
  39. Hello Nunter K.,
    It does not work(( why? I do everything right!
    I think i have some problems with texture.
    In your tutorial on a EMG swapping i see that:"Guy.dds, 2.dds, etc. and Guynmap.dds, 2nmap.dds, etc." => Did you extract texture with Ryu`s bag? I don`t do this)
    Your number of texture was (Guy.dds, 2.dds(bag, himo), 3.dds(hand), 4.dds(head), 5.dds(pants), 6.dds(wear)) six?

    ReplyDelete
  40. Download this file, please http://www.getzilla.net/files/1732838/wtf___.rar.html and explain my problem.

    ReplyDelete
  41. the only sensibeat tool that works for me is obj2emg. the other ones say error:array variable subscript badly formatted. what should i do.

    ReplyDelete
  42. hey can you update the screen shots ? thanks

    ReplyDelete
  43. Pics restored courtesy of the Wayback Machine :)

    ReplyDelete