CG in Games tosyk's blog

19Jan/1187

Converting 3d model from Mafia 2

Русский English

[UPDATED] - JANUARY 27, 2012

In this article I will describe the process of converting models from Mafia 2 into 3ds Max. Converted models have a skeleton and are ready for animation.

Show list of changes (27.01.2012) »

- I updated the program M2CharMC and M2ObjMC and now they are NOT IDENTIFIED AS VIRUS. You can download the updated links.

Show list of changes (29.12.2010) »

- added english language.

Show list of changes (30.11.2010) »

- added direct link for OpenCOLLADA [download] [page] - found a model that is extracted is not correct, it is:

<install path>/mafia ii/pc/sds/hchar/franca.sds

for its conversion you need to use the original dumper from DerPlaya [page], and open model in XSI, or in latest version of Blender.

Note: The article is designed for users familiar with working in 3ds Max and does not cover such things as, for example, texturing objects, setting up materials, etc.

For the conversion process, we need the following tools:

  • 3ds Max (i use 2008 х64) should work on versions: 7-2011
  • M2CharMC v0.5 (model extractor from *.sds) Author: Tosyk [download]
  • M2ObjMC v2.5 (model extractor from *.sds) Author: Tosyk [download]
  • OpenCOLLADA (3ds Max plugin to open *.dae files) [download] [page]
  • ExSDS v0.3 (*.sds unpacker) Author: CJay [download]
  • Gibbed Illusion Tools (tool kit) Author: Gibbed [download] [page]

1. Unpacking the game archives. Install the game Mafia 2. If the installation is done by Steam service, then on the hard drive should already be unpacked steam-archives. Before using the disk versions of the game, you must first extract the files. Game archives are located at

<install path>\mafia ii\pc\sds\

and they have the *.sds extension. In these archives are all resources.

2. Model conversion. Game models are in

<install path>\mafia ii\pc\sds\hchar\ - characters
<install path>\mafia ii\pc\sds\cars\ - cars
<install path>\mafia ii\pc\sds\fmv\ - objects and characters (from the cutscenes)
<install path>\mafia ii\pc\sds\traffic\ - pedestrians
<install path>\mafia ii\pc\sds\wardrobe\ - objects in the closet
<install path>\mafia ii\pc\sds\weapons\ - weapons
<install path>\mafia ii\pc\sds\player\ - main characters
<install path>\mafia ii\pc\sds\city\ - objects of the city

It is quite possible that the models are also present in other archives, but I wrote only about the most important of them. To convert the models and textures, I wrote 2 tools that facilitate the model conversion process. Each of the two programs extracts the model from *.sds files and converts it into a format *.dae.
Tools:

  • M2CharMC v0.5 (character converter)
  • M2ObjMC v2.5 (game object and car converter)

Converters are based on two programs:

  • Mafia2ModelDumper (model dumper) Author: DerPlaya [page]
  • mesh2rdm (game model converter) Author: Rich Whitehouse [page]

Note: Why not use the original program? Because after the conversion with Mafia2ModelDumper *.dae-files is not impossible to properly use in 3ds Max.

For example converting I took two files.

<install path>\mafia ii\pc\sds\hchar\joeciv.sds
<install path>\mafia ii\pc\sds\cars\shubert_taxi.sds

joeciv.sds contains the character Joe (the summer version). shubert_taxi.sds contains a model of the car Shubert (version of a taxi). So, drag-and-drop joeciv.sds (or several files) on the M2CharMC (m2char_mc_v0.5.exe) and after a short conversion process near the source file (in my case it joeciv.sds) will be a two files:

  • joeciv.JOECIV.Hips.L0.dae - high-poly model
  • joeciv.JOECIV.Hips.L1.dae - low-poly model

Note: You can open *. dae files  in 3ds Max. However, the built-in importer cope with the format is not the best way, so I recommend using the OpenCOLLADA importer.

After importing joeciv.JOECIV.Hips.L0.dae (I chose the high-poly model) in 3ds Max you will see:
In the same way, but the with M2ObjMC program convert shubert_taxi.sds. Import model in 3ds Max. In viewport you'll see:
3. Texture conversion. Textures are packaged in *.sds files along with the model and the extracting with ExSDS tool. Interface:Files extract with command Operations -> Extract All. Recoverable files are in *.dds format.

4. Also. For this game currently released 7 DLC:

  • Vegas Pack
  • War Hero Pack
  • Renegade Pack
  • Greaser Pack
  • Made Man Pack
  • Jimmy's Vendetta
  • Joe's Adventures

Format of archives in the DLC is the same as in the original (*.sds), but these files are encrypted. From them we can extract a model, but can not extract texture. To decrypt files, use Illusion DecompressSDS, part of the Illusion Tools from Gibbed. The program is console only and does not have an interface. To decrypt the *.sds you need to drag the source *.sds file on Gibbed.Illusion.DecompressSDS.exe.

