24

If you first select the mesh and then the armature and use Ctrl + P > Armature Deform > With Automatic Weights, this will generate a vertex group for the part of the mesh that corresponds to the bone in the armature. (this is dependent on how many bones are in the armature and or how much geometry the mesh has) You can then use either Edit or Weight Paint ...


19

Methods 1. List comprehension As mentioned by Pycoder in the comments below, using operators is often slow. So a quicker and simpler (and X2 faster) method to get all the verts that belong to a certain vertex group index: vg_idx = 0 o = bpy.context.object vs = [ v for v in o.data.vertices if vg_idx in [ vg.group for vg in v.groups ] ] 2. bpy.ops You can ...


17

You can do this using the 'Vertex Weight Mix' modifier. Here, I have an object with two vertex groups I would like to mix, one is a patch on the left and the other contains a patch on the right of the object: 'Vertex Group A' is set to the left patch (the vertex group I want to effect) and 'Vertex Group B' is the right patch (the vertex group I want to add ...


17

Just name your vertex groups the same as your bones. The bone named "hand.left" will animate the "hand.left" group (by default the weights are set to 1). Then both select the mesh and the armature (in this order) and parent it (ctrl+p) with empty groups.


16

I think you outlined most of the the good ways, but here is another option: Mask modifier: You could try using the Mask modifier: Add a mask modifier, select your vertex group and enable Invert so the vertex group is hidden. Enable Edit mode visibility and Apply to edit cage so that there is no way to select the vertex group elements in edit mode: This ...


16

To solve this issue, you need to: Make sure the mesh weights are set correctly Probably join all the body part meshes into one mesh Make you rig bind to the mesh using bone envelopes or vertex groups. If you choose bone envelopes, make sure they encapsulate all parts of your mesh so they effect all parts of the mesh. If you choose vertex groups, make sure ...


14

You want to use Vertex Parent to parent the object to vertices in the wave mesh. To do this, select the Wave mesh and switch to Edit mode. Select the vertex you want. Note: I've actually found it better to select 3 vertices in a small triangle shape, because it will transfer lateral/tipping movement instead of pure vertical motion that you would get ...


12

Those edges have been marked. There are actually five types of markings you can apply to edges. The following is the basic color scheme: Red - UV seam Pink - Edge crease Blue - Sharp edge Green - Freestyle edge Orange - Bevel weight You can mark edges yourself from Edit Mode using the Edge menu (Ctrl+E).


12

This is a limitation of the current Vertex Groups system that has been an occasional nuisance. That's is why they are called Vertex Groups, not "Face Groups"; selections of vertex don't unequivocally define groups of faces, since a vertex can belong to an arbitrary number of them. Would be nice to hear about more options and solutions for this from other ...


11

What you basically want is something like this: import bpy ob = bpy.data.objects["Cube"] gi = ob.vertex_groups["Group"].index # get group index for v in ob.data.vertices: for g in v.groups: if g.group == gi: # compare with index in VertexGroupElement v.co[0] = 5 v.groups is a collection of VertexGroupElements. VertexGroupElement contains group (...


10

Blue doesn't necessarily mean zero. When a vertex is only affected by one bone, a tiny amount of weight is enough to deform it like it had a weight of 1.0. And even if a vertex has a main deforming bone near by (even with a weight 1.0) it can be noticeable when a bone with low influence is too far away and moves differently. You can easily see the offending ...


10

Bones are matched to vertex groups based on names, that is the connection, they are not linked in another way. for modifier in object.modifiers: if modifier.type == 'ARMATURE' and modifier.object: armature = modifier.object.data for bone in armature.bones: if bone.use_deform and bone.name in object.vertex_groups: ...


9

I think you will still have to do a bit of scripting to get the following to work but it does most of what you want. A while back, someone posted a question about how to convert an existing script that turns Weight Paint to Vertex Color Paint, he posted the script link and there are a couple reasons why I decided to post this as an answer instead of only ...


9

There's no need for operators, nor the bmesh module: import bpy ob = bpy.context.object assert ob is not None and ob.type == 'MESH', "active object invalid" # ensure we got the latest assignments and weights ob.update_from_editmode() me = ob.data # create vertex group lookup dictionary for names vgroup_names = {vgroup.index: vgroup.name for vgroup in ob....


9

Starting from this situation, You can use the smooth tool : Go in weight paint mode Activate vertex selection (the little icon on the bottom of the screen indicated by a cube with one vertex in yellow) Select your vertices A Then in the weight paint tools panels click on 'smooth' One done, go to the operator options and select 'all groups' Then tune the ...


8

Copy your vertex group Mirror your vertex group Now you just have to merge them togerher. Do it with script if you wanna automatize it or by hand: How to merge vertex groups?


7

In weight paint mode, select the Weight Tools panel in the toolbar, and run Limit Total, This removes vertex groups with lowest weights. This defaults to 4 which is a common limit for game-engines. You can also choose which vertex groups are effected when using an armature (Only selected bones for example). And if you want to only apply this to specific ...


7

I think you might be interested in the Mask modifier. This modifier will hide everything except the specified vertex group, or the other way around if you have the invert icon selected. To hide multiple vertex groups, you can add multiple modifiers: Make sure the modifier is enabled in edit mode (triangle icon).


7

Rename the vertex groups so they have the same name as the bone you want to deform them. Add the armature modifier. Make sure "Vertex Groups" is checked (it is by default) and you are done.


7

It sounds like you need to uncheck limit selection to visible at the bottom of the 3D view. When this is selected you can only paint or select geometry that is visible. What limit to selection does is only let you weight paint geometry which is selected in edit mode. So be sure that if this is enabled you have gone into edit mode and selected what you ...


7

This python snippet should work if you paste it into a Text Editor's new buffer and click Run Script. import bpy def survey(obj): maxWeight = {} for i in obj.vertex_groups: maxWeight[i.index] = 0 for v in obj.data.vertices: for g in v.groups: gn = g.group w = obj.vertex_groups[g.group].weight(v.index) ...


7

Just realized lately that we actually ignored one weight tool off the shelf - Clean. You can simply click it then use the default Limit value 0.000. Done.


7

Deselect all the vertices, with A. Select the first vertex group with the Select button under the vertex group list in the properties window. Invert the selecting by pressing CtrlI. Hide those vertices, with H. Select the second vertex group (same way as in step 2). Any vertices that are now selected are in both vertex groups. After doing what you want ...


7

Fill in the required vertex group names, it will merge them into a 3rd new group: import bpy # EDIT THIS vgroup_A_name = "" vgroup_B_name = "" # Get both groups and add them into third ob = bpy.context.active_object if (vgroup_A_name in ob.vertex_groups and vgroup_B_name in ob.vertex_groups): vgroup = ob.vertex_groups.new(name=vgroup_A_name+"+"+...


6

This method doesn't use weights, but it seems that your real goal is to get the proximity into Cycles. If this is the case then you can get the proximity using a different method called Dynamic Paint. This will output an image sequence that can be used in Cycles. Below is a rough example of what dynamic paint can do: This will output a vertex colour layer ...


6

You can try the Vertex Weight Edit modifier. For example, I can input the following texture as a Texture Mask to the modifier: ... that will then use its value, to control how the modifier assigns weight to each vertex. Tweak at least the Default Weight, threshold settings and fallof type to get the result you need: Though not instantly updated if we edit ...


6

Vertex groups Decimate modifier has a field where you can specify the vertex group that will be affected by the decimation. The little arrows on the right set the "inverse" selection. In the image sequence below you can see how the sphere vertices that are assigned to the vertex group remains untouched till the very end of the decimation process:


6

No, you can't use Vertex Groups for Subdivision Surface modifier. What you can do is select region you want to have smoother and use W > Subdivide Smooth. Be aware that this method will create ngons and/or tris (when Quad/Tri Mode is checked).


6

Assign only the needed vertices (tips) for each bone as follows: And then you should fold it beautifully.


5

Try using CtrlP and select automatic weights, to parent the mesh to the armatures to automatically create the vertex groups.


Only top voted, non community-wiki answers of a minimum length are eligible