Creating beads of sweat/blood on face - possible to create normal map from alpha map?

Hi, I created a character that is sweating. So far, I painted a black and white alpha mask to determine where the sweat should be, and made those masked areas:

  1. have scalable roughness via parameter (sweaty areas obviously have least roughness)
  2. have a FLAT normal map (I just made the R and G components scalable and turned down to zero)

It looks good so far, but that 2nd part above could be taken further (I just dont want the normal map to be completely flat!). I want to create a normal map from height, and I know there is a function to do that, but is there a way to do that with just the alpha map? I attached a pic below of what Im looking for. I want to make a gradient effect from the perimeter of the alpha map. Say, 3-10 pixels away from the black-white border of my alpha mask. This will make the alpha map (used as height) have a regular “bumpiness” to the sweat. Is there any way to do this? Throught script or blueprint? In photoshop, this is just a feathered selection (from alpha) and fill, but I assume in UE4 it’s gonna be a layered approach.

Or is there another way to create sweat and blood on face (something that actually resembles the bumpiness of water)?

1 Like

it would probably be a lot more efficient to save the height in a different channel of the alpha map compared to blurring the texture in the material.

Thanks again for the reply Divi! I’ll definitely do that if it is the case that it’s more efficient, but it would feel like it’s more manual work.

Also I was wondering if you know how they did the beads of blood down Ellie’s face in the latest “the last of us 2” trailer? Any idea of similar tech inside ue4?

considering that it it’s a cinematic it is most likely art directed for that specific shot. the effect appears to be made up of the blood trail that’s in the skin shader. very likely just for that specific line and blending in a different normal/spec/gloss. the drop itself is with 99% certainty just a mesh thats following the face geometry to hide the blend for the trail.

then again it’s naughty dog and they may very have made a system to have procedural blood drops. what i’d try to get something similar in ue4 is to have the drop-mesh stick to the skin via linetracing and write the trail information to a render target to create the blood normals in a shader and then write that material to a different render target and apply it to the character shader. just very high level first approach idea.
there are probably better approaches for the individual parts, but that’s the easiest approach i can think of right now.

Hey Divi thanks again, that’s exactly the information I was looking for. Really appreciate your feedback! The latter option seems a bit much for me right now since I’m just rendering a character, but I’ll stick with teh first option of just manually adding a sweat texture. I’ll definitely try the bloodmesh option later down the road