Thank god for old forum posts, this saved me a headache, thank you. I adjusted it to make it work with Godot 4, and it works great!
If anyone is reading this looking to do the same:
- Change "shader_param/..." to "shader_parameter/..."
- Where it clams the skew parameter, change the body.movement to your player's speed value
- Make sure to set "local to scene" to ON under the "resource" tab in the sprite's material, so it's unique for every sprite.
Now I'll figure out how to do this but for singular tiles in a tileset...