Notice the gap in the middle of the shadow, if there was no vertex painting, that shadow would be accurate. Real time shadows are rendered correctly with the shadow matching the matching how the material is set up and shown in the viewport. It’s as if lightmass isn’t reading the vertex color information when looking at the masked material.
Turning cast shadow as masked does not help, plugging the lerp into opacity as well does not help.
I am looking into your issue and have not had any problems using your setup to generate a mask. If I may ask, what are your lightmass settings on the surface which the shadows are being projected on? Have you tried to increase the lightmap resolution of those objects and adjust the shadow exponent on the same object as well?
Let me know -
Thank You
Eric Ketchum
EDIT: I was able to reproduce this issue, and have begun tracking down the cause.
After some research, Vertex Painting when used to control opacity will always work on the mesh, but the light pass on a Static Light will not reference the vertex information. You would have to set the light to Movable, Stationary will also reference the Static Light build and will not render our correctly based on the vertex painting.