There are two ways to animate a character in Golaem Crowd. Either trough the animation engine (Motion Behavior or Locomotion Behavior) or thanks to baked geometry animation, in fbx or gcg file, through the Geometry Behavior.
To be able to use a character within the Golaem Crowd with the animation engine , it should respect the following rules:
- all character meshes should be skinned on the character skeleton
- the skeleton should be a hierarchy of maya Joints (also called bones in this documentation) or maya transforms.
- all the bones of the hierarchy must be connected together (directly or via transform nodes)
- the root bone of the skeleton (see Skeleton Tab) must control the skinning overall position, orientation and scale
- the animation should only use rotations on bones, except for the skeleton root which can also use translations
- as the root bone controls the overall orientation of your character, make sure to place it at a correct location (for a biped it can be the same bone than the hips, for a car it is better if it is a separate bone positioned on the floor (Floor Ref bone)).
- all the bones should have the "Segment Scale Compensate" unchecked.
- all the nodes above the root bone (transforms, controllers) should have a identity scale (1., 1., 1.)
Recommendations on Biped Skeletons
Even if the previous list of prerequisites is enough to ensure a working animation, a few other things may help obtaining a better animation quality when dealing with bipeds:
- The skeleton should be given in a standing posture, with symmetrical angle on left and right parts
- The upper member joints should be the hierarchical children of the bust (and not of the neck!)
- The lower member joints should be the hierarchical children of the pelvis (and not of the spine!)
- Head should look towards the horizon
- Arms and legs should be on Coronal plane (see the figure below), with hands face down
- Arms, legs and fingers don't need to be outstretched but should not be unextended neither. In fact, a tiny flexion in the correct direction is the best possible configuration
- Feet should be in rest pose, with both the heel and the phalanges on the ground
- If planning to retarget motions from other skeletons, the pelvis joint should be at the same height relatively to the characters than the skeleton used to create these motions (usually hips height, see picture below).
Simulation Cache only stores positions, orientations, scales & postures of each Entity per frame. To be able to apply these data and thus render a deformed Entity geometry, its meshes and skeleton are stored in an FBX or GCG geometry file. Then, when a render is launched, the cached posture is applied to the geometry skeleton and the Golaem engine automatically computes the resulting deformed geometry according to skinning weights, constraints, deformers... See the Rendering Workflow for more information.
Thus, all the mechanisms used by a Maya character to deform its geometry according to its skeleton, must be exportable in an FBX or GCG file. As FBX is Autodesk's main interchange file format, it supports most of the features of Maya. This includes skinning, parenting constraints, most deformers and a lot more. GCG File may only offer a subpart of FBX features, yet the most commonly used. Finally, as custom Maya deformers (internal Muscle system for example) will not be supported by FBX, they are neither supported by Golaem Crowd (yet).
As shaders are not involved in the meshes deformation process, they are not concerned by the FBX/GCG limitation. The way shaders are included in the render process is detailed in the Rendering Workflow.