0
$\begingroup$

I created my own 3D character model, and it's a cartoon-style animal character. I made a skeleton for the character. I noticed when I moved the character's eyelids that the forehead of the character moved. One option would have been to fix this by painting (weight painting). The character's head had other similar issues, so this solution was laborious in my example. I increased the number of bones, even though I wasn't sure if I needed the added bones. This solved the problem. If a bone's influence area is too large, if you add another bone near it that doesn't move when you move the other bone, the influence areas of these bones will decrease. Now I can use the same skeleton for other works with some adjustments. This doesn't completely eliminate the need for adjustments through painting (weight painting). But it significantly reduces the amount of correction needed.

$\endgroup$
3
  • $\begingroup$ I want to use the automatic weight feature because in a more complex model, weight painting is a quite laborious way to manage the influence areas of bones. Do you have similar experiences? $\endgroup$ Oct 13, 2023 at 7:54
  • $\begingroup$ This somewhat obvious thing came to mind when I found this solution of mine. Blender's automatic weights feature can't know exactly how you want the character's surfaces to move in different parts of the character if you have too few bones. It determines the mobility of the surfaces based on the existing bones, of course. $\endgroup$ Oct 13, 2023 at 8:02
  • 1
    $\begingroup$ Please do not write an answer within the question and simply put "here's one solution" in the title. Filtering this site for unanswered questions will not recognize that you provide a solution here. Edit your question so that it stands as a question, then give the answer in the answer's section. This way you can after a short grace period accept your own answer as solution. By doing that, other users will easily be able to see there is a working solution to this problem. $\endgroup$ Oct 13, 2023 at 9:06

1 Answer 1

0
$\begingroup$

The sad reality is you always have to work on your weights. Automatic weighting provides a basis for you to improve on, that's its job, but it'll never generate an animation-ready character. You can optimize the result of automatic weighting by scaling bone envelopes (alt+s) so that they contain the parts of the mesh you want them to affect. For this you have to change the bone display type in the armature properties to "envelope".

There are other ways to change weights than painting, though. You can select mesh elements in edit mode and assign them to your vertex groups manually. This won't respect normalization (which is necessary for a character to deform correctly and is done automatically when painting), so a good way to go about it is to proceed top-to-bottom, for instance : select the entire head area, assign it to the "head" vertex group, then select the right-side eyelid, unassign it from the "head" vertex group and assign it to the "eyelid.R" vertex group, and so on. Once this is done, you can grab the Blur tool in weight paint mode and smooth out the transitions.

Adding additional bones for the sake of automatic weighting is very bad practice. It will complexify the rig for no good reason, impacting its posing and playback performance, and will make future ajustements and troubleshooting harder. I highly advise to not do that.

$\endgroup$
2
  • 1
    $\begingroup$ Also, if your mesh is too complex for weight painting, it's probably too complex for animating in the first place. You need simple meshes, because they are easy to weight paint, you have better and simpler control in the topology for good deformation, simpler shapekeys, and lighter meshes needs less resources to deform. $\endgroup$
    – L0Lock
    Oct 13, 2023 at 17:34
  • $\begingroup$ I didn't mean to suggest adding a lot of extra bones and thus creating complex structures. I also didn't mean to imply that hand-painting should be completely avoided. $\endgroup$ Oct 14, 2023 at 20:22

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .