Published using Google Docs
Guide to the UMVC3 Model Importer
Updated automatically every 5 minutes

Guide to the UMVC3 Model Importer

By Eternal Yoshi with help from tge

What you need:

TGE’s Importer Tools (Select Code-> Download Zip to get the latest version of the tools)

3DS Max 2021/2022 (Blender version coming later)

Python 3.9

This list of IDs the game uses for characters and stages.

ThreeWorkTool OR ArcTools & this batch file for characters

Notepad or Notepad++ for Material/YML editing

Basic Experience with 3D Modeling

Persistence & Patience

Remember, always back your stuff up before modifying the game or using the importer.

 

If you want to support TGE and his amazing work, contribute to his paypal linked here: https://www.paypal.com/paypalme/CWeermann

Setting Up

First thing is that you have to install the correct python version. Go install Python 3.9 from here: https://www.python.org/downloads/release/python-390/  Next we install the script’s dependencies. The importer comes with a script and batch file that will install them. Go in the tools folder and run setup.bat and wait a few moments.  Make sure you don’t put the importer’s assets in 3DS Max’s directories that require administrative privileges to access or you will have problems.

Next you will have to choose a character and get their assets; their model, textures, and material file. You have two choices; you can use either ThreeWorkTool or the ArcTools to get them.  Character archive files are named based on character ID. Refer to this list for which character is which ID. For this example I chose Nova. Nova’s default costume is named 0045_00.arc.

For stages you will have to get all the assets out, keep in mind that some stages use very unique texture formats and are organized strangely; stages may have all the mesh in a different folder than one would expect them to be.

 

Using ArcTools to get assets

Extract the archive that has the Arctools and if you are using a character arc, drag it on the pc-dmc4se.bat file. It should extract everything for you. For stages, use the other batch file included with the Arctools link above.

Using ThreeWorkTool to get assets

When the program is open, select File -> Open and select the arc file. Then right click the arc node, the node with the arc’s name and select Export All. Then choose the directory. I recommend choosing the same directory the archive was in so you are set up for the next thing. Be sure the model you want to use is in the same directory as its material file, the .mrl, and the textures in .tex format.

Whichever way you choose, you have to set up the directory the same way you’d do so on the unedited game. You can set it up in the game directory and make a folder for the arc name. For example Nova’s directory for the default costume would go something like: C:/Program Files (x86)/Steam/steamapps/common/ULTIMATE MARVEL VS. CAPCOM 3/nativePCx64/chr/archive/0045_00 with the latter being a folder inside the folder named archive. Put the extracted files in there.

 

Loading the Model

Go to Scripting-> Run Script and navigate to the importer’s plugin file called plugin.py. Then you’ll see the plugin. Click the button to the right of “Input Model file” and select the model. In this example I chose Nova. The associated Metadata file is automatically chosen based on your model file. These are the settings I would recommend.

To give a brief rundown on these settings;

“Flip up axis” converts Marvel 3’s model files to Z-Up meaning the character will always be standing up instead of sideways in bind pose. Be sure this stays checked.

“Convert textures to DDS” means the plugin will convert the textures to DDS for use in Max.

“Convert MRL to YML” is only recommended for advanced users that already have extensive knowledge of Marvel 3’s models and materials so you have greater control over the material in game.

“Create Layer” is an optional thing that puts all imported assets in its own layer. Not necessary for characters, but is heavily recommended for stages.

Then click import and wait a few seconds. If successful it will say so.

 

From here you can save the scene as a backup. You can press 7 in the viewport to get the Polygon (Face) and Vertex count. I recommend keeping note of this. It’s also recommended you press Modify on the right panel so you can see all of the selected item’s modifiers If you want your import to work online, not desync, and NOT affect gameplay, there are a few golden rules to follow:

1.         Don’t modify the skeleton.

2.         Try not to go too far over the original model’s face/vertex count. This game is very loose with vertice/face limits but going too far over the default draws is not kind to most of the player base that either has mid powered computers, laptops, or plays via Cloud PCs.

3.         Try to stay within the base character’s proportions so as to not be too jarring to play as or against. Very few people would appreciate fighting a character mesh where you can’t see the lows.

4.        Don’t add bones unless you know what you are doing.

About Marvel 3 Models

