Rig a Character

Rumba Rig comes with a set of rig templates consisting in an Asset Node with a set of children nodes to load the character geometry, assemble a skeleton and deform the character.

../_images/template.png

Asset

In Rumba Rig, a character rig is built w.r.t. the character Asset’s space, allowing global translation, rotate and scale of the character and its rig.

When an Asset Node is created, its display Plug is automatically connected to a hidden Display Node. Hence to see the final character geometry, it has to be connected to the display Plug of the Asset Node.

The Asset Node also stores the naming convention for mirroring.

Geometry

The character geometry can be imported from a USD or Alembic file using a ReadScene Node, or directly by referencing a RumbaNode file.

For a same rig to be transposable to several characters, the character geometry is represented as a tree in a Scene Value which is transported along the Evaluation Graph to be deformed.

It is possible to augment a character geometry in many ways:

  • the Extract, Merge and Reparent Nodes can be used to change the tree structure of the geometry Scene

  • the SceneOverride Node can be used to add/change attribute values in a Scene (e.g. transform, show, dynamic attributes, Shaders)

See also

The scene_structure.rumba and scene_override.rumba samples.

Painters

An other way to add attributes to a character geometry is to use the Painter Nodes. A Painter Node adds a Shape attribute, of the desired Topology, to its input Scene.

Each Painter Node is related to a specific Brush Tool that allows to paint the new attribute values and can be activated from the Node menu (Edit action) or by clicking the icon_pen icon under the Node. The Brush Tool then appears in the list of available Tools as long as the Painter Node is in edit mode (there can be only one Node in edit mode at the same time).

Note

Geometry component selection can be used to determine the zone of influence for a Brush Tool.

All Brush Tools share the same basic user interface:

  • a list of icons to select the Brush operation (see operation description below)

    icon_paint Paint
    icon_mirror Mirror
    icon_smooth Smooth (not available for ID and ManipulatorID)
    icon_transfer Transfer
  • a dropbox to select the source shape for the transfer operation, which can come from the input or source plug

  • the set of basic Brush parameters:

    • the Brush type

      surface

      The Brush affects all the shape components within the Brush radius that sit near the plane given by the surface normal at the Brush center

      geodesic

      The Brush affects all the shape components that sit under a geodesic distance equal to the Brush radius

      volume

      The Brush affects all the shape components within the Brush radius

      fill

      The Brush affects all the shape components

    • the Brush radius

      Determines the distance to consider to affect the shape components. Can be changed from the viewport with the B shortcut.

    • the Brush smoothness (not available for ID and ManipulatorID)

      Determining the gradient of Brush effect. Can be changed from the viewport with the V shortcut.

    • the Brush flow (not available for ID and ManipulatorID)

      Determining how fast the Brush tends to full effect. Can be changed from the viewport with the C shortcut.

    • the Brush opacity (not available for ID and ManipulatorID)

      Determines how much of the Brush value is used for the Brush operation.

    • the Brush multi-object state

      Whether the Brush affects all the shapes within its radius or only the closest to its center.

    • the Brush operation

      Paint

      The Brush paints the value on the affected shape components.

      Mirror

      The Brush uses the values of the mirror components to paint on the affected shape components. The Brush value is then used as the blend factor between the current value and the mirror value.

      Note

      The Painter Node must be child of an Asset Node.

      Smooth (not available for ID and ManipulatorID)

      The Brush smooths the values of the affected shape components.

      Transfer

      The Brush uses the values of the closest components of the source shape to paint on the affected shape components.

    • the Shift, Control and Shif Control operations (when available)

      The operation of the Brush when the Shift, Ctrl or both keys are pressed when painting.

Here is a list of the Painter Nodes available in Rumba Rig:

  • The Mask Node allows to paint float values between 0 and 1 on a Mesh vertices or faces.

  • The ID Node allows to paint integer indices on a Mesh vertices or faces.

  • The ManipulatorIDPainter Node allows to paint manipulators indices on a Mesh faces.

    Note

    The ManipulatorIDPainter Node must be child of an Asset Node which must have another child called manipulators that contains the Manipulator Nodes.

New Painter Nodes and Brush Tools can be created as Rumba Rig plugins.

Deformers

Rumba Rig comes with a set of standard geometry Deformer Nodes.

A Deformer Node takes a scene to edit as input, as well as a set of parameters. Some parameters can be defined per Shape component, e.g. weights or masks, and can thus be set using Brush Tools. As for the Painter Nodes, Deformer Nodes can activate Brush Tools to paint the needed parameters through the icon_pen icon under the Node.

Note

If a Deformer Node needs multiple paintable parameters, it will provide a Brush Tool activation for each one in the list of available Tools, but only one is activated by default.

As for Painter Nodes, new Deformer Nodes can be created as Rumba Rig plugins.

Sculpt