In the resources of this game is hard to find eye for characters, since they all shared. They may be located in the most unexpected *.sds files, so I am publishing an archive of the most common eye textures. [download eye texture].

For cars as well as for the characters were used shared textures, as well as models (wheels), they are placed in the archives:

<install path>\mafia ii\pc\sds\cars\cars_universal.sds
<install path>\mafia ii\pc\sds\cars\cars_universal2.sds

For some files *.sds can find a copy, but with "_z" suffix , for example, for file shubert_taxi.sds this copy is called shubert_taxi_z.sds. Suffix "_z" means "winter ",most likely this file contains the variations of winter textures.

Found a model that is extracting is not correct, it:

<install path>\mafia ii\pc\sds\hchar\franca.sds

or its conversion you need to use the original dumper from DerPlaya [page], and open model in XSI, or in latest version of Blender.

5. Rendering. 3ds Max and shaders.

Comments (87) Trackbacks (0)
  1. Zlotan, this tools is not for direct lunch, you should drag-and-drop your files on the .exe

  2. But when i drag my files to there nothing happens?

  3. Greetings! I know this is kind of off topic but I was wondering which blog platform are you using for this website? I’m getting sick and tired of WordPress because I’ve had problems with hackers and I’m looking at options for another platform. I would be great if you could point me in the direction of a good platform.

  4. hi Tosyk
    I know after 3 years of the last comment, i have tons of questions
    are you there brother??

  5. I’m here.

  6. please check this picture and tell me what to do
    [IMG]http://i61.tinypic.com/2qd3fi9.jpg[/IMG]

  7. I did the following steps:

    1- converted the “shubert_taxi.sds” to .dae using m2obj_mc_v2.5
    2-extracted textures form “shubert_taxi.sds” using ExSDS
    3- converted textures to .png using photoshop
    4-opened the dae file using 3ds max
    5-I started texturing using diffuse maps only
    6-found some tires with textures inside “cars_universal.sds” and “cars_universal2.sds” but didn’t have a complete shape of a tire, some parts are missing
    7- if you were able to see my picture i have an extra part on the hood (bonnet)

  8. Your weblog is 1 of a kind, i really like the way you organize the topics. cfebecbeedfd

  9. Добрый день Антон. Хотел поделиться с Вами кое какими мыслями и узнать ваше мнение о возможном редактировании координат обьекта 3д в М2. Об импорте готового 3д в М2 я не мечтаю… Проводил следующие эксперименты: Постепенно удалял из smith_200_pha.sds часть файлов и запаковывал назад с помощью сдс.тул.гуи. Было определено, что для того чтобы c помощью m2obj_mc_v2.5 из *.sds можно было извлечь *.dae, достаточно чтобы в нем находились только: FrameResource_0.bin IndexBufferPool_0.bin VertexBufferPool_0.bin. В данном случае усеченный smith_200_pha.sds весит всего 233Кб. Т.е. делаем вывод, что остальные файлы .sds не учавствуют в формировании *.dae.
    Интересно то, что при открытии с помощью UltraEdit файлов VertexBufferPool_0.bin и smith_200_pha.sds – кодировки похоже рознятся. Т.е. скопировав фрагмент строки из 1го файла, я с помощью (cntrl+f) не нашел его во втором. Вывод – тул.гуи меняет кодировку.
    При открытии smith_200_pha.Smith_200_pha.Root.L0.dae с помощью UltraEdit мы видим текстовый файл и в нем координаты:

    4.45282 -263.496 59.474
    С помощью – BConv32.exe их не “прощупать”. Хотя в некоторых файлах М2 этот экзешник дает четкое соответствие число=код. Вопрос1: если написанная Вами прога m2obj_mc_v2.5 “видит” коды у *.sds или у *.bin, можно ли определить участки кодировок отвечающие за координаты? Например 4.45282 = код* Далее расположение “код*” определить UltraEdit через cntrl+f. Вопрос2 Можно ли модифицировать ваш экзешник, для обратной шифровки небольшой группой цифр? Т.е. создать такой себе аналог BConv32.exe? Т.е. чтобы открыв *.sds или *.bin в UltraEdit подставить в тело существующего обьекта новые коды и изменить координаты? А их предварительно получить отредактировав оригинальный *.dae, в Максе и открыв его в UltraEdit. При этом, думаю, очень желательно сохранить количество полигонов, чтобы количество координат совпадало.

  10. For some reason when i extract a model the textures dont even fit onto it any suggestions

  11. Kuroki, it doesn’t work for any model?

  12. i tried it with the Taxi shown in the picture as well as the Jefferson futura and i also tried it with the joe model but the UV maps were still messed up

  13. Hi Tosyk, I’m a little confused as to how you got the texture onto the model. Both are extracted and I’ve imported the .DAE into 3DS Max. Now how do I get it to show up on the model?

  14. AsaSK, I do believe this is not a place where you can ask such a thing like this. But you can google it for sure.

  15. Do I have to have 3DSmax or can I do this in blender as well?


Leave a comment

No trackbacks yet.