Maya skin weights different in Unity

Hi. I've imported my character from Maya to Unity, as a .mb file. The file contains the character's mesh, rigged, and all the character's armour rigged to the same skeleton as well. All the animation works perfectly fine, but some of the character's skin weights on it's armour aren't the same as when they are in Maya. Bellow are two images, one from Maya and the other from Unity.

As you can see, the shoulder armour in Unity is stretched. I've already deleted all non-deformer history in Maya, but the problem remains. If you know what I did wrong, please help. Thank you.

I'm not sure if I'm correct or not, but it seems that in Unity, the vertex will be bound to the joint with the highest skin weight value. Apparently Unity doesn't allow vertex weights to be shared between different joints. I could be wrong though.

The default in Unity is 2 bones per vertex max... try increasing this to 4 in "Edit/Project Settings/Quality" by changing the Blend Weights to 4 in the Quality Settings Inspector.

2 Likes

Hey man! Not sure if it helps, but you can adjust the quality of the weighting in the Quality settings:

Edit: ugh.. aNTeNNa trEE beat me! :smile:

137377--5043--$blendweights_105.jpg

2 Likes

You're right, having 4 bones fixes the problem, haha. I had my game set to Fastest in Editor mode and that's why it was all weird. Thanks guys.

can make 4 bones to 8 bones with a Script and how ?

how make blend weights up 4 bones unity 3d

4 bones work automatically through using the right quality level or changing the quality settings as shown above.
More than 4 weights is not possible

Thank you for answer

with 4 bones

773650--28324--$Untitled.jpg
773650--28326--$unity.jpg

Random question : do you clean history in maya before to do an export?

no

In the new version of the unity I hope to solve this problem and make the bones more than 4

Because I do not want to leave unity

4 bones per vertex is a lot. A lot of engines get away with only 2, a lot of great games were made with 1 (rigid). Out of curiosity, why would you need more than 4?

What would be nice to see in Unity is the ability drop/add bones and redistribute weights (by proper percentage) based on an LOD system -- distance from camera, etc. Even with that, I see no reason to go above 4 bones per vertex.

Yes you're right

I have researched and tried to do that, but I could not

how make if hold button ("h"))

I do something is
I have researched and tried to do that, but I could not

I need that

[quote=“br0kenp0ly”, post:4, topic: 389626]
Hey man! Not sure if it helps, but you can adjust the quality of the weighting in the Quality settings:

Edit: ugh… aNTeNNa trEE beat me! :smile:
[/quote]
you saved me thanks

Unbelievable. This post from 13 years ago saved my project lol

1 Like