Weight paint different from Blender

Making character in Blender with Rigify. Imported as usual… In animations i noticed on my tail is bending so bad… i assuming this is problem in weight paint. I think in blender and unreal engine they are applying weight paint differently, in UE weight paint applying little harder… probably.
And i noticed, my tail is going through neck a little bit, in blender perfectly fine. What is happening?

Some info:
My rig named: rig (i tried name it Armature, but some weird stuff was happening)
I enabled export only deform bones.
Units in blender Metric 1 Meters, i think its not the problem.

If thats the same pose/animation the issue isn’t necessarily the weightpaint but the bones themselves. Make sure the bonebretargeting settings are properly set, it could be its being translated by mistake.

If that doesn’t solve it, then the vericis have too many influences and the proper weight paint is being truncated. You have a max of 8 influences per vert in engine.

the only other alteration occurs when weigit values dip below .01.
The engine truncates those values so you cannot expect a skeletal mesh to be more accurate than a millimiter / blender will obviously not truncate and present a different result.

Most of the time difference in weight paint behavior between Blender and Unreal comes down to accidently adding weight to non-relevant bones like control or mechanism bones etc. You want to click on the individual vertices that are misbehaving and make sure only intended deform bones have influence on them. This is almost ways the cause.

Other things you’d look at is to make sure verts are not influenced by too many bones. Up to 4 bones to be efficient or max 8 bones per vertex. Also check you are not using Blender specific features like bendy bones or possibly some kind of deform modifiers etc.

Thanks for the tips boys.
Sorry for my ENGLISH.
Idk why my imgs didn’t uploaded…


On tail, between bones influence has only two. There is some parts on my mesh where is influence up to 8 (around the face) and some even more than 8 but with many 0 weights, but still it shouldn’t affect tail.


Screenshot_4.jpg
Screenshot_5.jpg

Also checked it, i don’t have any weight on control bones or any deform bones which can deform like that.
Also there is not any deform modifiers, in Rigify they being driven by control bones through Bone Constraint, like Copy Rotation, Copy Transform etc. idk if this the problem…

Thereover some bones in unreal seems different. But i assuming this is how unreal generate skeleton… or is it the problem???


About retargeting idk much, i don’t using root motion nor some specific settings just preview raw animation in UE.

Is naming bones some specific name like “Armature” make do stuff? I will try using Auto Rig Pro instead Rigify.

That’s not the problem.
Just because you see a value of 0 doesn’t mean that you don’t have the same vertex assigned to 20 different bones with a value of 0.

you probably need to delete the paint in blender and re-do it appropriately.

I did the “clean” function after this, same result. And i did appropriately weight painted. Just subtract brush didn’t remove it, but it did turned into a black color.

I tried addon Auto Rig Pro… and it solved problem. I did same weight paint and it perfectly fine. And there over, my offset bones in UE was fixed too.

I believe autorig cleans the vertex information for you by removing the rig bones from the paint and a lot more information by automating the info you can manually change inside the vertex group information box.
either way, the issue was probably just that. Many bones assigned to the same area with 0 value.

1 Like

Blender now has default functions to help with this (I don’t know in which version this was introduced):

Edit Mode (or Weight Painting) > Menu Mesh > Weights:
Quantize: if you set to 100 steps it will make the lowest number 0.01 before 0.00
Clean: you can trim values and assign a group to vertices with none
Limit Total: Set to 8
and of course Normalize All to resize the values to 0-1 range

1 Like