Motion conversion best practices
When converting motions, there are some helpers to check their quality and detect if they will be replayed correctly or if they need to be fixed and re-converted.
Importing source motions in Maya
Making sure timeline settings are correct
When importing motions from diverse sources in Maya, it is very important to check a few things (especially when importing them from .fbx files)
Select the root bone of your character in the outliner and check the timeline
Animation imported with incorrect frequency scene setting
It may happen that because the source motion frequency is for example 30fps and your Maya frequency 24fps, the animation keyframes are not exactly on Maya keyframes. Golaem will import values at each Maya keyframe, so there will be interpolation and loss of quality.
You can also notice that there are blank keyframes at the end of the timeline. Adjusting the timeline to the length of the motion will make your life easier when converting it.
Last but not least, sometime, there can be animation store hidden on frame 0. If you import a perfectly looping motion and forget to import data on frame 0, it will not loop anymore...
Animation imported with correct frequency scene setting
Making sure animation data are available on character bones Orientation/Scale attributes
Golaem read data in Orientation / Scale channels of the character skeleton. Depending on how your rig works, it may not transfer these data to these attributes.
So in some cases, you may need to bake the animation (Maya menu / Edit / Keys / Bake simulation, make sure to check command settings to bake all bones) and delete the rig before importing the animation with Golaem
If your rig uses bone translations, you may need to adapt it or use some of the techniques discussed below in the Forward Kinematic Compatibility part.
Checking Conversion Quality during import
When importing motions, it is important to check the Forward Kinematic Animation Compatibility and Golaem Conversion Quality indicators at the top of the Motion Tab panel.
All green! Congrats!
Forward Kinematic Animation Compatibility
This indicator checks if the translations values on bones are the same or not than in the .gcha character file you are importing the motion on.
Some problems are detected in Forward Kinematic Animation Compatibility (which obviously has some consequences on Conversion Quality)
Usual reasons why it could be different:
- You are not using the same skeleton versions in gcha and motion files. In this case reload the motion skeleton on top of you .gcha skeleton before importing.
- You animation is made of animated translations on bones which is not supported as-is in Golaem (except for the root bone of course). In this case you will need to fix your motion, your skeleton (check Add movable props to a character), or use a specific method to store this animation (Using blind data to store more accurate animations).
To know exactly on which bones problems are detected, you can check logs in the script editor
Golaem Conversion Quality
After you checked that the animation can be imported on your character skeleton, you should check if the conversion result was good or not
Although everything seems green, you should expand the quality indicator to check curves on each bone (see below)
When expanded, the Golaem Conversion Quality indicator shows curves for each skeleton bones.
You can also get more details in the Script Editor logs. The bones with the worst animation quality are shown at the top of the list
Some frequent reasons why conversion quality could be bad
- Forward animation compatibility is bad : read the previous section again!
- IK planes where not set correctly on the import skeleton : check them
- The way you mapped your skeleton bones in .gcha character file is not optimal: for example check best practices for humans, fingers, horses
- Do you have some roll bones or extra bones in the middle of your limbs? check here
Note that even if Conversion Quality is not perfect, your motions can still be used with Golaem. It just means that the output will be a bit different than the original animation. Sometimes it can be a problem (sliding feet, twisted limbs...), sometimes not. Use the CharacterMaker Locator to check what the consequences of the quality loss are (see below).
CharacterMaker Locator Configuration
The CharacterMaker Locator can be used for multiple purposes so its default configuration is not always the best to check your motions
CharacterMaker Locator default settings
IK Planes
IK Planes can be hidden to have a better view of the skeleton, but as they can help to understand why an animation has not been correctly converted, we would advise keeping them
Ragdoll Volumes & Limits
To check motions quality, we do not care about Ragdoll Volumes or Limits, you should uncheck these.
Setting up the Joint Display Scale / Bone Radius
Note that the Golaem skeleton display is influenced by the Maya Joint Size setting. So to setup skeletons display, first adjust the Maya Display / Animation / Joint Size to better see the Maya skeleton
Then adjust the Bone Radius and Bone Axis Radius in the Golaem CharacterMaker Locator
Golaem (colored, with axis) and Maya (dark blue) skeletons with display sizes big enough to see bones rotations
In the screenshot below, we imported a Motion and used the crop / blend parameters to make it loop (so that Golaem gradually modifies the animation in order to make the first/last frame match). You can see the difference between the converted animation and the original one.
Golaem Converted animation (highlighted) and original animation (dark blue) after modifying the original motion to make it loop
Checking if a Motion Loops Correctly
To check how your converted motion is looping, check Loop animation in the CharacterMaker Locator attributes.
When you play frames outside of the frames which you imported the animation from (or cropped it to), the converted motion will loop, instead of replaying the original motion. It will enable you to check of the converted motion loops correctly or not.
Golaem converted motion (highlighted), which is a cropped part of source motion played in loop, and source motion(dark blue)
Note that even if a motion loops well, you may want to check that there is no drift (going straight motion), or exactly what is the turn angle (turn motion), or no change of position (static motion). See the Making your motions loop tutorial for more details about this.
Read the Making your Motions loop tutorial for more details
Footprints
Another important (and even crucial) thing to check is footprints computation.
Read the Setting Footprints on your Motion for more details