Wierd artifact after animation export

I would like to ask what to do when animation in Blender looks fine but it has artifacts when exported.
I downloaded a simple model from the web and add my armature and create simple walking animation just to learn the basics. But after export to FBX and even Collada file, weird artifacts appeared. It looks like vertices are influenced just by one weight when exported. Here is a photo from the blender and from exported FBX file viewed in some Win10 software (it is no problem of the viewing software, I checked the Collada file in my render engine). I can maybe add that I was not even able to extract the animation from the file in UE4.

I will appreciate any help.

I’d suspect those artifacts to be due to support only for a limited number of vertex groups. Blender supports any number of vertex groups, but that’s not typical. Unity IIRC supports only 4, UE supports more like 12? but yes, I’d expect this to have to do with the software used for the final animation + render, and I’m not sure how you’d rule that out by checking the file, or how you’d even go about checking the file to begin with (byte by byte, comparing to a .blend byte by byte?) Even so, I’m not sure if formats limit the number of vertex groups-- it wouldn’t surprise me if they did, considering typical output engines do, and you may need to renormalize after limiting.

I’d check its deformation after using a limit operation on weights, limiting to 4 groups, and compare to your output. That should help you rule that in or out as a source of your problems.

1 Like

You were totally right. I limited the number of total weights to 4 and I got the same effect as in the exported files.
Do you have some tips and tricks to counter this?

There’s no magic button to make it good.

I’d recommend, use fewer verts (almost always a good idea), use fewer bones, do more hand painting and less autoweighting.

Using a smooth weights for all groups, -1.0 expand/contract will tighten up the weights, leaving you with fewer weights per vertex in a more natural fashion than a simple limit operation. You can try playing with that.

It’s a bit of work, but if you weight via data transfer from an all-quad cage mesh, then as long as you start your quad cage mesh with 1 weight per vertex, you can subdivide and tweak that cage (and tweak the cage’s weights, just don’t add any new groups to any verts) to your heart’s content and you’ll only ever end up with 4 groups per vertex.