The local position and world position nodes do not appear to work correctly on Nanite skinned meshes when computing the Opacity Mask of a masked material. The position is either not skinned or just wrong.
This can be reproduced easily on a sample project by turning on Nanite on SKM_Quinn_Simple, running an animation and applying a material like this:
[Image Removed]
Steps to Reproduce
Open the attached project.
In LvlThirdPerson there are two actors using SKM_Quinn_Simple, one of them uses a Nanite version.
They have the same material that masks when LocalPosition.y < 0. Notice that only the one not using Nanite is working properly.
Hello,
Thank you for reaching out.
I’ve been assigned this issue, and we will be looking into Nanite skeletal meshes and the Local Position Material Expression for you.
Hello,
This issue appears to be fixed in Unreal Engine 5.7.
Please let us know if this helps.
Hello,
Thank you for looking into this.
I installed 5.7 and tried my repro project. It appears to be partially fixed.
The issue is fixed in the opaque pass, but the bug still appears in the shadows, see in this screenshot:
[Image Removed]
Still, if you could point me to the changelist(s) that fixed the issues in the opaque pass I could look into integrating that in our 5.6 version if possible.
Thanks
Hello,
Thank you for the clarification - we see the issue in the shadow map.
We are speaking with our colleagues to try to find the CL responsible. We will get back to you when we know more.
Hello,
We will be creating a bug report for the remaining issue with the shadow map, and will post a tracker here when one is available.
Hello,
We have opened a bug report for the shadow issue:
The tracker will be visible after it is approved internally at Epic Games and is publicly accessible.
Hello,
Are you using AnimBanks? If so, two areas might have influenced this behavior:
- History of AnimBank.cpp, mainly CL: 45608312
- History of Shaders/Private/Skinning/TransformProviders.usf
Please let us know if this helps.
Hello,
I don’t think we are using AnimBanks. I will take a look at TransformProviders.usf to see if it is something that we can back port easily.
Thanks.