2
$\begingroup$

Is there a way to cut a mesh along the bones? I have attached a picture to clarify what I mean. The first picture shows a hand that I would like to cut based on the bones, like in the second picture, where I did it with Bisect(but it would take a long time cutting a whole human in pieces with Bisectenter image description here)

enter image description here

$\endgroup$
6
  • $\begingroup$ are you ok if your mesh just gets splitted into parts and if the positions are not exact? And how about overlapping parts? I think I have a solution, but it really depends on your precision needs $\endgroup$ – HenrikD Mar 5 '19 at 12:52
  • $\begingroup$ It does actually not have to be very precise. I dont think there is overlapping parts in my human mesh. $\endgroup$ – xava Mar 5 '19 at 13:03
  • $\begingroup$ What I meant with overlapping was. How big of a Problem is it if two if the resulting parts overlap? $\endgroup$ – HenrikD Mar 5 '19 at 13:06
  • $\begingroup$ This is not really an issue $\endgroup$ – xava Mar 5 '19 at 13:21
  • $\begingroup$ If my answer is what you needed please mark it as correct answer, otherwise comment and I will elaborate $\endgroup$ – HenrikD Mar 5 '19 at 14:42
2
$\begingroup$

Your Problem is labour if I understand you correctly. So you are searching for a workflow that will make your job less labour intensive. I just tried a few things and found something that works at least for me. It comes with restrictions but at least it works.

First you need to prepare your Mesh. For that I recommend duplicating it with Shift+D and moving it to a different layer (with M)

To prepare you need to follow these steps:

  1. Go into Weight Paint Mode of your Mesh (Ctrl+TAB)
  2. press Space and search for "Quantize Vertex Weights", then press F6 and make sure the Subset Combobox spells "All Groups"
  3. press Space and search for "Clean Vertex Group", then press F6 and make sure the Subset Combobox spells "All Groups" again and set the Limit to 0.1 just to be sure
  4. test your bones and look out for vertices that are not anymore in any group. Add them to one that makes sense (you can use weight paint for that but then you have to repeat this whole preparation step from the start. You should instead add them in Edit Mode)

You can find the described functions also in the Weight Tools section of the Tools Panel to the left.

If you are finished you are prepared for the splitting part.

Go into Edit Mode and make sure everything is selected (A). Subdivide your Mesh (W -> Subdivide) with one division (default). Then repeat the following process over and over again, until you are finished.

  1. deselect everything (A)
  2. select (the next) Vertex Group in the list and press the select button (found in the Properties Menu in the Object Data tab (little Triangle))
  3. press P to separate the selection

You can use this script to do it for you in one click (just copy it into a Text Editor in Blender and press "Run Script"

import bpy
bpy.ops.mesh.select_all(action="DESELECT")
for i in range(0, len(bpy.context.selected_objects[0].vertex_groups) - 1):
    bpy.ops.object.vertex_group_set_active(group=bpy.context.selected_objects[0].vertex_groups[i].name)
    bpy.ops.object.vertex_group_select()
    bpy.ops.mesh.separate(type='SELECTED')
    bpy.ops.mesh.select_all(action="DESELECT")

To use the script go into Edit Mode of your Model This should leave you with something like this: enter image description here I hope this helps you with your problem.

$\endgroup$
3
  • $\begingroup$ Thank you , it worked pretty good actually!! $\endgroup$ – xava Mar 6 '19 at 14:14
  • $\begingroup$ I wanted to use your script, but I get this error : Traceback (most recent call last): File "/Text", line 6, in <module> File "/usr/share/blender/scripts/modules/bpy/ops.py", line 189, in __call__ ret = op_call(self.idname_py(), None, kw) RuntimeError: Error: Nothing selected $\endgroup$ – xava Mar 6 '19 at 14:32
  • $\begingroup$ @xava I added a little information about the script I forgot to mention... You have to be in Edit Mode of your Model for it to work $\endgroup$ – HenrikD Mar 6 '19 at 16:38

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.