2
$\begingroup$

I am attempting rig a model using Automatic Weights. I am getting an error: 'Bone Heat Weighting: failed to find solution for one or more bones'

I have attempted the following fixes:

  • Confirmed there is no non-manifold geometry (Select > Select by Trait > Non manifold)
  • Removed all duplicate vertices (M > Merge by Distance)
  • Recalculate vertex normals outside (Shift+N)
  • Separated some 'loose' parts (teeth, fingernails). For now I am only attempting to rig the main body of the character, which is a single manifold mesh object
  • Removed UV data
  • Appended Armature data block and Mesh data block to a fresh project
  • Removed all pre-existing vertex groups

I have checked these questions, but was unable to find any new possible solutions:

Bone heat weighting: failed to find solution for one or more bones (tried all "solutions")

bone heat weighting: failed to find solution for one or more bones error message

Heat Weighting: Failed to find solution for one or more bones

Automatic Heat Weighting: Failed to find a solution for one or more bones

I have attached a copy of the .blend file here. I've stripped it down as much as I can, but unfortunately it is still 38mb.

enter image description here

enter image description here

Some final notes:

I have applied the scales/rotations on both the rig and the model.

The model is of a reasonable size (I know tiny models can have problems with Automatic Weight Painting).

There are no modifiers applied to my mesh object.

There are no constraints applied to any of the bones in the rig.

I realise that my rig is missing bones, particularly around the head. I am hoping to import this model as part of a mod for a VR game (BoneLab). Animation of the face will not be required (or supported). I will therefore by happy to proceed with the bones that I have, and simply parent the entire head to the head bone.

I am a novice at sculpting, but for now I'm not looking for advice on how to improve the model. I'd be happy just to get it rigged correctly :)

$\endgroup$

2 Answers 2

3
$\begingroup$

In my opinion, the sculpted mesh is a bit too dense with 174,440 vertices and heavy to rig and animate. I would do a retopology first. A lightweight mesh has the advantage that you can find and fix problem areas easily, it will deform better and performance will be a lot better. The retopo version might have only about 20,000 vertices.

For animation, I would use Rigify's animation rig that you need to create with the Generate Rig button. The metarig is usually only used to align the bones to the mesh. It seems you changed the metarig already and deleted some bones. That's bad because the generated rig will be incomplete. If you want to use the animation rig it's better to start with a fresh metarig from scratch and carefully adjust it.

If you want to export the animation you need to export the deformation bones only. Their names all begin with the DEF- prefix and they are on layer 30.

Bone Heat Weighting Error

According to the 3D Print Toolbox addon that comes with Blender the mesh has a few intersecting faces at the hand. And probably a few more issues that prevent the calculation of the Automatic Weights.

intersecting faces

The Duplicate, Remesh, and Transfer Method

To rig this mesh anyway, you can use the Duplicate, Remesh, and Transfer Method as described in this question: Heat Weighting: Failed to find solution for one or more bones with a slight modification.

Step 1: Duplicate the mesh Shift+Ddemogorgan.001 object.

Step 2: The mesh is a bit thin around your creature's head/mouth, and the Voxel Remesh modifier has some trouble maintaining the geometry. In this case, you can use the Decimate modifier. It does the same job, creating a clean, remeshed, manifold mesh without intersections. Select Collapse as the method and a Ratio of 0.0500. Tick [X] Triangulate. Then Apply the modifier (modifier's dropdown menu).

remesh with decimate modifier

Step 3: Transfer the weights. Select the original mesh then the copy demogorgan.001. The copy must be the active object highlighted in orange. The original is the selected object, highlighted in red. The order is important! Also important: The original mesh and the copy mesh object must be in the same spot. Now, select the menu Object > Link/Transfer Data > Transfer Mesh Data to transfer the weights (=vertex groups). transfer mesh data

In the next popup Transfer Mesh Data, select Vertex Group(s). Finally, you will see the last popup (also Transfer Mesh Data) where you can select All Layers and By Name for Source Layers Selection and Destination Layers, respectively. Select the object demogorgan.001 to close the popup and the vertex groups will be transferred. (F9 brings the popup back.)

transfer vertex groups

Step 4: Hide the copy demogorgan.001. Select the original mesh demogorgan and the armature metarig. Then choose Ctrl+P Parent To > With Empty Groups to make the armature the parent of the mesh and keep the transferred vertex groups.

The rigged creature: (Beware it's hungry!) final rig

$\endgroup$
4
  • $\begingroup$ Can't thank you enough for taking the time to do this. As I mentioned I'm new to sculpting and the advice you've provided is EXTREMELY useful. Thanks a lot! $\endgroup$
    – SlickRed
    Oct 2, 2022 at 16:00
  • $\begingroup$ You're welcome! I'm glad that it helped you. The creature is awesome :) I just would add a tail and retopologize it. Then add some teeth like the sea lamprey has to make it even more gross & scary :D In the next step, you can add a Multires modifier and sculpt more details. Finally, bake a normal map and use it with the low-poly retopo model, then texture it. If you're new to this workflow check out Grant Abbitt's Old Man series. $\endgroup$
    – Blunder
    Oct 3, 2022 at 15:08
  • $\begingroup$ I actually had a tail, but I'm reworking this model as part of a mod for a VR game (BoneLab), and the tail wouldn't play well with the in-game rig.. Also (believe it or not), this is my retopologised version. The original hi-poly actual has 4mil+ faces. I'm just terrible at retopo and UV unwraps, and I'm not one of those people that enjoys to process. I'll definitely need to learn about Multires as it keeps coming up in posts that I read. I am familiar with baking normal and AO maps, but thanks for the suggestions :) $\endgroup$
    – SlickRed
    Oct 3, 2022 at 15:48
  • 1
    $\begingroup$ And I am actually adding a bunch of teeth using Geometry nodes. Something like what I've got shown here, though the node tree needs refined: dropbox.com/s/xojtfztwucz99v9/demo-fangs.png?dl=0 $\endgroup$
    – SlickRed
    Oct 3, 2022 at 15:53
1
$\begingroup$

Scaled it up x10, x100 and then automatic weight worked for me.

$\endgroup$

You must log in to answer this question.

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