0
$\begingroup$

enter link description here

I've tried three bone heat failure fixes and they are not working. Ones I've tried are

  • Object scale,
  • Merge by distance,
  • Decimate geometry,
  • Split by loose parts.

Am I missing any or am I doing anything wrong please let me know

enter image description here

$\endgroup$

1 Answer 1

1
$\begingroup$

When I open your file, the first thing I notice is that the armature is parented to the mesh object. If I try to parent, this won't give a "bone heat failure" warning, it will give a "loop in parents" warning, because I can't parent to something that is the child of what I'm trying to parent: it has to be a strictly hierarchical relationship.

So I'll start by unparenting the armature, then parenting the mesh object to the armature objects with automatic weights. To do so, I'll select the mesh object, then shift select the armature in the 3D viewport (not the outliner), and ctrl-p -> with automatic weights.

Upon doing so, I get no bone heat failure warnings. I pose the armature and see what I've got:

enter image description here

It works, but not great.

So the fact that it works is why no advice related to bone heat failure has helped you: there is no bone heat failure going on here.

As for the ways in which it doesn't work, know that automatic weights are designed for organic weights, on single manifold meshes. But your mesh object is made up of many different, disconnected meshes. (And it's mechanical, not organic, but you could probably get away with that, if it weren't for the other.) Automatic weights are not a good fit for you anyways. And it isn't helped at all that your armature and mesh have unapplied transforms (or, that your mesh has some non-manifold bits, non-manifold in bad, non-boundary ways, ways that you almost certainly want to fix.)

What is a good fit? Well, it depends on what you want to do, but I'd say, separate by loose parts and bone parent:

enter image description here

An alternative is to separate out parts that don't follow and transfer weights from the original, but that will require some manual cleanup here-- there's no single mapping that preserves how the bits ought to follow.

Edit from comments

You've provided us an updated file in comments to this answer. On this one, the transforms (scale and rotation, at least) on both mesh and armature are applied, the armature is unparented, and we actually do get bone heat failure.

This may be a rare case of the model being too high of a scale. Your "character" is about 72 meters (Blender units) tall. Recommendations to increase scale are usually made in the context of people making characters that are, say, 2 units tall, trying to match Blender default gravity etc.

So let's shrink your character. We'll select both armature and mesh object, snap cursor to world origin, and scale about cursor by 0.1. Then, we'll apply all transforms to both, which I'll do with ctrl-a->all transforms:

enter image description here

Which gives us working automatic weights, visible after re-enabling pose mode on the armature:

enter image description here

However, while we're here, let's look at some other issues that could give autoweight failure: non-manifold geometry.

enter image description here

We can find non-manifold geometry by using a select non manifold operation in edit mode, vertex select mode. We exclude boundary because boundary won't cause bone heat failure. But we still find non-manifold geometry. In particular, we find edges that connect more than 2 faces ("multiple faces" property.)

This is geometry that ought to be fixed even if autoweights do work, but this is a cause of autoweight failure, mentioned in my answer at Heat Weighting: Failed to find solution for one or more bones .

Unfortunately, one of the potential causes of this kind of non-manifold geo can be the common advice to merge by distance. Merging by distance is not something you want to do blindly, on your entire mesh at once. You need to know what it is that you are merging. So it's entirely possible that the reason for this bad geo is just from following internet advice. Unfortunately, us peeps on the internet aren't very trustworthy-- always gotta take it with some salt.

In this case, however, the non-manifold geo isn't the reason for the autoweight failure. You should still fix it though, it'll screw up your normals.

$\endgroup$
19
  • $\begingroup$ ive always done it with automatic weights on these types of mechanical objects and its worked well for me before. any peices that got left out i just wieghted by vertices selection $\endgroup$
    – Full Salvo
    Commented Feb 28 at 15:51
  • $\begingroup$ why is it now giving me a hard time $\endgroup$
    – Full Salvo
    Commented Feb 28 at 15:51
  • $\begingroup$ not only that i cant get it to work like the first image...even after switching to 4.0 $\endgroup$
    – Full Salvo
    Commented Feb 28 at 16:06
  • $\begingroup$ i can clean it up like it is in the first image no problem...but i cant even get that to work $\endgroup$
    – Full Salvo
    Commented Feb 28 at 16:07
  • $\begingroup$ up to now i have done 3 other models that are built like this designed liked this with no problem up until now. i pulled the model from source via crowbar and the materials via vtfedit along with using source engine importer (not source engine assets aka sourceio) i dont understand what i could be doing wrong $\endgroup$
    – Full Salvo
    Commented Feb 28 at 16:13

You must log in to answer this question.

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