Golaem Motion is the animation engine embedded in Golaem Crowd. It is important to understand some of its essential concepts as it impacts the way the assets should be prepared when using Golaem Crowd.

Skeleton Mapping

The skeleton mapping is the action of matching the bones of a skeleton representation on another skeleton representation. Golaem Crowd offers an automatic mapping process to match the user's skeleton representation to the one used by Golaem.

Motion Retargeting

Motion retargeting allows creating a motion on any morphology and reusing it automatically on any other character with a different morphology. In Golaem Crowd, the retargeting is done automatically and in real time, by using the internal skeleton representation.

Motion Blending and Synchronization

Motion blending allows playing several motions at the same time on the same body parts of a character. The final importance of each motion in the resulting posture can be configured through a system of priorities.
The system of priorities can also be used to define a base motion that will be played when there is no other motion in use at a given time (e.g. a sitting motion in stadium), and a higher priority motion that will be played from time to time (e.g. a wave animation). When it is played, the higher priority motion will take the priority over the rest motion, without having to care about stopping the rest motion.
Finally, when blending several motions on the feet, it can result in sliding feet. To avoid this, the animation engine checks the compatibility of each played motion. This process is called the Synchronization. If some motions are not compatible at a specified time, the motions are slightly time warped in a way or another. Thus, if the synchronization process is activated, some motions will not be able to be started at any frame. It is possible to deactivate this process.
It also means the transitions between different motions don't need to be created by the animator; they will be automatically computed by the engine.

Motion Mixing

Motion mixing allows playing several motions at the same time on the different body parts of a character.
A walking motion can be mixed with an animation of waving hand to obtain an animation of someone walking and waving its hand at the same time. To define on which body parts a motion must be played.


Navigation Mesh (navMesh)

The navigation mesh (or navMesh) is an abstraction of a geometry on which characters are navigating. It is automatically computed by Golaem Crowd (see the Navmesh Creator) based on the scene geometry and allows entities to find their path to a target, query nearby obstacles and efficiently access to the ground they're standing on to adapt their motion.

Simulation Layout

Simulation layout is the ability to edit in a non destructive way the results of a simulation once that simulation has been cached. It allows to pile up various deformation layers such as translation, rotation, scale, expand, duplicate... As those layers are non destructive, the simulation cache file are not affected. All the deformation layers are stored in a separate file which is interpreted at rendering time  (see the Simulation Cache Layout).

Procedural Rendering

Procedural rendering is the ability for a rendering engine to call a helper program which generates geometry on-the-fly in response to specific procedural primitive requests in its scene description language (i.e. .rib for Renderman, .vrScene for VRay…). Any rendering engine worthy of the name provides this functionality: it is called DSO (in Renderman) or Geometry Shaders (in Redshift) but it always works the same way: inputs parameters, outputs geometry, black box inside.