Do skeletal meshes support vertex colors on mobile?

When I assign a material to visualize vertex color channels on one of our characters, the vertex colors appear as expected when preview rendering is set to Shader Model 4 or 5. However, as soon as I switch to any of the mobile preview rendering modes, the values switch to white…and this unfortunately appears to be the case on device as well.

Is this a bug or a known limitation of mobile rendering via UE4 on Android and/or iOS devices?

I use vertex colors to drive material properties on mobile shaders I write in Unity all the time…so this seems like an odd limitation.

As a workaround, I tried to bake the colors into additional UV coordinates (UV1 and UV2), a workaround which I thought might be valid based on a simple test (two joint skeleton, simple weighting) but proved no better than the vertex colors when used the same approach with a full character (as with color, it works in all but mobile rendering modes…however I get different colors…is it possible these channels are used to pass along skin weight information?)

Discovered what the issue was after a LOT of trial and error…and almost punted on using vertex colors until a character came into the game with working colors and no need of any workaround. Apparently some in the vertices in the mesh of the character I couldn’t get working were weighted to more than 4 joints…had no idea this would cause issues with values being passed through vertex colors or customized UVs, but that’s what it turned out to be.

How did you manage to paint vertex colors onto a skeletal mesh? Through code or editor, or imported along with the FBX?

We paint our vertex colors in Maya and export them with the FBX

I believe the number of influence limitation might affect more than simply vertex colors, but it certainly forced our character rigger to double check his weighting.

Wow. Had the same problem and your fix worked! I had no idea the number of influences were related to vertex colors.
Is this somewhere in the documentation? If not maybe it should :slight_smile:
Thanks!