Editing colours on static mesh which uses texture atlas UV mapping

Hi, I’m using an asset pack from the marketplace which has a vehicle mesh, the vehicle has a certain colour scheme of around 10 or so colours forming a “skin” or paint job on the vehicle. It looks like the default material references only one texture, which is a master texture atlas used throughout the rest of the pack. The atlas has blocks of colour regions and the mesh UVs are mapped onto those colours.

I want to edit those colours or create several different variants / skins for that mesh. This asset setup is a bit different to having different material slots for each colour region, which I’ve used before and makes editing the colours very easy. I figured out one can use the UV editor tool to move the UV nodes around the texture atlas and change the colours that way. However this is extremely fiddly to figure out which UV vertex correspond to which colour on a huge texture and drag them around. Also to save all these edited UV meshes separately doesn’t seem efficient. I’m wondering if there’s an easier way with this type of asset setup? Is there a better way to extract the different colours, and perhaps expose them as material instance parameters so they can be changed easily per instance?

Sorry if this is a daft question, I’m coming at this from a programmer’s POV so I don’t have much experience with art asset pipelines, and I don’t have access to the source art assets. Thanks!

Assets like this one from the Marketplace come with Materials which reference textures. You can export texture assets from Unreal Engine to image files then change their color in an editor like Affinity Photo or Photoshop, then re-import them back into UE. Simply:

  • Locate the material texture file corresponding to the Albedo color in the content browser
  • Right click on it and select ‘Asset actions’->Export
  • Give an export path - it will probably create an EXR file
  • Open the EXR in your editor of choice and modify the colours to suit your needs

If you want to have multiple variations of the same texture(s) with only minor changes, you could modify the material to let you pick the ‘skin’ at runtime using a parameter.