Why does skeletal mesh appear unlit/black on mobile?

We have some skeletal meshes that spawn in the level (they are actually meshes with morph targets). In windows and Mac they appear fine, but on mobile (both iOS and android) they are completely black. The material used is simple, with a param for base color and nothing else. ‘Used with morph targets’ is selected on the material.

Does anyone have a clue of what is going wrong and how we can fix it?

Hey BramV,

There is actually a bug entered for this issue where some material parameters do not get set correctly on mobile devices due to lack of uniforms (UE-24487).

A fix has not been made as of yet, but once it has been assessed by the engineers we will provide an associated upcoming hotfix or full engine release where the bug fix has been integrated.

Let me know if you have further questions.

Thank you,

Hi Andrew,

Do you know if this issue is still around? I have requested assistance here;
link text

but not sure if its related to lighting or possibly this issue. The reason I don’t think its lighting is that it works fine if I just use the color and not the other parameters.

Could you offer any advice?

Many thanks

This is still an issue and has been backlogged at the moment. It has been moved to a feature request, “Create constant buffer for only used material parameters.”

The description of the issue is as follows. "All uniform expressions are put into the material uniform buffer regardless of whether they are used in the shader or just on the CPU during uniform expression caching. For materials assigned to skeletal meshes it’s easy to run out when running on ES2. Only expressions actually used in the material should be put in the uniform buffer or at least bound to uniforms on mobile.

Unless you wanted to write your own script then we will have to wait to have this implemented. This is currently all the information I have and can provide at the moment.

The issue you linked is almost definitely the issue here as you have a number of parameters that seem to be ‘discarded’ when deployed to the iOS.

Let me know if you have further questions or need additional assistance.

Cheers,