Before we import there’s important things to note about the models. First off you may notice the groups. These groups are used for visibility of parts such as facial expressions, forms, and the like. Some of the groups have names to denote what they are but many do not. To use Nova as an example, group 0 consists of most of his body, with group 1 and 2 containing most of the sharp armor parts he has. Grp_74 has Nova’s head with his mouth open, and the other groups with facial expressions have the rest of his head. It’s important to keep this in mind when you import your model after this section.

Each bone has an ID associated with it.  While many of the important common bones have labels like neck and leg_r, there are still several uncommon or unique bones that do not have names and are simply named after the ID with the “jnt_” prefix(jnt_220 for example). All bone IDs here are in decimal, meaning you won’t get something like jnt_4F here.

You may notice some meshes that are basically “outlines” of model parts. These are known as splines and they basically define hard edges and tend to make the cel shaded outlines a bit thicker and more defined than the other model parts. They tend to share materials with the model part it’s outlining. Also has matching skin weights. To make this clear,  not every mesh has a spline; it’s generally used for hard edges to define outlines that are thicker.

Another thing to note is how the model is rigged; each mesh has a Skin modifier that you can check the weights on. To do this select a mesh, click edit envelopes, Check the checkbox next to vertices, then scroll down in the modifier and select the wrench to open up the Weight Tool Window. Then select some vertices and take note of the weights value. Remember to keep a backup of the original model in a different scene.

Importing your model

Do keep in mind: Replacing stage models is possible, but information on good stage lighting,stage materials, and material baking is still sparse and is still in the works; stages have very unique materials,  settings, have unique lighting baked in them and more details that are not properly documented yet.

Now it’s time to import the model you want over the character you want to port over. I’m using Nova as an example. This is something I’m not going to go too deep into because of how broad it is. To give summaries, you want to make sure your character is of the same size and relatively fits on the skeleton. The closer the fit the better it will look when rigging AND animating. The closer the fit the better it will look when rigging AND animating. If your character comes with bones, use those to fit the character within the Marvel 3 characters’ skeletons before deleting that new model’s Skin modifier. You might have to use whatever 3D modeling experience to decide what’s best for your model to align with the Marvel 3 characters’ skeleton. You might have to do some small vertex editing after discarding the new model’s skin.

Make sure your new characters’ bind pose is a T-Pose. If it’s in an A-Pose you have to convert it to a T-Pose.  For information on a possible method, check here: https://forums.autodesk.com/t5/3ds-max-animation-and-rigging/change-a-pose-to-t-pose/m-p/8571885#M23704 

Ensure all of your model’s transformations are set to 0. Do this after disposing of the original skin modifier on your model. If you don’t do this before rigging, you might have serious issues with lighting and materials later on.

If you want to make splines for your model, convert the model part to Editable Poly by selecting the mesh and right click -> Convert to Editable Poly. Then select all the edges you want to have splines on and then click Create Shape from Selection. Pick Shape Type Linear. After that check Enable in Viewport and set the Thickness to 0.0001 or what looks best for your model. Then right click-> convert to Editable Mesh. Make sure you convert the base object back to Editable Mesh.

Don’t throw out Materials the original Marvel 3 model is using. It’s recommended you keep those for your new model to save time later on.

In the meantime, get your new model parts in the appropriate group or what’s the closest. If you want something visible all the time, put it in the group that has most of the body. Faces go in groups that have faces, etc.

Textures

Textures in Marvel 3 have suffixes to denote the texture type. The important ones to note are:

_BM = Base/Albedo Map(Color Maps)

_LM = Lighting Map(Baked Stage Lighting)

_MM = Metallicness/Specular Map

_CM = Cube Map(Reflections)

_NM = Normal Map

_LIN = Toon Ramp

You have to add these suffixes to any texture you want to be automatically converted to .TEX, Marvel 3’s texture format for use in the game.

The texture converter converts any texture format supported by texconv from DirectXTex to .tex, which includes .bmp, .jpg, .png, .dds, & .tga files.

If your model uses DDS textures, they must have the encoding required by the texture map type indicated by the suffix. For example, if your Normal Map is a DDS file and uses DXT5, no re-encoding is done to preserve image quality.

Base Maps with transparency, Normal Maps, HQ Base Maps all use DXT5, Toon Ramp Maps use RGBA uncompressed, and the rest use DXT1 encoding.

