ozz-animation

Documentation - Overview

What ozz-animation is

ozz-animation is an open source c++ 3d skeletal animation engine. It provides runtime character animation playback fonctionnalities (loading, sampling, blending…), with full support for glTF, Fbx, Collada and other major 3D formats. It proposes a low-level renderer agnostic and game-engine agnostic implementation, focusing on performance and memory constraints with a data-oriented design.

ozz-animation comes with a toolchain to convert from major Digital Content Creation formats to ozz optimized runtime structures. Offline libraries are also provided to implement the conversion from any other animation and skeleton formats.

What it’s not

ozz-animation is not a high level animation blend tree. It proposes the mathematical background required for playing animations and a pipeline to build/import animations. It lets you organise your data and your blending logic the way you decide.

ozz-animation doesn’t do any rendering either. You’re in charge of applying the output of the animation stage (one matrix per joint) to your skins, or to your scene graph nodes.

Finally ozz does not propose an official pipeline to load meshes and materials either. The sample framework embed a mesh importing tool (fbx2mesh) though.

License

ozz-animation is published under the permissive MIT license, which allows to modify and redistribute sources or binaries with very few constraints. The license only has the following points to be accounted for:

The license does not require source code to be made available if distributing binary code.

Reporting issues or feature requests

This page lists implemented features and plans for future releases. Please use github issues to report bugs, request features or discuss animation techniques.

Contributing

Everyone is welcome to contribute: code review, bug report or fix, feature request or implementation, optimization, samples…

ozz branching strategy follows gitflow model. When submitting patches, please: