We want to have assets that take the lowest amount of memory, but that animate at the highest possible quality.
Uncompressed, an animation contains a key for every frame in the animation and for each joint that has been exported. We usually want to reduce the amount of joints and keys to minimize the size. We have separate channels for rotation keys and position keys per joint.
To compress animations for characters we use the Resource Compiler tool (RC).
To adjust compression settings of the animation, load your character by double-clicking on it in the Asset Explorer.
Choose your animation in the Animations tree in the Asset Explorer. Note that both *.i_caf and *.animsettings should present and writable. (Not inside a *.pak file)
Note for Perforce users: *.i_caf and *.animsettings files should be synced and checked out locally. If they are not, use a perforce client to do so first.
You can remove specific per-joint compression settings via the context menu
Click the Save button in the properties panel toolbar, or Save All in the File menu when you're done
The goal should be at this point to have an animation that takes as little as possible but looks good. Sometimes though, playing around with global values for a whole animation is not enough, and we will need to fix up individual joints that show choppy motion.
Each animation can have a list of tags associated with it. Tags can be used to:
You can find Tags in the Properties window when you select animation in the Asset Explorer.
To add a new tag use the context button with tag count and select Add in the popup menu:
Pic4: Adding a tag
Then click on an empty string to enter its name.
To remove a tag you can use the context menu (RMB on the tag name):
Pic5: Removing a tag
For curious readers: tags are case insensitive. I.e. the tag "CINEMATIC" will be treated the same way as "cinematic".
Compression Presets can be used to apply the same set of compression rules to multiple animations at once. You can locate them in the Compression section of the Asset Explorer.
Each compression preset entry defines a filter that can match animations according to a certain filter, i.e. a set of criteria such as folder, filename or tags. Such criteria can be combined using logical operations into a complex condition, like "in folder and doesn't contain specific tag but has sub-string in name". When multiple presets match the same animation only the first one is used. You can always preview which compression setting entry was applied to an animation in the animation properties (by selecting a specific animation in the asset explorer).
Compression presets are saved in: <GameFolder>\Assets\Animations.pak\CompressionPresets.json.