How to offset textures every tiles?

I want to offset texture based on tiles, I don’t know if it’s possible.
E.g. when I have a texture like this:
image

Normally, when I assign a texture, the texture tiles like this:

However, I wanted it to offset 25% vertically every roll:

I need the UV to stay local, if this is doable, how?

I have a solution.
I came across this tutorial and it came with some customized Material Functions.

I play around with it and came up with something that works, tho I do not 100% understand the math behind them:


Material Functions:


I also made the material Translucent to avoid jittering from AA:
image

For anyone wondering, this is an attempt to create a Ticker Material.
Material Instance:

Result: