Layer Blending Question

Delving deeper into layer stuff and was wondering if I could do something like this automatically with 2 layers?

Instead of having to draw it myself? It’s not like it’s hard but it would be real nice. The best way to describe it is a color shift macro?

I don’t know of a blend mode that would create that effect. If you wanted to automate it in Aseprite with a Lua script, you’d have to formalize it into rules where x inputs yield y output.

In the example picture you posted, the black in the staff’s outline turns into a lavender, #8090d8. It turns into the same lavender for many different colors in the glowing sphere layer, one of which is white.

The change in under layer would respond to the color in the over layer for this to be a blend, not a filter… But this looks like a blend insofar as the filter only applies where the two shapes overlap. It could also be a blend if the output changes based on whether the staff is the under- or over-layer.

What I see: (1) reduced contrast in lightness; (2) increased chroma; (3) either a tint, hue invert, hue shift or maybe a cool-warm shift. (Both the grays and the yellow turning into cyan is confusing me a bit as to what you’re after in the final step. For the magenta in the glow, the complementary hue is usually a green.)

“Integration hell” is a big problem. Even if – individually – the steps above are accurate, you wouldn’t want the final result after they’re put together:

The blue tint from your original image is missing. So hue shifting might be swapped out for a ‘warm’ to ‘cool’ shift instead (in LAB color space, subtracting from the B axis).

And on and on.


I mentioned the black to lavender transformation earlier because:
Gray colors – including white and black – pose a tricky edge case for polar color shift filters and blend modes (Hue, Color, Saturation and Luminosity). Hue is undefined for gray. Worse still, many graphics packages default the hue of gray colors to zero, so grays have the same hue as red. You can assign an arbitrary hue to grays – usually from purple to yellow – based on lightness.

However you still need more information to choose between mixing around the ‘warm’ or ‘cool’ side of the color wheel. For blending, the hue of the over-layer may help decide how to re-saturate a gray on the under-layer. But if both the over- and under-layer are grays, there’s not much info to go on.

1 Like

Shoot, guess it wasn’t clear it was a hand! Those are hard.

It’s Shadow the Hedgehog’s fist - I’m trying to replicate the Chaos Bursts, like here:

For a project I’m working on. Thanks for the info, I’ll either just recolor manually (which won’t be that hard) or make a simple little Lua script.

1 Like

Oh cool. A little bit of information goes a long way!

shadowSonicBattle

This is an animation I reconstructed from Shadow - Sonic Battle - Game Boy Advance - The Spriters Resource … might not be entirely accurate.

Now that I see a bit more, maybe a gradient map would help? Say for example, I wanted to apply the palette to a character from Street Fighter Alpha:

I would have two maps – one for cyan and one for magenta. I would flip the gradients for the inverse light.

1 Like

Oh wow, this might work! Thanks a ton! How would I use this feature? Is it a script/plugin or baked into Aseprite?

And yeah, that reconstruction is supposed to be overlayed over the normal sprites, so it looks like this…

…without that animation, of course.

Aseprite doesn’t have a built-in gradient map. GIMP and Krita both do; both are free. I think Pixelorama has one, not sure about other pixel art graphics editors.

I made a gradient map for Aseprite. This is a short demo video (no audio):

Due to all the features, you have to download the scripts in bulk from https://github.com/behreajj/asepriteaddons, not just one unfortunately. The gradient map creates a new layer, it doesn’t edit the layer in-place; that way it’s less likely to destroy your work.

I wouldn’t be surprised if others have made their own. A lot of people post their extensions to Itch and/or Github, so I’d look there.

[Edit: Layer masking, an alpha multiply or intersect, would be the other tool that would help overlay the effect over normal sprites. Again, not something Aseprite has.]

1 Like

And Aseprite also doesn’t have that layer clipping thing either, right? I see it often in photoshop and it limits edits to inside already drawn things.

Gosh, I assumed Aseprite had a few more features like that considering the massive community around it.