I need help with the current project I'm working on.
I'm facing an issue, where I have a character with multiple skins. 3 Of these skins, have different colored magic balls (so 2 ball colors in total) and we want them to emit light in Unity. I did an emission map for them, however they only emit one base color in Unity, but we need the skins to have different colored outer glows. How can we achieve this effect?
Thank you if you answer.
Hi! colored emission maps
To achieve different colored outer glows for your magic balls in Unity, you can use emission maps combined with MaterialPropertyBlocks. First, ensure that your emission map is set up to cover only the areas you want to glow. Then, in Unity, you can use a MaterialPropertyBlock to change the emission color for each skin dynamically. This allows you to adjust the color of the emission without creating multiple material instances. You can set the emission color in the MaterialPropertyBlock to match the desired glow color for each skin, and apply it to the renderer of your character.
You can duplicate the material and assign a different emission color for each skin. If you're using the same material on all of them, Unity will only show one emission color. Another option is to use a shader that supports emission color as a property you can override through script or material property block. That way you can assign different glow colors at runtime without creating separate materials.
@Sod4 A different approach if you're using URP with a 2D Renderer could be to create colored point lights for each magic ball, and to light up only certain texels of your skeletons use light masks (like for rim lights). You can check out the 2D/URP 2D Shaders example scene that can be installed from the Samples of the Spine URP UPM package via the Package Manager window.
@Sod4 If you do want to use custom colored emission maps, you could ensure at the atlas packing stage of your skeleton export that each of your special-colored skins ends up on its own atlas page, e.g. by packing by folder structure. Then you have a separate material for these skins. Obviously this will increase draw call count, alternatively you would need to write your own custom shader as TechSpectre wrote above, and pass down the respective emission info via Slot colors, e.g. by utilizing the dark color for emission color. You then need to enable "tint black" at the SkeletonAnimation component as usual to include the additional vertex data in the mesh and pass down the info to the shader.
Harald Thank you for your feedback!
I'm on the Unity side of this issue. And your first solution almost works! We've got different atlases and different materials. But, the JSON which contains the skeleton, has different paths to regions than we've got in the atlases, which results in this error:

We have used the texture packer separately to export into separate folders.
@balazsdan Please note that when packing via folder structure, a parent folder might need to be created so that the paths match. E.g. if you have a folder images as your normal image directory, and a subfolder skin1 in it, then packing only images/skin1 will result in incorrect attachment paths, you need to pack from a parent of the skin1 directory. Note that you could setup bash scripts to copy your attachments over to a packing directory, so that you keep your project directory untouched. Also note that you can place pack.json files in your subfolders to configure packing per directory.