SR4 Character Mesh Viewer

Updated: 2013-10-30 v1.6

This tool is still in early development. As such I am still experimenting with different approaches to find out what works best and some features (such as the GUI) will change often.

MV_1.6_SR4_Kinzie.png

Requirements
Usage
Step 1: Unpack characters.vpp_pc.
Your choice of SR3 or SR4. Use the appropriate tool to unpack the VPP_PC file. It will create a directory full of files with STR2_PC as the extension. Characters.vpp_pc can be found in the games cache folder. For SR4 it will be:
\Steam\SteamApps\common\Saints Row IV\packfiles\pc\cache
  • For SR3 use Gibbed.SaintsRow3.UnpackVPP.exe to unpack characters.vpp_pc
  • For SR4 use ThomasJepp.SaintsRow.ExtractPackfileGUI.exe to unpack characters.vpp_pc
Step 2: Unpack character model from STR2_PC file.
Use the appropriate tool (for SR3 or SR4) to unpack the STR2_PC file you want to look at. This will create a directory with various files. Make note of this directory (you will need it in the next step). One of the files in this directory should have an extension of CCMESH_PC (this is the type of file the MV program is looking for).
  • For SR3 use Gibbed.SaintsRow3.UnpackSTR2.exe to unpack any STR2_PC file
  • For SR4 use ThomasJepp.SaintsRow.ExtractPackfileGUI.exe to unpack any STR2_PC file
Step 3: Open CCMESH file with MV.
Start MV. Click the 'Open' button. Navigate to the directory where the CCMESH_PC file is located (the one from step 2).

--- Stop Here if you are just viewing models ---
Step 4: Extract textures for model. (Optional)
By default the program will load textures from the PEG files, but before it looks for a PEG file it will attempt to load loose Bitmaps. Texture modders can take advantage of this to test out their mods before repacking the assets.

Use Scanti's SR3 Texture utilities to unpack the CPEG file associated with the character model you want to view. Unpack them into the same directory as the CCMESH files. Use a drawing program (I used Paint.net) to open the DDS files and save them as Bitmaps.

NOTE: Paint.net wanted to remove the ".tga" from the name when saving as Bitmaps but the texture names in the CCMESH files include it as part of the filename. Make sure the ".tga" is part of the name or the program won't load the texture.

Before:
MV_1.6_TexMod_01.png

After:
MV_1.6_TexMod_02.png
WARNING:
STR2_PC archives ending with "_high.str2_pc" do not contain CCMESH_PC files.

Exporting

Step 1: Open the model in MeshViewer.
Open a npc character model.
Step 2: Click "File -> Export To -> Wavefront OBJ" from the menu.
Check the status bar at the bottom to see when it is complete and if it completed without errors. The OBJ file is saved to the same folder as the CCMESH file.​

Step 3: Import into Blender.
Please, I am no expert in Blender (I had to watch a tutorial to figure out how to rotate the model) so don't ask me for help in the use of Blender. I am using Blender 2.6, from the main menu you go to "File -> Import -> Wavefront (.obj)" to begin the process.
Release History

2013-10-30 1.6
  • Now loads textures directly from CPEG files.
  • Uses LOD to only draw one model instead of drawing all models contained in the CMESH file.
  • Also took UpgradeCount into consideration when drawing models. Some models (Professor Genki, Shaundi) depend on it.
  • Makes use of a TextureMap table to figure out what texture goes to a particular mesh material. If a model doesn't have an entry in the table it goes back to best guess (with mixed results).
  • Fixed alignment issue that prevented some models from loading (Lin).

2013-10-15 1.5
  • Changed back to the OpenGLControl to support displaying textures
  • GUI now uses Docking Panels for various controls.
  • Docking Panel state is persisted between sessions.
  • Property panel is for display only. Changing values does not update model.
  • Head mesh is now pulled in with the Body mesh (or vice versa).
  • Some textures are loaded with the model (this needs more work).

2013-09-26 1.4
  • Changed the GUI (totally ripped off the SharpGL scene sample). Switched the main display from an OpenGL control to a SceneView.
  • Solved the issue with Wavefront OBJ files. No longer need to split.
  • Solved the issue with left-to-right mirroring of the models.
  • Increased model compatibility. More models will now display in the viewer but still a few more format variations out there that need to be added.
2013-09-16 1.3
  • Added ability to export models to Wavefront Obj format (which is easy to import to Blender)
  • Improved compatibility with various models (thanks to a tip from Minimaul)
