Blender amature causes tangent errors

After much testing I’ve discovered a Blender armature causes normal errors. The object doesn’t have to be animated; just by adding an armature this happens. The bent normals are showing through my baked normal map.

Initially I thought this was a bake error but I’ve managed to track it down.

Below are images of simple objects exported and baked from Substance Painter. You can tell by looking which one has an armature applied.

In this image, all of these objects have an armature. They look hideous.

I would be very grateful for any help in understanding this issue. It’s easy to replicate (just add an armature to a hard surface object).

Have you set “Import tangents” instead of “compute tangents” while importing a model (and have you exported tangents)?

@c4tnt:

Yes :frowning: All of the objects in the screenshots were exported and imported using the same parameters. That’s the horrible truth.

you can test this yourself with a hard surface baked object (with only one smoothing group). Import the object into your scene and apply materials. It will look very good and correct.

Then make one that’s weighted to an armature, and import that with the exact same parameters. Apply the same material. It will look very bad.

This isn’t very noticeable with character models where there’s a lot of geometry. But it’s extremely noticeable if I wanted to animate a hard-surface object with optimized geometry.

I’m not sure what to do about this problem. I first encountered it trying to animate large moving parts on a scifi table. I was unable to get it to look correct.

Could you try export\import with following settings (works fine with 4.17 but I have no installed 4.18 to test):

221270-17e3602cb88ccb450ee6cb1d9fa9fff3bd800eda8c5d598525.png

221271-005ac568bb885f6843f31a45fecc92c34de83e5d8ee78796cf.png

You need to triangulate your model before exporting from blender. Also you have to apply edge split modifiers before exporting to the Substance Painter and disable Average Normal before baking

Hey, that worked!

The key option here was to import normals and tangents.

Though I’m not sure why this works… It doesn’t make sense to me that an armature would make a difference here.
Anyhow, thank you! I’m new to UE4 (coming from Unity) and was worried this was a bug I wouldn’t get past. Very much appreciated!