Motion Mapping (.gmm)

Golaem Crowd enables to retarget animation from one skeleton to another, which means a motion created from a skeleton A (let's say: a human) can be replayed on skeleton B (let's say: a biped with four arms).

You will notice when describing a skeleton, or auto-computing one, that the limbs are grouped in channels (representing left/right arms, legs or head). Golaem Crowd stores and processes motions by channel, which means that in order to be able to retarget motions correctly, Golaem Crowd needs to know which channels from skeleton A match the channels on skeleton B. This is the role of the Motion Mapping.


Example of mapping a human motion (left) on a four arm biped (right)

Note that as the motion mapping is only used to retarget motions from skeleton A to B, even if you have 100 motions done with skeleton A and want to play them on skeleton B, you only need to compute the animation mapping once

Note that if you intend to play the motion on the skeleton it was extracted from, you don't need to create a motion mapping, you just have to choose the Identity Motion mapping Mode in the Motion Behavior and Locomotion Behavior.

COMPUTING THE Motion MAPPING AUTOMATICALLY

Before creating a motion mapping, you need first to load the character on which your are going to retarget the motion (skeleton B), and a motion exported from skeleton A. You can then compute the Motion Mapping automatically by pressing the Compute Motion Mapping button.


The Motion Mapping Tab

EDITING THE MOTION MAPPING

If you want to change the computed motion mapping, right click on a channel rectangle (but not on a limb) and select "Edit Motion Mapping", as explained in the Character Maker Main Workspace help.

You can then edit the channel to which the right-clicked channel is mapped. To view the available channels of a given motion, you can load it in the Character Maker.


Motion Mapping Menu (see the Main Workspace help for details about the parameters)

When editing the Motion Mapping of a human morphology, it is advised to set the Replay Mode of the head channel on Rest Relative for all (Limb/Effector, Auxiliary/Extension).


Motion Mapping configuration for the head channel

Here is an example for the complete mapping of a human motion on a biped with 4 arms:

  • Note that RightArm and RightArm1 channels (lower and upper right arms of the 4 arms biped) both replay the same RightArm channel of the human motion, but the Lower arm has no fingers to be mapped while the upper arm has 5 mapped fingers
  • Channels LeftArm and LeftArm1 also replay the same LeftArm channel 
  • Effectors on LeftLeg and RightLeg do not replay anything: that's because this biped has 3 foot fingers while our motion has none
  • Head Channel is configured in Rest Relative mode as advised


Result of the Motion Mapping of  a human motion on a 4 arms biped
(original Motion shown on left
)

SAVING THE Motion MAPPING

When saving the animation mapping file (), it is advised to name it using the following convention skeletonBname_replay_skeletonAname.gmm, for example, crowdman_replay_rocketbox, when mapping the crowdman skeleton to rocketbox motions.