Changing texture offset based on light direction

So pretty much I’m trying to make an eye material based on the ones in Sonic Lost World. I have a specular emissive texture masked by the iris, and a shine set to always be opposite of the specular’s position.

The issue I’m having with this is, I need to know how I can change the specular texture (light green)'s offset depending on the light direction relative to the character. Additionally I’d need to clamp the offset between some set values. I have no idea where to start with this and to boot I’m still learning my way around Unreal.