modo bubbble logo

Binding and Setup Mode


Home >> Rigging & Animation >> Bind & Setup

back next

Binding

Binding is the process of connecting a skeleton made with the 'Skeleton' tool, and attaching it to the target geometry so that it deforms when the skeleton is manipulated. The process is simply enough, with just a couple requirements that need to be met prior to running the command. Once geometry is ready to be animated, and a reasonable Skeleton is created with an appropriate hierarchy (created automatically when drawing out the skeleton - reference the Skeleton tool documentation for more information). The first step is to be in 'Items' mode where users select the target Mesh item(s) and the Root of the Skeleton hierarchy. Next enter the 'Setup' action state by pressing the button above the 3D viewport in the 'Setup' interface tab. 'Setup' action state is designated by the yellow outline of the viewport when enabled. From within the Setup action state the 'Bind' tool command found in the toolbox, under the 'Deformers' subtab, becomes accessible. LMB+clicking the button activates the Bind process opening a dialogue box presenting several methods of Binding the skeleton, described further below.

When clicking 'OK' in the dialogue, a series of actions then take place, all automatically. The first is the weighting of the skeleton to the geometry. Each joint will have an associated weight map created based on the 'Bind Type' and its settings. Next, a series of Deform Influences are assigned to each joint of the skeleton and each has an associated weight map generated and assigned to it. Finally, each Influence is automatically linked to its originating Joint and the entire hierarchy of Deformers is now placed into a Normalizing folder, where all the influences will be evaluated as a single unified deformer. After running the 'Bind' command, the user need only to exit 'Setup' mode in order to begin to deform and animate the character. As with all things MODO, further refinement is of course possible, if users wish to fine tune the automatically created weights using the Weighting tools found in the appropriately named toolbox subtab 'Weighting'.

Bind Dialogue Box

Bind--

Bind Type: By default the binding process treats the hierarchy as individual segments between the items. Weights are assigned to vertices along the line between an item and it's child (similar to a bone). When an item has multiple children they are treated as a single segment.
Rigid- This is the simplest of all binding methods, a vertex will be assigned a 100% weight to the closest segment in the hierarchy, or to the closest joint when 'Bind as Segments' is disabled.
Smooth (Distance)- Produces a smooth graduated transition between segments based on its distance from the segment.
Smooth (Visible)- Produces a smooth graduated transition similar to the 'Distance' option, but weighting is only assigned to vertices that are visible to the segment. This can be useful to reduce or eliminate cross talk between neighboring segments, such as with legs or with fingers. However, it does require that the Skeleton is contained entirely within the volume of the geometry.
Heat- This method takes into account the topology of the mesh and the relative positions of the joints. It often produces superior results to the other methods, but the target mesh must conform to a number of requirements-
--Mesh must form a volume, though holes are supported (such as eye sockets).
--Target mesh must be only polygonal, no single vertices, floating edges or curves can be present.
--No shared vertices, edges or polygons (non-manifold surfaces) allowed between multiple components.
--All joints must be contained within the volume of the mesh.
When applying 'Heat' weighting, if any errors are encountered, the bind command will report the error with a message popup. Most geometry issues can be resolved by applying the 'Mesh Cleanup' command. Illegal geometry will be highlighted upon exiting the command f encountered allowing users to target the area to repair. Another error that might be displayed is a "Solver Error", this can occur when there are multiple mesh volumes in the same 'Mesh' item layer, especially if they overlap. A simple example would be two primitive spheres in the same layer. Often these solver errors can be fixed by only weighting the main mesh volume, e.g. the skin of a character, and placing any other elements into another layer (such as eyes, hair, clothing etc) before weighting.

Falloff: When using either of the the 'Smooth' Bind types, this value determines the attenuation amount between neighboring weight maps. 'Low' produces a softer more gradual transition between joint weights, where the 'High' option produces a more abrupt transition, with 'Medium' in the middle of the two.

Bind as Segments: When 'Bind as Segments' is enabled, the weighting is calculated as a radius around each joint rather than along the segment between a joint and it's child

Limit Weights: When 'Limit Weights' is enabled, this option can be used to limit the number of joints that can influence a weight value during the 'Bind' process (Useful for 'Unity' which can handle a maximum of four joints per vertex).

Number of Weights Per Vertex: When the 'Limit Weights' option is enable, this value determines the maximum number of influencing joints. This value is passed on to the 'Normalizing Folder' as the 'Max Sources' attribute where it can be adjusted later on.

Minimum Weight Value: Any Weight values below this defined threshold will be ignored. Useful in cleaning up 'Heat' Binding which has a tendency to generate a lot of small Weight values.

 

Setup

Users unfamiliar with animation and rigging may be curious to know why one needs to enter a 'Setup' mode in order to 'Bind' a skeleton to the geometry or set up 'Inverse Kinematics'. Basically, it is because when the Binding takes place, items in the 'Setup' action state are understood by MODO to be in their resting or undeformed position. By binding in the 'Setup' action state, the initial position of the individual joints is defined and is zeroed so all joints will have the same starting value. Same for IK, as it defines the base position for segments along the chain, so when a Task or Goal is added, the IK solver know from where to begin its calculations. Also by having a specific 'Setup' mode provides a lot of flexibility allowing users an easy way to get an animated or deformed model back into its resting positions for further refinement without having to remove or disable any animation already applied to the geometry.

Additionally, the 'Setup' action state can be used to define Resting positions for 'Falloffs' when used as Deformers, so MODO will know what areas of the mesh should be under the influence of the Falloff.

 

comment balloon Comments (1) RSS Icon

jake carvey June 26, 2015 at 12:38 PM

For the quite tricky process of associating a brand new weight map with an existing joint see here:

http://okita.com/alex/2015/04/adding-joints-to-a-weighted-mesh/

Top

back next