Understanding and Diagnosing TORCommunity.com PC and NPC exports - SWTOR-Slicers/WikiPedia GitHub Wiki

The contents of this section aren't needed at all for the normal operation of our tools, so, you can just bypass it. Still, when things go wrong, a little knowledge of how things work can help immensely.

Lets go to TORCommunity.com's Character Creator and build a Player Character with a certain variety of features: tattoos, horns and hair, armor gear that exposes skin, etc. We export the character as a .zip file and decompress it. The result is this structure of files and folders. All materials and models' subfolders are empty: Slicers GUI will locate the required game assets to fill them based on the information contained in the paths.json file.

As for the diverse .json files present (.json is a text format, fairly human-readable, that can be opened and edited with any plain text editor such as Notepad or better, and with specialized .json format editors that hide all the indentation and braces and present the data in a nice and clean manner such as, interestingly enough, the Firefox web browser (try it: it's really nifty!).

Let's give them all a look to know what's what, by depth order:

  • IMPORT_THIS.json: our Blender Add-on can't use this file at all. It's meant to be used by TORC's Character Creator only. If we want to produce a variation of a previously designed and exported Player Character, importing this file spares us the tedious job of reentering all the sliders and armor gear's settings.

    As such, it isn't of that much use, but it contains some bits of information that can be, such as the Character Creator's slider settings, the English in-game names of the selected armor gear pieces, and their ipp node paths which might be useful to anyone savvy in the use of Slicers GUI's Node Browser or Jedipedia.net's File Reader.

  • preset.json: at the moment it is an identical copy of IMPORT_THIS.json. We can dismiss it, too.

  • skeleton.json: it contains the path to the character's skeleton (animating armature rig) relative to the extracted game assets' resources folder. Our Blender Add-on .json importer can't use this file directly (although that could be added to some future version). We have to read it manually (with, say, Notepad, or just via Windows' File Explorer's preview panel, given that it's a single line of text that easily fits) and go find the .gr2 file mentioned there, which we can import through the Add-on's .gr2 importer.

    This .json file is vital when dealing with Creature-type NPCs, because many SWTOR creatures share common types of skeletons with simple names such as "dog" or "cat", and finding which is the correct one by other methods is rather tedious. As for humanoids, the names follow the game's internal eight body types naming system (bfa, bmn, etc.), so, we typically end up knowing them by heart and not bothering reading this file.

  • paths.json: it lists all the game assets' filepaths that Slicers GUI will use to locate them and fill the folders, and that our Blender Add-on's .json importer will use to import and assemble them, including their materials settings (dyeing colors, transparency type, etc.).

    This is the file we are concerned most with: if some problem happens, most probably its source is somewhere in this file.

Adding to this:

  • .mat material description files. When we process this empty folders structure with Slicers GUI's Locate option, the materials subfolders, texturemap files aside, will include .mat files copied from the game assets extraction's resources\art\shaders\materials folder, too. Those are .xml files, actually (another human-readable text file format, with a formatting style different to .json's).

    .mat files contain material settings information including the texturemaps' filepaths, which we can use to check paths.json's own against to if we see some textures missing in our imported characters. As for the non-filepath related information contained there, sadly, it is unusable: it only shows generic default values. The real ones in use (dyes' hue-saturation-contrast-brightness, etc.) are in the paths.json file only.