Non shader-based normal map or alternative?

My game has a modular hair-creation system, with 3 interchangeable pieces. There could be upwards of ~10 total options for each piece, so around 30 meshes. It’s a stylized game, so all of these pieces can (and do) share the same shader, except if I want to use normal maps baked from high-poly versions of the hair pieces.

The hair shader has parameters such as color that need to be controlled across all the hair pieces, so I’m using material instance dynamic, and so I can’t use multiple shaders. Is there any way to have normals applied independently from the shader? Or otherwise is there a process for checking what mesh the shader is applied to, and using material instance dynamic to pick from a list of normal maps that would still work with my color changing blueprint? How might I go about this?

Thanks!

Normal maps are done in pixel shader. So it’s need to be done on material. You can add static switch parameter to branch if material use normal map or not. Another easy option is to use Default/Flat normal map for meshes that does not have normal map so then every mesh has some sort of normal map.

Can’t you provide a texture as a parameter to material instance?