I have a set of armors that are made of separated pieces like belts. All the pieces are joined as one object, but topologically they are separated (because they were made in Zbrush with mask+extract technique). When i parent an armor to armature with automatic weights, here is what happens:

http://gifyu.com/images/weightSeparateObj.gif (Update: gif needs to load there, it may take some time)

http://www74.zippyshare.com/v/ocwFam30/file.html (Fixed: I don't know why the gif can't upload here, but it works after downloading)

As you can see, belts are moving different and each part has different weighting which causes intersecting and other bad looking things. I've tried manually painting/fixing weights, but it is almost impossible to do it correctly on separate objects like these. How to handle this problem?

  • 1
    $\begingroup$ auto weight paint is not very effective. You should touch-up the results manually in Weight Paint mode. You might also have to dice up the model a bit more if there are long polygons. That will give extra control for difficult areas. You could also try and use the mesh-intersect tool in Edit mode. It behaves like the Boolean modifier. If you set it to Self-Intersect, you might be able to make the mesh all one connected piece with a bit of effort. You can try re-topology to have one continuous mesh. Z-brush has a tool named z-mesher(z-re-mesher?) that can give you a clean manifold mesh. $\endgroup$ – MarcClintDion May 6 '15 at 0:05
  • $\begingroup$ Thanks, self-intersect does pretty good job! Will be useful! I'll probably go for voxel binding method that @Jerryno suggested. I've created a new thread / 'feature request' about weighting method here: blenderartists.org/forum/… - it would be awesome to have it in Blender. $\endgroup$ – Good Samaritan May 6 '15 at 14:17

This problem is nicely solvable with voxel binding that unfortunately blender doesn't have yet.

The problem would be less visible if the polygons would be segmented the same on the torso and the belts, increasing the polycount will help against the artifacts.

A blender solution is to join everything into 1 piece mesh:

  • with boolean union and clean up the mesh after it
  • with knife tool to cut slots for the belts in torso and to cut out excess belts inside the torso. Then joining it together.
  • $\begingroup$ They are already combined into one object, but parts of the armor are separated topologically (so vertices of belts are not welded with vertices of jacket, etc.). I've uploaded my .blend file with this armor to clear it up: pasteall.org/blend/35923 | + [ I've also tried 'welding' these separated objects by Boolean modifier, but: 1. for some parts it works, for some it cannot be done 2. Boolean will create a lot of bad geometry and increase polycount ] $\endgroup$ – Good Samaritan May 5 '15 at 19:53
  • 1
    $\begingroup$ @GoodSamaritan I see, you need something like voxel binding which blender can't do, or weighting by bone envelopes, or join everything into 1 piece. The last case would be best to do by hand (cut with knife around belts on character and join the meshes like that) because like you said boolean will leave a mess.. $\endgroup$ – Jaroslav Jerryno Novotny May 5 '15 at 20:14
  • $\begingroup$ Thanks for letting me know about voxel binding, looks like they have it in Maya and it works very well on separated parts like these! I've created a new thread / 'feature request' about this weighting method here: blenderartists.org/forum/… - it would be awesome to have it in Blender. For now i'll consider getting Maya LT subscription just for the voxel weighting for one month... Here, take the bounty! ;) ... ["You may award your bounty in 4 hours"] $\endgroup$ – Good Samaritan May 6 '15 at 14:14

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.