Normal Maps from other games might have to be adjusted. In Marvel 3, Normal Maps have their Alpha and Red channels swapped and the Green Channel, which controls depth, inverted.

Stages

Information about stages is very limited and sparse currently. Stages have different rules on materials and shaders and even parts of the same stage can have very different materials. Many of them have lighting baked into their textures in some form. Stages can have either static meshes or meshes skinned to 1 or more bones. I would only recommend attempting a stage mod if you have extensive knowledge about Marvel 3’s materials and models. More information will be added as it emerges.

Animations

As of right now, we can move and transfer animation entries that already exist in Ultimate Marvel vs Capcom 3. Currently we do not know enough about the specific version of the animation format in this game to make custom animations, nor to extract them to a program like Blender or 3DS Max. Much like before, more information will be added as it becomes available.

Materials & You

Note: This next part will go over a few methods of getting or preparing materials. Using the script generated materials is recommended for beginners and/or character based mods. Stages have very little material information aside from being unique from character materials. This is by no means comprehensive and might be expanded over time. Information on Materials, especially for stages, is currently limited and will be improved over due time.

Using the Script Generated Materials(Easiest Method)

The script can automatically generate default materials using the default textures. You can use these if you go into the script and ensure that Generate MRL is enabled and Use Existing MRL YML is disabled. This should let you work normally without having to worry about the generated .yml files or having to edit said files.

If you have a PBR Spec, which is the default material if you import any sort of model in Max, it will use the normal map as a normal map, the base color map as the Base/Albedo, and the Specular Map as the Specular Map.

Physical Materials don’t have normal maps, rather bump maps, which are assigned  Normal Bump Maps. Opacity Maps aren’t reflected in the generated materials, transparency/opacity has to be put in the Base Color Map’s Alpha Channel.

If a mesh isn’t mapped to a material, the script will use the game’s Default textures. It would be recommended to change these to textures you are using but you can stick with default textures for the sake of testing the rig or lighting. Most characters will look fine with the default materials, but if you want materials to have shininess you will have to edit those yourself.

Commandeering The Original Model’s Materials & Editing the MRL YML(Advanced Method)

Before deleting the original Marvel 3 models, You have the option to commandeer the model’s materials for your own model to make things easier and faster when exporting. Open up 3DS Max’s Materials panels(which you can open by pressing M while clicked in the viewport) and then press O to open up the Material/Map Browser. From there you can see all the materials(do not rename them) and you can discern which object is using which material.

Keep in mind that certain materials have special flags or settings on them that may not be shown in max, such as eyes, shiny metals, and transparent things such as hair. To commandeer it for your use, double click a material in the Material/Map Browser and it’ll show up in the Material editor. From there, you can change the textures the material references and then apply it to your new model. Rinse and repeat for all of your new model’s parts. Try to line up materials relative to how the original Marvel 3 model had it; hair material to hair, eye material to eyes, etc.

This does have the tradeoff of having to adjust the respective mrl.yml file in order to use these. Any texture path changes you do in Max have to be reflected in the mrl.yml material for it to work. Open up the yml file the importer produced and edit the respective texture references in there as well. I recommend Notepad++ for this so the different materials are separated and collapsable.

Note: For those willing to go deeper, the importer tools include several material yml files from various parts of the game for you to study and experiment with. This is only recommended for advanced users.                

Before You Rig….        

Check the transformations of all the meshes/objects in your scene. An easy way to ensure this is to select an object, Click Utilities on the Right Panel(it looks like a wrench), select Reset XForm, and then select Reset Selected. This will put an XForm modifier on the object. This sets all your transformations and rotations to 0 and scaling back to 1.0. Save a backup of this scene.

Rigging from Skin Wrapping

Keep the original Marvel 3 model’s skin, mesh, and skeleton if you want to use this option. Basically you would go to a model part that matches closets with the Marvel 3’s model part, then go to Skin Wrap. Then add the Marvel 3 model part in there. These are the recommended settings.  

Make sure you set these up BEFORE you hit Convert to Skin or you might crash. Afterwards, click Convert to skin and it will become a skin modifier with weights as close as possible to the original mesh. The closer the topology, the more accurate this is. If it isn’t you may have to go back and make some changes to the skin yourself. Remember that each object’s skin modifier has to be unique. When you convert all your new model’s skin wraps to skin modifiers, you can delete the original UMVC3 model.