The Sculpt deformer allows to sculpt the character geometry through the Sculpt Brush, which allows multiple operations:

icon_push Push / Pull

The Sculpt Brush moves the vertices along the normal of the surface at the brush center.

icon_inflate Inflate / Deflate

The Sculpt Brush moves the vertices along their own normal.

icon_smooth_v Smooth vertices

The Sculpt Brush smoothes the vertices in world space.

icon_smooth_s Smooth sculpt

The Sculpt Brush smoothes the sculpt deformation.

icon_relax Relax

The Sculpt Brush smoothes the vertices while conserving the shape and volume of the Mesh.

icon_erase Erase

The Sculpt Brush removes the sculpt deformation.

icon_flatten Flatten

The Sculpt Brush makes the surface flat, with the normal being the one at the Brush center at the stroke start.

icon_pinch Pinch

The Sculpt Brush shrinks the vertices towards its center.

icon_grab Grab

The Sculpt Brush moves the vertices along the normal of the surface at the brush center.

icon_mirror Mirror

The Sculpt Brush copies the mirror vertices deformation onto the sculpted vertices.

icon_transfer Transfer

The Sculpt Brush copies the deformation from the transfer source Mesh onto the sculpted vertices.

BlendShapes

The BlendShapes deformer applies a set of blend shapes to the character geometry w.r.t. the blend shapes’ activation parameter.

It comes with a specific Sculpt Brush Tool to add/sculpt/remove the blend shapes, as well as an activation mask that can be painted using the Mask Brush.

DeltaMush

The DeltaMush deformer restores the global shape of a deformed mesh w.r.t. its smoothed version.

It comes with an activation mask that can be painted using the Mask Brush.

Wrapper

The Wrapper deformer wraps geometry components on others, e.g. eyebrows.

It comes with two masks that can be painted using the Mask Brush: the first one is an activation mask on the Meshes from the input Scene, the second specifies how rigid the wrap should be w.r.t. the local frame of the input Meshes.

Cluster

The Cluster deformer applies a transform to a set of weighted vertices, which can be painted using the Mask Brush.

Skinner

The Skinner deformer applies classic skeleton-based skin deformation.

It comes with a specific Skin Layer Brush Tool to paint the skinning weights on the geometry, as well as an activation mask that can be painted using the Mask Brush.

The Skin Layer Brush Tool use a layer-based approach to paint the skinning weights. A layer is created for each skeleton element (joint or curve), and the layers are structured in a hierarchy mimicking the one of the skeleton. The final skinning weights are computed by flattening all the layers on their siblings and parent (upwards w.r.t. the tree view).

Note

When painting the skinning weights in a layer, just focus on the transition with its upwards layer and spread the weights far enough for the downwards layer to deal with.

Checking the Display Joint Weights checkbox puts the Skin Layer Brush Tool in the final weights mode. In this mode, the final skinning weights are displayed instead of the layer weights and a second column of icon_lock icons appear on the layers. The final weights mode allows to directly edit the final weights associated to the skeleton element of the current layer by taking or giving weights to the other layers. By default all the layers are unlocked and can be modified. Click the icon_lock icon of a layer to lock its corresponding final weights (using the shift hotkey toggles the lock of all the layer’s sub-hierarchy).

The Skin Layer Brush Tool also allows to display blended influence colors using the icon_eye icon on the layers (using the shift hotkey toggles the display of all the layer’s sub-hierarchy).

The Skin Layer Brush Tool provides useful commands to edit the skin weights:

Prune Weights

For each layer, removes the weights for the vertices that end up with a zero final weight.

Mirror All Layers Left to Right / Right to Left

Mirrors all left layers onto the right layers, resp. right onto left (w.r.t. the character’s Asset Node convention). For non-lateral layers (e.g. pelvis), mirrors the weights from the character’s left side to the right side, resp. right to left.

Transfer Weights

Opens a popup window that allows to specify a set of geometries to be used as transfer sources and associate each them with a set of target geometries. The weights of all the layers will be transferred. For more granular transfer, use the transfer Brush operation.

Transfer All Weights From Source

Transfer all layers weights from the transfer source geometry.

Skeleton Modules

In Rumba Rig, animation skeleton are procedurally generated Scene Values. A Skeleton Module is a Node responsible for the generation of a skeleton part, e.g. joint, spine or limb, along with the corresponding animation controllers.

Skeleton Modules are assembled together to build the final animation skeleton through the parent-child connections.

Rumba Rig comes with a set of Skeleton Modules to build the required animation skeletons. There a multiple ways to create a new Skeleton Module depending on its complexity:

Manipulators

Rumba introduces the concept of selection-free manipulation through Manipulator Nodes.

Such Nodes must be stored in the manipulator child Node of the character Asset Node. They can be grouped under a meaningful hierarchy if needed.