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.
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 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)
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.
See also
The transfer_mask.rumba, transfer_id.rumba and transfer_manipulator_id.rumba samples.
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.
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 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:
Push / Pull
The Sculpt Brush moves the vertices along the normal of the surface at the brush center.
Inflate / Deflate
The Sculpt Brush moves the vertices along their own normal.
Smooth vertices
The Sculpt Brush smoothes the vertices in world space.
Smooth sculpt
The Sculpt Brush smoothes the sculpt deformation.
Relax
The Sculpt Brush smoothes the vertices while conserving the shape and volume of the Mesh.
Erase
The Sculpt Brush removes the sculpt deformation.
Flatten
The Sculpt Brush makes the surface flat, with the normal being the one at the Brush center at the stroke start.
Pinch
The Sculpt Brush shrinks the vertices towards its center.
Grab
The Sculpt Brush moves the vertices along the normal of the surface at the brush center.
Mirror
The Sculpt Brush copies the mirror vertices deformation onto the sculpted vertices.
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.
DeltaMush
The DeltaMush deformer restores the global shape of a deformed mesh w.r.t. its smoothed version.
Wrapper
The Wrapper deformer wraps geometry components on others, e.g. eyebrows.
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
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 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 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.
See also
The transfer_blend_shapes.rumba, transfer_cluster.rumba, transfer_delta_mush.rumba, transfer_sculpt.rumba, transfer_skinner.rumba and transfer_wrapper.rumba samples.
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:
assemble common nodes in the Node Editor and add it to the Node Library
use a Script Node to do some complex computation
develop a C++ plugin to use some external library
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.