1
$\begingroup$

Essentially, I'm running into the same problem as the OP in this thread: Skinning A Simple Tank Track For Unity3D

I'm not sure I understand the answer posted there, so I'm hoping to get a little more clarity.

Currently my weight paint looks like this:

There's 4 bones in the mesh and the weights are similar for every bone. My problem is that when I move the bone, I would expect the mesh to deform smoothly, but instead I get this: enter image description here

And in this picture you can see the vertices: enter image description here

I am a bit of a noob when it comes to weight painting, so bear with me here.

The thread I linked above had a similar problem but the solution was not explained in enough detail for my inexperienced self to understand. If anyone has any details to add, that would be great. :)

$\endgroup$
1
  • 1
    $\begingroup$ if a vertex is part of a vertex group at a weight rate of even 0.0001, it will fully be moved by the bone, as much as a vertex that has a weight rate of 1, but if the same vertex is part of another vertex group, in that case the influence will be shared by both the 2 (or more) vertex groups, for example if it is part of another group at a weight rate of 0.0001 as well, the vertex will be equally moved by the 2 bones, and so on. Other example: if it is part at a rate of 0.1 vs 0.2, the second vertex group will be twice more influent, etc $\endgroup$ – moonboots Apr 10 at 21:29
1
$\begingroup$

Here are the principles of bone control over vertex groups:

Let's say that I have a bone called Bone1 and a vertex group called Bone1 as well. The bone will control the vertex group that has its name (if it has been parented with an Armature Deform option). Here I assign a vertex group weight of 1 to the 2 vertices on the left, and a weight of 0.1 to the 2 center vertices:

enter image description here

If the center vertices are only part of this group, it doesn't matter how much is the weight, as long as it is not 0 of course, they will be influenced by the bone as much as if they had a weight of 1, see what happens if I move the bone, left and center vertices are equally moved by the bones:

enter image description here

Now let's create a new bone, called Bone2. I create a second vertex group called Bone2 and assign a vertex group weight of 0.1 to the center vertices, and a weight of 1 to the right vertices:

enter image description here

If I move Bone2, as the center vertices are now part of 2 vertex groups that equally influence them, they will be equally stretched between the 2 bones:

enter image description here

Now, for these center vertices, if I change the weight of Bone2 up to 0.5 instead of 0.1, this time the influence of Bone2 on these vertices will be 5 times higher than Bone1, and so on:

enter image description here

All this explains what you show: You think that the weight of the bone should smoothly decrease along the mesh, but it's not what happens:

enter image description here

Why? Because the vertices that seem only lightly influenced are only part of this bone's vertex group, so the influence of this bone on these vertices is as strong as if it was 1. To decrease the influence of the bone on these vertices, they should be part of the next vertex group as well. That's what you need to keep in mind when you parent the tank track to these bones. Parent With Automatic Weight should work, because it will smoothly share the vertices between the groups, but you can do it manually if you keep all these principles in mind.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.