Blender to Unity Weight Painting doesn't transfer.

Can’t get weight painted armature and mesh to work smoothly in Unity.

Here’s my workflow:

-Do weight painting in Blender.

-Do animations in Blender.

-Export FBX.

-Import in Unity

-Set avatar to humanoid(bones are a perfect match)

But the animation doesn’t play as smoothly as in Blender and deformations do not stretch correctly.

In Unity:

alt text

In Blender:
alt text

The animations work correctly overall, just doesn’t in some parts such as the knee.

Update: Steps to re-create problem

-Create an armature in Blender, extrude a second bone(forming a joint).

-Create two cylinder meshes as “arm” and “elbow”, place them to form an jointed appandage(a full arm).

-Join meshes into a single mesh.

-Place mesh to cover the armature.

-Parent mesh to armature(Auto-weight to ease steps, do manual vertex grouping if not)

-Weight paint the mesh to have a smooth human-like joint

-In pose mode bend the joint as if bending an arm(make a simple animation, just one keyframe will do).

-Export armature and mesh as FBX.

-DragNDrop FBX to Unity

-Set animation type (humanoid if you made the whole model, generic if not)

-Problem can be viewed in Animation tab.

Unity Version: 2019.2.6f1

Arm in Blender:

Arm in Unity:

Test File:

Try In Unity

Edit- Project Settings - Other - Skin Weights - Unlimited

Had a similar problem And This Fixed It.

so for me it worked to normalize weights in blender before export. the skin weights options in Unity didnt do it for me. maybe that helps some. Or try to disable or anable (play around with this) in the import settings the option resample curves.