Jump to content

[1.12.x] Textures Unlimited Recolour Depot


Recommended Posts

Very awesome mods, thx for all of the work done. However, there are many unsupported mods. Are there any resources on how to create the configs for turd and also would it be possible to overpaint unsupported parts with a specific color and transparency? This would at least give some use for unsupported parts.

Link to comment
Share on other sites

On 4/5/2024 at 11:25 PM, Orbital_phoenix said:

It is early days, but I have started work on a config and custom texture masks for making Restock recolourable:

CH4RQ8n.png

F3XlBfV.png

I cannot say when it will be ready as it will take a lot of time to create, but it is possible.

How is this going? I am DYING to use this!

Link to comment
Share on other sites

Posted (edited)

Wanted to check if TURD supported Restock and I just found out about this! Can't wait for it, if you are still working on them :)

Edit: I meant to quote @Orbital_phoenix's post about Restock configs, but it didn't work heh.

Edited by MARL_Mk1
Link to comment
Share on other sites

1 hour ago, theogameren said:

is this compatitable with restock?

On the previous page there's someone that was making progress on a config for restock, but not sure if they've dropped it or if they're still working on it.

Link to comment
Share on other sites

Is there a way to turn the painted mode on by default? The stock shaders are still the default, and you have to change it to recolor mode manually. I think it would be awesome to have a good default paint pattern as well, so it looks nice as you're building your crafts. Is there a config for this somewhere?

Link to comment
Share on other sites

11 hours ago, rheaunderstars said:

Is there a way to turn the painted mode on by default? The stock shaders are still the default, and you have to change it to recolor mode manually. I think it would be awesome to have a good default paint pattern as well, so it looks nice as you're building your crafts. Is there a config for this somewhere?

Someone can correct me if I'm wrong, but I believe to make the TU texture a default, you'd need to write a ModuleManager patch for each and every part that contains the textures, assuming that those textures would be different for each part (which they have to be in order to have the colors end up in the right spots).

Link to comment
Share on other sites

1 hour ago, Zelda said:

Someone can correct me if I'm wrong, but I believe to make the TU texture a default, you'd need to write a ModuleManager patch for each and every part that contains the textures, assuming that those textures would be different for each part (which they have to be in order to have the colors end up in the right spots).

I think they actually have parts bundled into groups, so you would need a patch to recolor each group rather than every part. I might be wrong though, cause I couldn't find any documentation for TURD. I think I might be able to make a patch like that with enough trial and error. I know Blackrack made a rudimentary one, so maybe I could start from there.

Link to comment
Share on other sites

Posted (edited)
20 minutes ago, rheaunderstars said:

I think they actually have parts bundled into groups, so you would need a patch to recolor each group rather than every part. I might be wrong though, cause I couldn't find any documentation for TURD. I think I might be able to make a patch like that with enough trial and error. I know Blackrack made a rudimentary one, so maybe I could start from there.

That may be the case for parts that share common textures, but each texture will need to be placed at the front of the queue using ModuleManager. To do that, I think you'd need to specify the specific texture for each part. You can use wildcards for some parts, I'm not saying it's not possible, just a lot of work. If you can make it work, or someone else has, great!

 

Edit: Forgot to include this: https://github.com/shadowmage45/TexturesUnlimited/wiki

Edited by Zelda
adding wiki link
Link to comment
Share on other sites

1 hour ago, Zelda said:

That may be the case for parts that share common textures, but each texture will need to be placed at the front of the queue using ModuleManager. To do that, I think you'd need to specify the specific texture for each part. You can use wildcards for some parts, I'm not saying it's not possible, just a lot of work. If you can make it work, or someone else has, great!

 

Edit: Forgot to include this: https://github.com/shadowmage45/TexturesUnlimited/wiki

I think I might have figured it out?? I don't have a lot of experience writing configs so it'll probably be messy but it seems like it's working.

So apparently TURD has specific shaders that apply to multiple parts. Like it has a shader called "MWNN_Stock_Paint_noseCone_W" that applies to 4 different nosecone parts.  So if you write a config to make that shader the default, it will affect those 4 at once. TURD has a lot of these set up already, so it shouldn't be too difficult, just a lot of copy and pasting.

Link to comment
Share on other sites

4 minutes ago, rheaunderstars said:

I think I might have figured it out?? I don't have a lot of experience writing configs so it'll probably be messy but it seems like it's working.

So apparently TURD has specific shaders that apply to multiple parts. Like it has a shader called "MWNN_Stock_Paint_noseCone_W" that applies to 4 different nosecone parts.  So if you write a config to make that shader the default, it will affect those 4 at once. TURD has a lot of these set up already, so it shouldn't be too difficult, just a lot of copy and pasting.

That's great! That's sort of what I meant by you'll need to so them for each part (or parts using common textures), though it sounds like you might have taken a different approach of affecting the shader itself instead of reordering the textures in the KSPTextureSwitch model to save a bit of work? If so, nice find! I have done a ton of recolors and hadn't thought of that. I agree, it will be a LOT of copy and pasting, but if you're willing to do that, you should release it as a patch for the community. :)

Out of curiosity, does that still preserve the stock shaders / textures as well, or overwrite them?

Link to comment
Share on other sites

9 minutes ago, Zelda said:

That's great! That's sort of what I meant by you'll need to so them for each part (or parts using common textures), though it sounds like you might have taken a different approach of affecting the shader itself instead of reordering the textures in the KSPTextureSwitch model to save a bit of work?

This is the method I've gone for:

Spoiler
@PART[noseCone]:AFTER[000_Standardised_Switching]:NEEDS[TexturesUnlimited&!Restock]
{
    @MODULE[KSPTextureSwitch]
    {
        @currentTextureSet = MWNN_Stock_Paint_noseCone_W
    }
}

Basically just copying and pasting that and customizing it for every shader in TURD. It does preserve the stock colors as well, so you can manually switch to it. 

I'm gonna make a post about it when I'm done! Might take a little while tho because I still have to figure out how this all works lmao

 

Link to comment
Share on other sites

Posted (edited)

@Zelda Okay so I have two problems I need to fix.

Here's some screenshots that kinda explain what I'm going for:

https://imgur.com/gallery/tu-recoloring-experiments-PLZEfu5

1: changing the texture set only effects the first set. If I have a part with multiple sets, like an engine or solar panel, it leaves multiple textures unchanged.

2: (Not exactly a problem, more like a feature I want to add) I want to make it so that the parts actually look good by default. So for the vector engine in the screenshot, maybe I could make a separate texture set specifically for that engine, and apply that texture specifically to the "engine" part.

Do you have any advice for how I should try to do this? I think I know how to make new texture sets, it would just be a lot of work. It's mostly the first problem that's got me stumped.

Edited by rheaunderstars
Link to comment
Share on other sites

Posted (edited)
4 hours ago, rheaunderstars said:

@Zelda Okay so I have two problems I need to fix.

Here's some screenshots that kinda explain what I'm going for:

https://imgur.com/gallery/tu-recoloring-experiments-PLZEfu5

1: changing the texture set only effects the first set. If I have a part with multiple sets, like an engine or solar panel, it leaves multiple textures unchanged.

2: (Not exactly a problem, more like a feature I want to add) I want to make it so that the parts actually look good by default. So for the vector engine in the screenshot, maybe I could make a separate texture set specifically for that engine, and apply that texture specifically to the "engine" part.

Do you have any advice for how I should try to do this? I think I know how to make new texture sets, it would just be a lot of work. It's mostly the first problem that's got me stumped.

Question 1: There should be multiple KSPTextureSwitch modules for each of those sections and you'd need to modify them all. See here for an example of a part like that, for how it is configured; your ModuleManager patch should target each: https://github.com/B9-Procedural-Wings/B9-PWings-Modified/blob/92969640221a47c18b615f61a931e1176ec4de08/GameData/B9_Aerospace_ProceduralWings/B9PWingsUnlimited.cfg#L202