2013-09-13 1.2
  • Improved exception handling.
  • Increased understanding of CCMESH format. (Big thanks to Sir Kane on this one, his 3ds Importer data structures had a lot of good information).
  • Added a status bar to the bottom to display error messages.
  • Added a "Point", "Wire", and "Solid" button to change how the model is rendered.
2013-09-07 1.1 Source only since I haven't added enough to it yet. Includes:
  • Fixed issue where position offsets were kept when switching models.
  • Changed the method used to translate the model around the screen.
  • Added a button to center the model in the view.
  • A few new comments on the format of the CCMesh file
2013-09-07 1.0 Initial Release
 

Attachments

  • MV_src_1.6.7z
    1.6 MB · Views: 2,555
  • MV_1.6.7z
    860.1 KB · Views: 3,826
Last edited:
Roadmap

It is rather boring at the moment. I am watching this thread:
http://www.saintsrowmods.com/forum/threads/model-viewer.2748/

Hopefully one of the devs that worked on rendering will stop by in that thread and post more details on the CCMESH and GCMESH file formats. Once those details are filled in I should be able to do more with this program. Some things like:
  • Display actual meshes instead of just points
  • Display textures on model
  • Play animations on model
  • Display all clothing meshes
  • Import Models from Blender to export for game usage
 
Last edited:
v1.6

SR4
----------------------------------------
Using the TextureMap hack:
MV_1.6_SR4_Gat.png MV_1.6_SR4_Killbane.png MV_1.6_SR4_Kinzie.png MV_1.6_SR4_KinzieStrix.png MV_1.6_SR4_Oleg.png MV_1.6_SR4_Pierce.png MV_1.6_SR4_Shaundi.png MV_1.6_SR4_ShaundiSim.png

Taking your chances with best guess:
MV_1.6_SR4_Alienspr.png MV_1.6_SR4_EvilPlayerFem.png MV_1.6_SR4_Jones.png MV_1.6_SR4_Lin.png MV_1.6_SR4_ProfessorGenki.png MV_1.6_SR4_ShaundiSR2.png MV_1.6_SR4_sr2player.png

v1.5

SR3
----------------------------------------
MV_1.5_SR3_Candy.png MV_1.5_SR3_Gat.png MV_1.5_SR3_Killbane.png MV_1.5_SR3_Kinzie.png MV_1.5_SR3_MJoeCola.png MV_1.5_SR3_Oleg.png MV_1.5_SR3_Pierce.png MV_1.5_SR3_ProfessorGenki.png MV_1.5_SR3_Shaundi.png MV_1.5_SR3_Viola.png
 
Last edited:
I didn't understand how do I open ANY file. I oponed that MV>clicked on 'Open File'> and it didn't find aynthing. Btw I have Netflame and Gibbedvolition-rev96
 
I didn't understand how do I open ANY file. I oponed that MV>clicked on 'Open File'> and it didn't find aynthing. Btw I have Netflame and Gibbedvolition-rev96
Extract the characters.vpp_pc -> then extract your desired model.str2_pc.
Open up the Mesh Viewer and open the ccmesh_pc file inside the models extracted folder.
 
Step 1: Unpack characters.vpp_pc.
Your choice of SR3 or SR4. Use the appropriate tool to unpack the VPP_PC file. It will create a directory full of files with STR2_PC as the extension.
  • For SR3 use Gibbed.SaintsRow3.UnpackVPP.exe to unpack characters.vpp_pc
  • For SR4 use ThomasJepp.SaintsRow.ExtractPackfileGUI.exe to unpack characters.vpp_pc

Step 2: Unpack character model from STR2_PC file.
Use the appropriate tool (for SR3 or SR4) to unpack the STR2_PC file you want to look at. This will create a directory with various files. Make note of this directory (you will need it in the next step). One of the files in this directory should have an extension of CCMESH_PC (this is the type of file the MV program is looking for).
  • For SR3 use Gibbed.SaintsRow3.UnpackSTR2.exe to unpack any STR2_PC file
  • For SR4 use ThomasJepp.SaintsRow.ExtractPackfileGUI.exe to unpack any STR2_PC file
Step 3: Open CCMESH file with MV.
Start MV. Click the 'Open' button. Navigate to the directory where the CCMESH_PC file is located (the one from step 2).
WARNING:
STR2_PC archives ending with "_high.str2_pc" do not contain CCMESH_PC files.

@Killbane31: I hope this helps you with your problem.
 
Back
Top