If you want to rig from scratch

When your model is ready, backup your scene, delete your new model’s skeleton and the marvel 3 characters’ mesh. If you did this right you would have the Marvel 3 skeleton, your new mesh, the groups and that should be it. Then go into your mesh and add a skin modifier. Remember that each object’s skin modifier has to be unique. An easy way to check is to right click the Skin modifier and see if the “Make Unique” option is grayed out. If you need guidance or reference, please check out this classic video on rigging; keep in mind that the parts on Materials AND the parts on splitting the mesh by material do not apply to Ultimate Marvel vs Capcom 3:

https://youtu.be/ARa4qYWkjq8

Whichever one you choose, remember that Skin Wrapping splines is the best way to rig splines as they should have matching topology.

Testing your Rig

There’s something we can do to test the Rig, but we have to do so carefully. We are going to use 3DS Max’s timeline panel to animate a bone movement. Basically you select a bone, select Auto Key in the bottom panel and adjust the timeline to be at frame 0. Without moving anything, keyframe frame 0 by pressing K. This is important to do so we don’t end up with problems exporting. Then slide the timer to the other end and, with Auto Key still active, rotate the joint in a way you want to test it. From here you are free to adjust weights in any frame of the animation. Be sure to set the frame on the timeline to 0 before exporting.

Time to Export

A few things to check before we export.

Also keep in mind:

Now we have to go back to the plugin’s window and adjust the Export Settings. In my Nova example, here’s my export settings.

For the output model you have to choose the same kind of directory the game would use, which is set up like the above for Nova’s model. This would also be the basis for the Extracted Archive Directory. You definitely want to point to the original unedited model for Reference/Original Model File, and the metadata file chosen will automatically choose for you. IF you chose to edit materials via editing the mrl yml, It’s recommended to check “Use existing MRL YML” and point to that. Otherwise, leave that unchecked and select Generate MRL instead. You also have the option to have the script generate .tex files of all the textures referenced in the scene’s materials. Check “Convert Textures To Tex” if you would like to do so. The rest you can leave how it is in the image. If your skeleton is not modified, feel free to save your scene and then click export.

However, if you are using a modified skeleton, you need to remove the Reference/Original Model File and make sure it is blank. You also have to make sure that all of your added bones have MT attributes on it. If it doesn’t have it, select the bone, go to the script’s Add MT Attributes to the selected object, and then click Joint to add them. They also must have unique IDs that do not clash with the characters’ existing bones IDs. You can see and change the bone ID by selecting the bone and checking the MT attributes section on the right side of the screen. Make sure the ID is distinct and the Symmetrical opposite is correct. If it has no opposite, just type in the name of the bone in there. The other parameters will be automatically generated on export so don’t worry about those.

After that it will produce the .mod Model, .mrl Material file, and all the .tex Textures. Use either ThreeWorkTool to put the modified model and material file in the arc or pack with the Arctools packs. From here just test.

The Troubleshooting Section

The first thing to know is that if you want to report or diagnose a problem is to get the log. Go to Scripting-> Maxscript Listener and a log window will open up. If there is a problem or fatal error with the scripts, they will show up and log themselves here. Always report problems and errors with a log file; the plugin will open your default text editor so when an error happens you can save the contents of that. If you paste messages over a certain length in Discord, it will automatically generate a .txt file attachment with the text inside. You can report bugs in the UMVC3 EX Discord’s bug-reports channel. The recommended format for reports is to have a log file, the 3DS Max scene, and additional details if you were trying to do something special or unique such as custom bones and the like.

If you are having problems with normals, one way to check is to import the model you previously exported via the script. If there’s any sort of problems with normals, it’ll be obvious and will be made apparent. Go back to the scene you backed up before you exported, and then go through the process of fixing the normals. A quick way to do this is to add an Edit Normals modifier per object/mesh and then select all the normals, then select Break, then Unify. Afterwards, drag that modifier UNDER the Skin modifier and then right click the Edit Normals Modifier and select Collapse To.

If you are using a custom or modified skeleton and the import fails, the make sure that:

This section is a stub and will be expanded over time with common issues people encounter when exporting/loading a custom model.

If you have any questions about the model importer or other forms of modding Ultimate Marvel vs Capcom 3, please ask them in the UMVC3 EX Discord.

UMVC3 Modding Discord.