HAND [rigBlock]

MRS : Landing | Members | Queue | Forum | DocsLibrary | How

 master | handlesegment | limb | handhead | eye | muzzle | brow

HAND – blockFrame for digits

This block is in very alpha state

This is our first blockFrame rigBlock. It’s our digit handler or HAND for short.

Block Profiles

Block profiles may have their settings changed at will. These are simply presets.

General notes:

  • Profiles are initially loaded at creation but they should be able to be safely loaded at define state
  • Distances are stored in cm (maya’s base unit)
  • Some settings are overridden by the buildProfile settings. For example some game buildProfiles will have endJoints off.


  • numFinger| 4
  • numThumbInner | 1
  • numThumbOuter| 0
  • fingerProfile | finger3
  • definePose | relax


  • numFinger| 3
  • numThumbInner | 1
  • numThumbOuter| 0
  • fingerProfile | finger3
  • definePose | relax

Example toon hand after some shaping work.


  • numFinger| 4
  • numThumbInner | 0
  • numThumbOuter| 0
  • fingerProfile | finger1
  • definePose | wide

Workflow Overview

Roughly how hands are intended to be used.

  1. Place your arm or leg or whatever how you want it. When you’re ready for your hand…
  2. Add a hand and set the blockParent to the thing it should follow and set the attachPoint
  3. Snap it to the end handle of the thing it should follow
  4. Size it using the base size and the handles
  5. Set your finger count and other options
  6. Verify your drivers
  7. Tweak those settings to shape and position
  8. Verify your subBlocks
  9. Push those subBlocks to template state
  10. Snap/Shape align those blocks
  11. Build and iterate to find a setup you like best
  12. When you’re happy, mirror those subBlocks to the other side with or without a hand

Special Calls


Builds the drivers from our eventual rigBlocks to be driven by the system


Checks and/or rebuilds the rigBlocks driven by this rigBlock. Typically LIMB block fingers or thumbs.


Call to snap/shape rig blocks to the blockFrame.


str/mNode | What we want to process. If none, it does them all. If a rigBlock passed that has this as it’s blockFrame, will use that one.


enum | Whether to scale the template loft curves or not


Has right click menu via mrsBuilder.

  • Verify Drivers | Rebuilds the drivers. If you change the finger count for example you’d want to do this
  • Sub
    • Verify | Make sure we have the driven rigBlocks we expect
    • Rebuild | Force a rebuild on the sub blocks
    • Snap | Position and orient relevant handles
    • Shape | Cast shape the loft curves as well as position and orient relevant handles



Bounding box

The size of this object is defined by the baseSize attr. When you define the block the define handles are spaced within this volume. So roughly sizing this to your hand will aid you in more quickly getting to what you want.

Define Handles

The little balls you see are to be used to roughly approximate the boundaries of the hand. The thumbs are more direct than the fingers which will sub split based on finger count.

Vector Handles

The Thumbs have vector handles which will be more clear once we have our drivers verified.


Shared attributes

  • side


float3 | We’ve used this before. The important thing here is that you change the size and the redefine to have the define handles lay themselves out in the volume represented.


enum | What positional layout do we want our initial define handles in our volume. The base vector for the thumbs are changed by this setting.

  • wide | Layed out on a plane as much as possible
  • relax | Slightly rounded layout.


enum | What LIMB profile do we want our sub blocks to use.

  • finger1 | Single section finger
  • finger2 | Two section finger
  • finger3 | Three section finger. DEFAULT.
  • thumb | Single section finger


What are we looking for at this state?

  • Position and orientation of the rigBlock
  • Size using the base size
  • Shape the general shape of the hand with the define handles


This block as a special sub state when the drivers are. When you verify the drivers you’ll see something like this (note, default material on)


There are a number of settings that affect our drivers.


int | How many fingers do you want spread on our frame


int | How many inner thumbs do you want. Inner thumb is what we have as humans. Only one supported for now.

thumbInner_0_scaleX/Y_X and finger_X_scaleX/Y_X

float datList | Current iteration on shaping the hand at this state. You have x/y scale control per driver per finger/thumb

paramFingerStart_X / paramFingerEnd_X

float datList | How you can slide the digits across the curves for more finese in placement


float datList | Where you want the breaks in the digits. Currently setup for 2 but plan on expanding in future.


The idea of the blockFrame is it eventually creates the fingers/thumbs we need to make the actual hand work.

Using the ui, you can:

  • Verify or rebuild subblocks
  • Snap align them
  • Shape align them
  • Mirror to the other side
  • Self mirror (why you would want to we’re not sure but the tech was there from the facial stuff so).

Road Map

Known Issues

  • Param split setup for 2 and doesn’t honor extra splits though it will still build fine
  • You need to push mirror a couple of times when mirroring HAND rigBlocks.

Change Log



  • Docs – initial pass
  • First Implementation

Josh Burton

[MRS Project Lead | CG Monks] Josh is an animator turned TD who hails from Oklahoma, pre-undergrad in the Marine Corps, animation basics at Savannah College of Art and Design, cut his teeth in gaming and commercials before co-founding CG Monks and more recently the CG Monastery. The Morpheus Rigging System is a culmination of years of R&D and he is now thrilled to see what users can create, collaborate and expand on with this open source MRS platform.