proxy-rigid
Parts of a garment that must keep their shape: an armour plate, a helmet's visor and its locking ring, a buckle. A bound garment otherwise follows the skin point by point, which is right for cloth and wrong for anything hard: on a heavier body a knee pad bulges with the knee, and in a clip it bends with it.
A rigid part moves as one piece. On a new body shape it is placed where its flexible fit would put it, by the best rotation, uniform scale and translation (Horn's method), so it keeps its shape and is sized to the body. Its skin weights are the part's average, so the clip carries every vertex of it by the same transform and nothing bends.
Rigidity is a dial per vertex, 0 (cloth) to 1 (hard), so a part can be
partly rigid: the fabric of a spacesuit's neck can run from flexible at the
shoulders to rigid where it meets the ring, by blending each vertex between
its own fit and the part's.
Which vertices belong together is a GROUP. A rigid object is one group; a rigid object made of separate plates can be a group per plate (its loose islands); and objects that must move together (the visor and the ring) share a named group.
Set in Blender as custom properties on an object (exported with Include → Custom Properties, see garment-file):
rigid |
means |
|---|---|
1 (or a tick) |
the object is one rigid piece |
| a number below 1 | the whole object is that rigid |
parts |
each loose island of the object is its own rigid piece |
paint |
rigidity painted as the vertex colour's red, islands as pieces |
| any other word | a named group: every object with the same word is one piece |
A float attribute named _rigid (exported with Data → Mesh → Attributes)
sets each vertex's dial instead of the object's number. Paint is the mesh's
active colour layer, which Blender exports by default when the object has no
material; with a material, set Data → Mesh → Vertex Color to Active. A name
ending _rigid or _rigidParts does the same as the first and third rows,
for files without custom properties (an OBJ).
All of these have been round-tripped through Blender 5.2's glTF exporter, and the suffixes through its OBJ exporter.
Pure: rigidGroups resolves the groups from a mesh and its parts, and
fitProxy, proxyWeights and proxyDelta honour a binding's rigid.