If you look at my example, there is a disabled event 1, where I tried to fade from red to blue overlay. If you enable it, it happens pretty quickly immediately when you run the app.
So the idea is when your character is getting close to some object (or starts overlapping it), to set target overlay color and then change R/G/B values of the layer over time to that color. As in my example, R is changing from 100 to 0, G stays 0, B changing from 0 to 100. You can use lerp, tween or any other method.
There are probably other ways to do this. You can create several layers like that and change their opacity over time, making one visible and another invisible, or even mixing them together.