I've been using a simple toon shader to give objects basic shading in Blender, the idea being that I can then export the Freestyle lines and colour the result in a conventional art package to get the look I want.
Here's an example using a highly exaggerated shading value (the real one is less extreme, this is just for demonstration purposes)
As an aside I noticed the "white" part isn't actually white, but light grey, and I'd like to fix that if at all possible, but that's another problem.
Thanks to Paul O'Caggegi's tutorials I've recently discovered you can get a texture to be applied to an object with no shading at all by simply omitting any shaders. If I apply a texture made in my art package of choice that's done that way then this is what I get.
What I want to do is combine these effects so that the texture gets applied first, and then the toon shader is applied to darken it as appropriate.
How I would do this normally in a 2D art application is create a multiply layer above the colour layer and then paint into that with a purple colour with the multiply layer at about 50% opacity. That provides fairly pleasing shading in most circumstances. I'd like to replicate that in Blender.
Naturally my first thought was the multiply node, but the end result is monochrome.
Then I tried the mix node, but this doesn't seem ideal either because it just overlays the toon shader on top of the texture, where I want to have the toon shader darken it (in the 2D world, "multiply" treats each colour as a value between 0 and 1, with 1 being the brightest value, therefore multiply one colour with another will darken the result).
Is there a way to mix these two shaders together in the way I'm trying to achieve?
EDIT: I discovered the Separate and Combine nodes and thought I'd try doing it on a per-channel basis. The results are a bit closer to what I'm trying to do, but a) this seems needlessly overcomplicated and b) the multiply effect is too strong. Like I said I normally only apply it at 40-50% opacity in 2D. But for the record, here's how the result looked: