Anyone can help with Blender drivers

I have 3 normal textures for a mesh. One is the main one and the other 2 are expressions. I am trying to use a driver/s to use this textures when posing a bone.

.

My problem comes in that my knowledge with drivers is almost none. All I know is to use the var expression which I have used for posing correctives and also for interacting between 2 textures in the shader editor. But now I have 3 textures and I honestly can’t figure out how to setup the driver.

What I’m trying to do is have the main normal texture by deffault, and then move a bone lets say 1m +y direction to change to the second texture. But I will also like that if I move the bone to 1m -y, then the 3rd textures could be applied instead. And back to 1st texture when rest pose again. I hope it makes sense.

Thanks in advance for anyone that can help!

An easy (if crude) way to do it is to simply set second driver expression (in the second Mix Node) to “-var”.
Mix textures in the right order and you’ll have mix values as follows:
rest texture: Fac1 = 0, Fac2 = 0;
second texture: Fac1 > 0, Fac2 < 0 (which is outside of [0,1] range so it doesn’t do anything… i think);
third texture: Fac1 < 0 (ditto), Fac2 > 0.

Not exactly elegant

Not sure if I understood this, but I will give it a try XD

here’s an example if it helps (move empty on Y-axis):
drivers2.blend (680.0 KB)

Thanks a lot!
It did help. It was simpler than what I thought.
And thanks for the quick reply, it took less than 4 hours to get a solution. I’m used to wait at least 24 hours between replies XD