*and ~15 minutes for setup =)
Hello everyone, hope you're having a good day! ^^
Wanted to share a tool i made for myself, but maybe someone else will find it useful. 3Ds Max part was made purely based on TaylorMouse's addon (https://github.com/TaylorMouse/warcraft_III_reforged_tools), so i cannot take the whole credit for it =)
Kindly note that this is still a work-in-progress, and it's quite a niche tool tbh, so i didn't bother to make code looking good - it does its purpose, that was the target =)
Okay, first, needed tools:
1) CascView (http://www.zezula.net/download/cascview_en.zip)
2) 3ds Max 2016
3) Photoshop 2020
4) Intel DDS plugin for photoshop (https://gametechdev.github.io/Intel-Texture-Works-Plugin/)
5) Starcraft Art Tools 2016 (https://drive.google.com/file/d/1Kpg-KLTSWPrbhEl7JbqeytecmQc3Da0D/view?usp=sharing)
6) Script for photoshop (https://drive.google.com/file/d/1EbN_jQpoEL5wZrR1rRjb56KL9vmm-0nF/view?usp=sharing)
1) Install Photoshop 2020
2) Install Intel DDS plugin.
3) Copy "Intel" folder from step 4.1 zip file to C:\Users\<User>\AppData\Local\
4) Copy "reforged.jsx" (step 6) to C:\Program Files\Adobe\Adobe Photoshop 2020\Presets\Scripts\
5) Install 3ds Max 2016
6) Copy files from Art Tools (step 4) zip to root 3DS Max Folder (C:\Program Files\Autodesk\3ds Max 2016\)
7) Copy files from 3ds Max addon (step 7) to C:\Program Files\Autodesk\3ds Max 2016\scripts\Startup
Now, the conversion process consists of 2 steps: textures and model itself
Both scripts can handle either a batch or a single model, corresponding may be selected in script interface. To have an idea how this works, i recommend to start with a batch of 2 models, here's an example of Rifleman and Knight proccessed:
1.1) Run CascView and open Warcraft III storage. Navigate to place you want to proccess, for the sake of this manual, we'll pick <war3.w3mod:_hd.w3mod:units\human\knight\> and <war3.w3mod:_hd.w3mod:units\human\rifleman>, extract those folder to location of your choice (mine is C:\Games\Work\Wc3\).
Now there are shared textures that models use, you have to extract those as well, for units those are:
Corpse <race>_copse*.dds: (in this example):
1.2) Put those except for "Environmentmap" to some folder inside the one you're going to process (i make a folder called "shared", makes it "C:\Games\Work\Wc3\war3.w3mod\_hd.w3mod\units\shared\"), and rename "normal.dds" to "portrait_bg_normal.dds" like this:
2.1) Open Photoshop, do not open any file (just welcome screen), select "File->Scripts->reforged"
2.2) Select input and output folders (hint: if you "blank" the output folder and then select the input folder, it'll be suggested to you, i'd advice <input folder>\assets\textures\) and press "Convert"
Now, it'll take some time to proccess all the textures in our "knight" and "rifleman" folder, so help yourself with a tea or a cig. (~5-7 mins per model, several textures)
You'll understand that everything is done when you'll see the Photoshop welcome screen again.
2.3) Copy environmentmap.dds directly to output folder (<input folder>\assets\textures\) since it doesn't need to be proccessed.
The script is set-up for a system that Lemon Sky Studios used: it picks every "*_diffuse.dds" file in subfolders of <input folder> and requires the folder to have both "*_normal.dds" and "*_orm.dds" in same folder for it to work. It will not pick any .dds file with different name to left those over.
Now, you have to understand that Warcraft 3 and Starcraft 2 use different workflow for their engines, Reforged uses "Metallic" (or ORM) workflow, while SC2 use "Specular". You can make one look exactly like the other, but i consider Reforged models to be incomplete in terms of setup, and also to make it batch-friendly, i used my own - i was inspired by Heroes of the Storm models, cuz it's the closest to what we're trying to do here. My preset for the textures is not complex and can be read in the reforged script, but i can document it at a later day if needed.
3.1) Open 3ds Max. If you installed everything correctly, you shouldn't receive any warnings/errors.
3.2) The interface is pretty straight-forward, to understand how it works, i'd advice to use EXACTLY same folder for input as you used in Textures step (mine in this example "C:\Games\Work\Wc3\war3.w3mod\_hd.w3mod\units\", check for "\" at the end of the path) and hit "Start".
You will know everything is finished once the "Warcraft III Reforged Converter" window disappears. It will also take some time, so help yourself with a tea or a cig (x2) =))
Kindly note, that LOD_0 is a unoptimised geoset - it looks good, but it hit performance really hard when in numbers (i.e. you have a 200 supply of riflemen LOD_0 on the screen), so LOD_1 is adviced for units, currently unautomated.
Also, the material preset is my own, and is applied to all of the materials. I took that one as a mid-one amongst HotS models.
3.3) Once everything is done, you should have all your import structure in <input folder>\Converted\ folder:
4.1) To test those, you can create a new map with Renee's war3mod dependency (already in sc2):
4.2) Point import to your "Converted\" folder. Save the map so it'll generate archive with imported files.
4.3) Edit corresponding units and portraits:
4.4) For portrait, select Lightning: War3_Portrait
Et Voila: you can dl this test map for yourself to check out (https://drive.google.com/file/d/1hfa-sWKKhNigYEykzO6DCYCGB_jPeKsI/view?usp=sharing)
Now, please consider couple of things before you proceed:
1) I'm by no means a 3d-artist, so presets (for both model and textures) are not perfect, if you are, kindly advice me what will look better =)
2) Reforged models were made by several people, so using this technique, some out-of-place setup and animation glitches are expected. To get the complete result, some of the models should be fine-polished by hand.
3) It "weights" a lot and i mean it, my test map with 2 units (and 2 portraits) is 41.5mb. I've used a trick to save some space - i've put a model's alpha-mask (real alpha, not the teamcolor one) to R-channel of normal map, since it's unused to save ~500kb per texture (~3.5mb per model), but i believe there're more tricks to be made.
4) I tested this technique ONLY on units, but it should work for buildings, doodads and some of the effects.
5) At this point several things are imported from MDX, but are unused in M3:
- Lights. In my iterations, the only lights i found were there to make portrait look good when in WC3, however, SC2 uses way different lightning tech, so results appear to be weird-looking, i decided to disable those for the time being (dunno how it will work with fires/torches in the model though)
- Emitters. All Reforged models i encountered use only PopCornFX external emitters. I need some more investigation to continue working with those. Imported, but not exported atm.
- FacialFX. SC2 also use fome facial fx, and those might be compartible with Reforged. Just didn't investigate yet =)