0
$\begingroup$

I'm trying to rig a human model like this (seperate meshes for arms, body, hands, etc.):

Arm Piece

Bone Structure

But when I parent the bones using "Armature deform with automatic weights", it really doesn't work very well:

Notice the hand is not aligned with the arm Rotating forearm with meshes out of alignment

And this mess when I straighten the upper arm (also noting the body is warping really weirdly) Straightening humerus bone

On a side note, the fingers work perfectly

I think it has something to do with rigging multiple meshes at the same time, so I joined all the body parts together, but the result is exactly the same (and lags Blender).

I've followed this question, thinking I'd have to rig bones individually, but this doesn't seem to work - I parented the meshes to the bone using Ctrl-P > Bone, then assigning specific bones to the hand, but nothing happens:

Assigning bones

I've also read numerous other posts, but nothing seems to be working

Does anyone know what I've done wrong? I haven't done this before, so it's probably something obvious

The file: https://pasteall.org/blend/1177d84ebd8e46ec960b7e06271ccc2c

  • Edit:

Following @Nathan advice, I've merged the meshes properly, so the body is now one complete mesh. However, I still get issues with bones deforming other parts of the body:

Better Arm

$\endgroup$
3
2
$\begingroup$

No, automatic weights does not work well on multiple meshes.

Note that when you joined your multiple objects, you still had multiple meshes, just contained inside a single object. It is the fact that these meshes are not connected that makes them a poor fit for automatic weights.

You could try merging vertices by distance in your merged object, and seeing how well that works for you. If you can eliminate mesh boundaries, your problems will mostly disappear.

If that isn't working for you, then you weight paint manually.

Another option here is to create a sort of cage for your mesh, something that you can make manifold (no boundaries), autoweight that, then transfer weights from it to your mesh via a data transfer modifier (probably on nearest face interpolated.)

Bone parenting is something that can be done, but for what you're showing, it would be inappropriate here. Generally, you will either use an armature modifier (which uses vertex groups) or you will parent a mesh to a bone (usually, on bone relative), but not both. I can't tell you why bone parenting wasn't working for you without more details.

$\endgroup$
2
  • $\begingroup$ Thanks - I've merged the meshes boundaries like you suggested, and it's removed the problem of disconnecting parts (see edit above), but the mesh still warps weirdly - rotating the forearm badly distorts the body, and editing the bone diameter and width doesn't change it $\endgroup$
    – Oliver
    Jul 9 at 13:22
  • 1
    $\begingroup$ @Oliver Check/fix your normals and reweight; check for non-manifold geometry with select non manifold operation and fix. But you might also consider manual weight painting. $\endgroup$
    – Nathan
    Jul 9 at 13:28

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.