• Bugs
  • Weight smoothing not working properly

  • Đã chỉnh sửa
Related Discussions
...

Hey,

First of all, congratulations for the last update! 🙂

Second, I'm having a problem with the Weights. The Smooth button is only smoothing places with the orange dots, all the other ones remain unchanged.

In the previous version with would smooth everything.

Am I doing something wrong?

Best regards

Cheers! :beer:

Smooth blends the weights of the selected vertices. Only if none are selected will it smooth all vertices. This gives you a lot of control, but you have to remember to deselect vertices (click anywhere in blank space) if you want all.

Nate đã viết

Cheers! :beer:

Smooth blends the weights of the selected vertices. Only if none are selected will it smooth all vertices. This gives you a lot of control, but you have to remember to deselect vertices (click anywhere in blank space) if you want all.

But right now is not smoothing selected vertices. It's only smoothing the orange ones, even when those are not selected.

Are you sure they are deselected? try to press the spacebar to be sure. If they are selected they'll look slightly bigger than the others.

Not sure what you mean by orange vertices? Can you show a screenshot?

Erikari đã viết

Are you sure they are deselected? try to press the spacebar to be sure. If they are selected they'll look slightly bigger than the others.

I'm sure.

I've been trying other approaches, and I've found that if I bind only one bone to the mesh, exit the bind, and after Spine has calculated the weights, I bind other bones to the mesh, the smooth will not work.

But if I bind all at the same time, the smooth will work. But if I bind another bone to the mesh, the smooth will not work on that bone.

Nate đã viết

Not sure what you mean by orange vertices? Can you show a screenshot?

When you bind only one bone, that bone gets 100% weight on all vertices. If you then add more bones, they get 0% weight. If you then smooth, the first bone has 100% weight, so nothing changes. You can use Auto or manually set weights, once other bones have weight, then smooth will work as expected.

If you still have trouble, a screenshot showing your weights would help, eg:

Hình ảnh bị xóa do không hỗ trợ HTTPS. | Vẫn hiển thị


Smoothing these weights won't do anything, since only one bone has weight.

Nate đã viết

When you bind only one bone, that bone gets 100% weight on all vertices. If you then add more bones, they get 0% weight. If you then smooth, the first bone has 100% weight, so nothing changes. You can use Auto or manually set weights, once other bones have weight, then smooth will work as expected.

I know that, I've been using Spine for 11 months. 🙂

In the cases I mentioned, I binded the bone to the mesh and assigned some vertices to that bone.

Just trying to understand the problem. 🙂 I can bind head, exit binding, then bind hair3 and hair4, apply some weights to those 2, then Smooth with no vertices selected


works as expected.

Hình ảnh bị xóa do không hỗ trợ HTTPS. | Vẫn hiển thị

Nate đã viết

Just trying to understand the problem. 🙂 I can bind head, exit binding, then bind hair3 and hair4, apply some weights to those 2, then Smooth with no vertices selected


works as expected.

Hình ảnh bị xóa do không hỗ trợ HTTPS. | Vẫn hiển thị

Yes, exactly that. And in your case, it only smoothed the orange ones and vertices.

I tried now in a new project, and it's only doing the edges.

You have the pink bone influenced vertices selected in your screenshot. You can tell they are selected because the pink vertices are visibly bigger than the other vertices. It is even more evident on the mixed pies on the edges, where the pink vertices go outside of the rest of the pie.

To solve this, press the spacebar to deselect. Then perform auto again.

Ah, you were saying "orange dots" and then never explained what those were. You mean that smooth is only applied to vertices connected by an edge? Edges are the cyan or orange lines. That is correct and how it is designed to work, see the documentation here:
Weights - Spine User Guide: Smooth

What behavior were you expecting? You'd like smooth to affect all vertices within some distance of each vertex? I'm afraid we currently don't have that functionality. I know it's not the same, but FWIW you can use Mode: Add and paint an area with Feather: 100, eg:

Hình ảnh bị xóa do không hỗ trợ HTTPS. | Vẫn hiển thị

Erikari đã viết

You have the pink bone influenced vertices selected in your screenshot. You can tell they are selected because the pink vertices are visibly bigger than the other vertices. It is even more evident on the mixed pies on the edges, where the pink vertices go outside of the rest of the pie.

To solve this, press the spacebar to deselect. Then perform auto again.

I think that's a visual bug, because they are not selected. When they are selected, the other ones just grey out. This is selected:

By orange dots I meant orange edges, I'm sorry.

In this one. I selected all the points and then pressed Smooth. It only smoothed the edges.

I'm pretty sure in the previous version this would smooth all the selected.

Smooth has always used edges. If it had ever used distance, it'd need some way to define how far. Here's 3.6.53, before:

Hình ảnh bị xóa do không hỗ trợ HTTPS. | Vẫn hiển thị


After smooth:

Hình ảnh bị xóa do không hỗ trợ HTTPS. | Vẫn hiển thị


The vertices not connected with an edge don't get smoothed.

Smooth uses the mesh topology (the edges). If it used distance, it would be easy to grab weight from unrelated vertices. Eg, think of a bent arm, or a single image that is a torso and arms


you wouldn't want the arms to get weight from the torso just because they are nearby. Auto is also very smart about assigning weights, it doesn't get fooled with a torso/arms image.

You are correct. I'm sorry for the false-problem, for some reason I really thought it could smooth that way.

Two weeks on vacation and I forget these things. :drunk:

No worries! 🙂