And how you'd target them individually would be to use a HAS qualifier, within the patch, you'd do something like:

@MODULE[KSPTextureSwitch]:HAS[#sectionName[Base]]
{
	<your changes here>
}

Question 2: I think you can define your colors as color presets, then set them as the default colors in the KSP_TEXTURE_SET for the part. I think all the recolor textures in TURD start with a base texture set that defaults to absolute_red, absolute_blue, etc. If you wanted you could, after each part's KSP_TEXTURE_SET is created, run another patch that changes the default colors to your color presets. See 'Colour_Presets.cfg' and 'Recolour_Texture_Sets.cfg' under TU_Stock_Recolor for examples of how these things are defined.

Edit: One more thing, I highly recommend defining your own color presets to use regardless, and putting them in a category of their own so you can reuse your favorite colors. I have several categories set up, one for Metallics, one for Regular colors, one for colors that work well as fuel tank insulation, etc. It's nice to be able to just recall them with one click instead of needing to remember the color codes every time. There is one thing that doesn't seem to get saved, which is the Detail slider, but it's easy enough to adjust that per-part, and you are still spending less time even with that quirk than setting every slider.

I hope this helps!

Edited by Zelda
Forgot to mention benefits of color presets :)
Link to comment
Share on other sites

Posted (edited)
1 hour ago, Zelda said:

Question 1: There should be multiple KSPTextureSwitch modules for each of those sections and you'd need to modify them all. See here for an example of a part like that, for how it is configured; your ModuleManager patch should target each: https://github.com/B9-Procedural-Wings/B9-PWings-Modified/blob/92969640221a47c18b615f61a931e1176ec4de08/GameData/B9_Aerospace_ProceduralWings/B9PWingsUnlimited.cfg#L202

And how you'd target them individually would be to use a HAS qualifier, within the patch, you'd do something like:

@MODULE[KSPTextureSwitch]:HAS[#sectionName[Base]]
{
	<your changes here>
}

Question 2: I think you can define your colors as color presets, then set them as the default colors in the KSP_TEXTURE_SET for the part. I think all the recolor textures in TURD start with a base texture set that defaults to absolute_red, absolute_blue, etc. If you wanted you could, after each part's KSP_TEXTURE_SET is created, run another patch that changes the default colors to your color presets. See 'Colour_Presets.cfg' and 'Recolour_Texture_Sets.cfg' under TU_Stock_Recolor for examples of how these things are defined.

Edit: One more thing, I highly recommend defining your own color presets to use regardless, and putting them in a category of their own so you can reuse your favorite colors. I have several categories set up, one for Metallics, one for Regular colors, one for colors that work well as fuel tank insulation, etc. It's nice to be able to just recall them with one click instead of needing to remember the color codes every time. There is one thing that doesn't seem to get saved, which is the Detail slider, but it's easy enough to adjust that per-part, and you are still spending less time even with that quirk than setting every slider.

I hope this helps!

Thank you!! I'll see what I can do with that

Also, I found another problem:

https://imgur.com/gallery/tu-recolor-experiments-2-PbZ3xVJ

A part that has model variants, like engines, use a different system for their texture sets. Instead of KSPTextureSwitch, they use ModulePartVariants. I used the baseVariant code to set it to recolor mode, and it works perfectly except one thing. In the parts menu, the texture glitches out and appears black. It's fine and normal once you place the part, but I can't figure out how to fix the way it looks in the menu.

edit: forgot to include the code I used lol

//Even More Nose Cones
@PART[rocketNoseCone_v2,rocketNoseCone_v3]:AFTER[000_Standardised_Switching]:NEEDS[TexturesUnlimited&!Restock]
{
	@MODULE[ModulePartVariants]
	{
		@baseVariant = rocketNoseCone_v2_Recolour_BW
	}
}

//Even More Nose Cones
@PART[rocketNoseConeSize3]:AFTER[zzzz_Something_after_P_because_]:NEEDS[TexturesUnlimited&!Restock]
{
	@MODULE[ModulePartVariants]
	{
		@baseVariant = rocketNoseConeSize3_Recolour_W
	}
		
}

 

Edited by rheaunderstars
Link to comment
Share on other sites

Posted (edited)

Your best bet for setting the recolour set as default is by find and replace in the standardised config. I've covered this previously in this thread. Basically each texture set should mostly have common suffixes so finding currenttextureset = Default_ and replacing it with currenttextureset = MWNN_Stock_Paint will sort that in a jiffy... well use correct syntax and words, I'm just going from memory.

 

Having it painted in something other than RGB needs the colour block presets changing in the texture set and that really will need a module manager patch. It's something I had considered doing long ago but I avoided it because half the point was for people to colour parts / craft themselves.

 

Edit:

Example for finding and replace...

https://forum.kerbalspaceprogram.com/topic/174188-112x-textures-unlimited-recolour-depot/?do=findComment&comment=3481141

Edited by Manwith Noname
Link to comment
Share on other sites

Started Working on some of the NFT parts. Much more work than the simple ballutes I did lol

 

Spoiler

txqorE4.png

 

SJi16zi.png

 

I couldn't get the hatches on the top/bottom to recolor though. I have the texture created for it, and I tried a few different ways to do it that I found in the stock recolor. Specifically the mk1pod, but it didn't seem to work. Any pointers on where to look/examples?

Thanks!

 

 

Link to comment
Share on other sites

On 6/3/2024 at 1:30 PM, rheaunderstars said:

@Zelda actually yk what, I'll just finish a rough prototype version and then post it so more people can help debug it and stuff. I'll let you know when it's up so you can look through it if you want!

Sorry, work was crazy this week and forgot to follow up, but looks like MWNN came up with an excellent suggestion. Nice. :)

