Tutorial:Updating textures to WH3

From Total War Modding
Revision as of 12:05, 21 April 2023 by Cataph (talk | contribs) (→‎Intro: WH3 is very metal, but also rough)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Intro: WH3 is very metal, but also rough

This is more or less a temporary page in wait for better methods. I'm not a specialist in this field, like a graphic or something, but I speak as I find of stuff I banged my head on. That said, let's get to it.

You have textures that you made or edited for WH2 and now you want them to work in WH3. Thing is, they won't, because WH3 moved to a metalroughness method instead of the old glosspecular.

What does this mean in practice? Good question, especially because I don't know the theory.

  • The diffuse texture is replaced by the base colour. They both carry the colours, except that the base colour dds also incorporates the old specular, that is to say metallic surfaces that were mostly black in diffuse are now... metal.
  • Material map is a texture that replaces what specular and gloss did. It's a green/orange map with no alpha that actually carries the metalroughness we talked about. Orange is reflective metal, green is rough and not reflective.
  • Normal maps unchanged, masks unchanged.

For the most usual reskins, we now have to worry about one fewer texture. Great, but how do we convert?

Automatically via Asset Editor

Asset Editor by Ole includes a plug-in made by Phazer that can convert WH2 textures into WH3 for you. However, at the time of writing (September '22), this yields a high-gamma result, which is to say, quite a bit brighter than it should be. Incidentally, the button also works to force-fetch existing textures in case Assed can't initially load them for some reason.

You can use this function, and then tweak the base colour as needed, or you can do it manually as follows.

Diffuse into Base Colour

This one is pretty easy. Grab your PSD or whatever layer-preserving file (you have those, right?) and merge diffuse and speculars from WH2 into one texture that has the metal surfaces from the latter. That's it. Unless you have particular metallic surfaces like rust, which will likely need some tinkering to get good results.

If you only added some small details to diffuse or specular, paste them over the new base colour. Save with Photoshop or Paint.net as DX10+ sRGB. As far as I know, GIMP can't handle it, some people work there and then save in Paint.net. Remember the alpha if you need it, and the mipmaps.

One small detail is that while autoconverting textures for WH3, base colours seem to have lost quite a bit of details in some cases. You might want to keep better-detailed surfaces from the WH2 diffuse, who also won't have the red mite infestation CA's process glitched on us.

Gloss and Specular into Material Map

Things get a lil bit funkier here.

If you had small edits to carry on for better details, paste them on a new material map for that vanilla asset you're editing, and apply that layer as... honestly, whatever method works best for that case, you'll have to tinker. Overlay or Soft Light maybe.

If you have more complex cases, there is a super manual process I found that works pretty accurately.

material map mock-up

You start with the WH2 gloss you had lying around. For this mock-up I did at the time, I experimented with the gloss for dwarf warrior torsos and tried to get a result as close as possible as the one they actually have in WH3.

The layers in the bottom right have titles that explain what they do. The only one I forgot to properly label is the orange fill (r255 g180), which is a Hard Light method. They're all at 100% opacity.

I have no idea how this all translates to GIMP or Paint.net, to be honest, you'll have to adapt.

The trick is using the inverted (ctrl+i) gloss as base for both colour settings, and masking out (for the green) and in (for the orange) the parts that they need to affect. This selection part is the annoying bit, especially when you have many metal parts around the place. It gets a bit easier if you combine this with selecting areas from the old specular, or whatever works for you to isolate what you need. It's also easy if you have a texture with like one big chestpiece that is the only metal part. Anyway, try to work smarter when you can.

Again, this method is overkill if all you did was adding one small detail, in which case paste it on an existing mat map. Or if you only recoloured something in the diffuse, in which case you don't need to worry about metalness at all.

Save mat maps as BC1 with no alpha.



Useful Links

You can learn more about metalroughness with this video: https://youtu.be/mrNMpqdNchY

MATERIALIZE free software can be generally useful, especially if you're making new normal maps https://www.youtube.com/watch?v=vtnJToPxBNo

It's a bit off-topic, but since we're talking about normal maps, here's a procedure to get the orange-hue normals used by TW. Feed the base colour texture into Materialize, from there create the Height Map, and from that the Normal. Settings are a crap shoot as far as I'm concerned, I just wing it. When you're satisfied of the texture's bumpiness, save the blueish normal. Then grab that and put it in PS or editor of choice and do this:

  • Go into the Channel tab, select the entire red channel and paste it into an alpha channel.
  • Paint the red channel completely white.
  • Paint the blue channel completely black.

Tadaaa, you got a viable normal map. More or less.

Updating Models

Of course it doesn't end with updating textures, does it? Even if the conversion itself was easy, you need to make sure the model works fine too.

The rigid model needs to be saved again through Assed if it was last saved there during WH2. Anyway, you can use Assed to regenerate the correct paths. You can get rid of the texture paths you won't be using, from diffuse to specular.

One word of warning about rigid models is that they tend to have a glitchy uniform mask if they have areas painted as blue in their mask dds. You can recognise this in-game if they start having full-black metal parts. That's the tertiary uniform colour acting up. To avoid it, generate a wsmodel with Assed, and use that instead.

Also, a lot of paths may have been changed. For example, the chaos dwarf crew folder was renamed, so those textures wouldn't be found. You'll have to grind those errors down.

Now, for the annoying part. WH2 wsmodels, those won't work anymore. Not one. My suggestion is to start from scratch. Generate those with Assed when you can, and then tweak xml materials manually when you need special shaders or different texture paths. I don't really recommend doing it the stubborn way, fixing xml materials one by one, because it's very prone to error and frustration. Besides, if you had any kind of emissive or ethereal glow, those need to be redone because this is what a WH2 weapon emissive looks like in WH3. The colour will be wrong and the glow's power will scorch your cornea.

That said, if you compare xml materials from wh2 to 3:

  • only one blood map;
  • in most cases, the slot name for textures is a version 2 (just do it, you don't want to have problems out of stubborness);
  • you need to have slots for base colour and mat map. You can remove the old stuff like spec and gloss;
  • not having a texture slot for the mask also tends to cause glitches, like the wsmodel fetching nearby mask textures in weird places;
  • a boolean parameter for applying blood;
  • in many cases, the actual paths to textures were changed (e.g. chaos dwarf artillery crew folder renamed);

Updating the variantmeshdefinition

Hereby VMD as usual.

VMDs weren't changed much, but you need to add a is_stump metadata to all gore stumps in your VMDs. All of them. Otherwise they'll show up before the guy is cut up. Just copy the metadata from a vanilla VMD and start copy pasting. I recommend replacing the pre-existing <META_DATA>equipment</META_DATA> with both <META_DATA>equipment</META_DATA><META_DATA>is_stump</META_DATA>, so you don't have to do it too manually. You do have to do it VMD by VMD.

You can, however, get rid of any imposter definition in your VMDs. CA seems to have done so and who am I to say no to a chance of making the VMD more readable?

Fin

That's pretty much it. It can be a bunch of work and it's a good chance to rethink and restart from scratch with new methods and ideas, instead of wasting time updating old stuff. While I work through updating my stuff, it certainly was an excellent reason to get rid of textures that were five years old.

If you're sure you want to keep as much of your old content as possible, there are no two ways around it, it's gonna be a slog one way or another. Take it easy and don't burn yourself out.