The shader works great on objects with their default alpha levels, but adjustments to image_alpha appear to be ignored. Can this be solved? I'm trying to fade out an object while it's color shifting.
Hue Shader for GameMaker: Studio
A downloadable asset pack
It can be applied fullscreen without application surface, which can give significant performance boost on mobile devices. But you always can use it on surface too.
Hue Shader can be used on a specified sprite or background, or on fullscreen. It uses color remapping for working and doesn't change the alpha channel, so it can be used even without surfaces with special system. You should specify from what depth to start to use shader and on what to finish - on the GUI layer for example, or use shader only on sky, etc.
All graphics are from kenney.nl packs
With this shader you can:
- Change colour properties within time.
- Use the shader on a sprite, backgroun or surface.
- Don't use surface and apply shader on any graphic with a specific depth.
- Do all of it fast and beautiful.
- Get perfect work on all platforms - Windows, Mac, Linux, Android, iOS, HTML5 and other.
- Get technical support if purchase.
You need intermediate knowledge of GML to use.
Please write a review if you like the asset and tell me your suggestions for improvement. If you found an error in my code or my English, please contact me ;)
My other assets! Physics rope, liquid simulation, textured terrain, custom savegame, day night cycle, breakable physics objects, shaders and more.
Click download now to get access to the following files:
Log in with itch.io to leave a comment.
Excuse me, I'm trying to apply this to my project, but I would like to make it only affect the background and tiles, if possible, not sprites. How would I change the code to accomplish this?
For the record, I have gotten it to work automatically, and with timers I've made it so it only shifts the hue a certain amount back and forth, it's just I don't know how to make it discriminate between sprites and background/tilesets. That's what I need help with.
Hi! Did you figure it out? I'm wondering the same thing too!
Hey! I did figure *something* out, so for me it affects just the Player -
In the Player Create Event, I put:
pos_uni = shader_get_uniform(sh_hue, "Position"); // control shader
// -1 - min, 1 - max
pos = 0;
and then (still in the Player object) I have an enemy Collision Event, so when Player takes damage I have:
// Take damage
pos = 2; //references Hue Shader
^ this alters the colour of the Player, but the whole colour (ie. white bits also change hue). I haven't had a play around to see if I can get it to only change certain parts of the sprite, but maybe this'll help!
What is it?
Not avaliable on Windows on itch? Why?