Link to comment
Share on other sites

On 6/6/2024 at 7:52 PM, jthero7 said:

I couldn't get the hatches on the top/bottom to recolor though. I have the texture created for it, and I tried a few different ways to do it that I found in the stock recolor. Specifically the mk1pod, but it didn't seem to work. Any pointers on where to look/examples?

Thanks!

 

 

I would look at the MK4 Spaceplane pack as it is another Nertea mod and follows his same methodology. For this part in particular it looks like you need to setup a material section in to your TextureSet that covers the mesh CommonHatchRound.

As an example of multi material setup of a Nertea part, see below...

Spoiler

@PART[mk4tail-1,mk4tail-2,mk4tail-3]:FOR[000_Standardised_Switching]:NEEDS[TexturesUnlimited&MarkIVSystem]
{
    MODULE
    {
        name = KSPTextureSwitch
        sectionName = Appearance
        currentTextureSet = MKIV_Default_mk4Tails
        textureSet = MKIV_Default_mk4Tails
    }
    %MODULE[SSTURecolorGUI]
    {
        %name = SSTURecolorGUI
    }
}
+KSP_TEXTURE_SET[Stock_Default]:NEEDS[TexturesUnlimited&MarkIVSystem]
{
    @name = MKIV_Default_mk4Tails
    @MATERIAL
    {
        mesh = Iguana
        // mesh = Adapter
        
        mesh = Armadillo
        // mesh = AdapterCommon
        
        mesh = AdapterCommon2
        
        texture = _MainTex,MarkIVSystem/Parts/Fuselage/mk4adapter-2
        texture = _BumpMap,TURD/TU_Standardised_Switching/000_PlaceholderTextures/Bump
        texture = _Emissive,TURD/TU_Standardised_Switching/000_PlaceholderTextures/Emis
        // texture = _AOMap,TURD/TU_Standardised_Switching/000_PlaceholderTextures/Occ
    }
    MATERIAL
    {
        shader = KSP/Emissive/Bumped Specular
        
        mesh = Adapter
        mesh = AdapterCommon
        
        texture = _MainTex,MarkIVSystem/Parts/Fuselage/mk4adapter-1
        texture = _BumpMap,TURD/TU_Standardised_Switching/000_PlaceholderTextures/Bump
        texture = _Emissive,TURD/TU_Standardised_Switching/000_PlaceholderTextures/Emis
        // texture = _AOMap,TURD/TU_Standardised_Switching/000_PlaceholderTextures/Occ
    }
    MATERIAL
    {
        shader = KSP/Emissive/Bumped Specular
        
        mesh = SkateMain
        
        texture = _MainTex,MarkIVSystem/Parts/Fuselage/mk4adapter-3
        texture = _BumpMap,TURD/TU_Standardised_Switching/000_PlaceholderTextures/Bump
        texture = _Emissive,TURD/TU_Standardised_Switching/000_PlaceholderTextures/Emis
        // texture = _AOMap,TURD/TU_Standardised_Switching/000_PlaceholderTextures/Occ
    }
    MATERIAL
    {
        shader = KSP/Emissive/Bumped Specular
        
        mesh = Basic
        mesh = TankLF
        mesh = TankLFO
        mesh = TankRCS
        
        texture = _MainTex,MarkIVSystem/Parts/Fuselage/mk4common-1
        texture = _BumpMap,TURD/TU_Standardised_Switching/000_PlaceholderTextures/Bump
        texture = _Emissive,MarkIVSystem/Parts/Fuelage/mk4common-1-e
        // texture = _AOMap,TURD/TU_Standardised_Switching/000_PlaceholderTextures/Occ
    }
}

 

Link to comment
Share on other sites

On 6/7/2024 at 4:02 PM, Manwith Noname said:

I would look at the MK4 Spaceplane pack as it is another Nertea mod and follows his same methodology. For this part in particular it looks like you need to setup a material section in to your TextureSet that covers the mesh CommonHatchRound.

As an example of multi material setup of a Nertea part, see below...

  Reveal hidden contents

@PART[mk4tail-1,mk4tail-2,mk4tail-3]:FOR[000_Standardised_Switching]:NEEDS[TexturesUnlimited&MarkIVSystem]
{
    MODULE
    {
        name = KSPTextureSwitch
        sectionName = Appearance
        currentTextureSet = MKIV_Default_mk4Tails
        textureSet = MKIV_Default_mk4Tails
    }
    %MODULE[SSTURecolorGUI]
    {
        %name = SSTURecolorGUI
    }
}
+KSP_TEXTURE_SET[Stock_Default]:NEEDS[TexturesUnlimited&MarkIVSystem]
{
    @name = MKIV_Default_mk4Tails
    @MATERIAL
    {
        mesh = Iguana
        // mesh = Adapter
        
        mesh = Armadillo
        // mesh = AdapterCommon
        
        mesh = AdapterCommon2
        
        texture = _MainTex,MarkIVSystem/Parts/Fuselage/mk4adapter-2
        texture = _BumpMap,TURD/TU_Standardised_Switching/000_PlaceholderTextures/Bump
        texture = _Emissive,TURD/TU_Standardised_Switching/000_PlaceholderTextures/Emis
        // texture = _AOMap,TURD/TU_Standardised_Switching/000_PlaceholderTextures/Occ
    }
    MATERIAL
    {
        shader = KSP/Emissive/Bumped Specular
        
        mesh = Adapter
        mesh = AdapterCommon
        
        texture = _MainTex,MarkIVSystem/Parts/Fuselage/mk4adapter-1
        texture = _BumpMap,TURD/TU_Standardised_Switching/000_PlaceholderTextures/Bump
        texture = _Emissive,TURD/TU_Standardised_Switching/000_PlaceholderTextures/Emis
        // texture = _AOMap,TURD/TU_Standardised_Switching/000_PlaceholderTextures/Occ
    }
    MATERIAL
    {
        shader = KSP/Emissive/Bumped Specular
        
        mesh = SkateMain
        
        texture = _MainTex,MarkIVSystem/Parts/Fuselage/mk4adapter-3
        texture = _BumpMap,TURD/TU_Standardised_Switching/000_PlaceholderTextures/Bump
        texture = _Emissive,TURD/TU_Standardised_Switching/000_PlaceholderTextures/Emis
        // texture = _AOMap,TURD/TU_Standardised_Switching/000_PlaceholderTextures/Occ
    }
    MATERIAL
    {
        shader = KSP/Emissive/Bumped Specular
        
        mesh = Basic
        mesh = TankLF
        mesh = TankLFO
        mesh = TankRCS
        
        texture = _MainTex,MarkIVSystem/Parts/Fuselage/mk4common-1
        texture = _BumpMap,TURD/TU_Standardised_Switching/000_PlaceholderTextures/Bump
        texture = _Emissive,MarkIVSystem/Parts/Fuelage/mk4common-1-e
        // texture = _AOMap,TURD/TU_Standardised_Switching/000_PlaceholderTextures/Occ
    }
}

Ok, so finally got some time to work on this again, and I got something to work. I couldn't get it to work with the few examples I found in the MK4 pack, it would always only repaint the first MATERIAL block it found, and never the second. What did work was:

Spoiler
@PART[command-25-1]:FOR[zzzz_Something_after_P_because_]:NEEDS[TexturesUnlimited&NearFutureSpacecraft]
{
	@MODULE[KSPTextureSwitch],0
	{
		textureSet = NearFutureSpacecraft_Paint_NFS_Pandora_Main
	}
	@MODULE[KSPTextureSwitch],1
	{
		textureSet = NearFutureSpacecraft_Paint_NFS_Pandora_Hatch 
	}
}
+KSP_TEXTURE_SET[MWNN_Stock_Paint]
{
	@name = NearFutureSpacecraft_Paint_NFS_Pandora_Main
	@MATERIAL
	{
		shader = KSP/Emissive/Bumped Specular

		mesh = 25mPodAdvanced
		mesh = PodDockingLight
		
		vector = _DiffuseNorm,0.74,0.74,0.74
		vector = _MetalNorm,0.5,0.5,0.5
		vector = _SmoothnessNorm,0.46,0.46,0.46
		
		texture = _MainTex,NearFutureSpacecraft/Parts/Command/command-pods/command-pod-25-advanced-1
		texture = _BumpMap,NearFutureSpacecraft/Parts/Command/command-pods/command-pod-25-advanced-1-n
		texture = _Emissive,NearFutureSpacecraft/Parts/Command/command-pods/command-pod-25-advanced-1-e
		texture = _MetallicGlossMap,NearFutureSpacecraft/Parts/Command/command-pods/command-pod-25-advanced-1-s
		texture = _MaskTex,TURD/TU_NFS_Recolour/command-pod-25-advanced-1_paint
	}
}
+KSP_TEXTURE_SET[MWNN_Stock_Paint]
{
	@name = NearFutureSpacecraft_Paint_NFS_Pandora_Hatch
	@MATERIAL
	{
		shader = KSP/Emissive/Bumped Specular

		mesh = CommonHatchRound (7)
		mesh = CommonHatchRound (8)
		
		vector = _DiffuseNorm,0.74,0.74,0.74
		vector = _MetalNorm,0.5,0.5,0.5
		vector = _SmoothnessNorm,0.46,0.46,0.46
		
		texture = _MainTex,NearFutureSpacecraft/Parts/Command/command-pods/restock-crewed-hatch-1
		texture = _BumpMap,NearFutureSpacecraft/Parts/Command/command-pods/restock-crewed-hatch-1-n
		texture = _Emissive,NearFutureSpacecraft/Parts/Command/command-pods/restock-crewed-hatch-1-e
		texture = _MaskTex,TURD/TU_NFS_Recolour/restock-crewed-hatch-1_paint
	}
}

iNnl3wK.png

That does mean that the PAW has two option fields for the two different meshes, but at least it's working now. Unless I'm just missing something obvious?

 

Edited by jthero7
Added Picture
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...