A Deep Dive into Ozz: Bringing Sceneri Characters to Life
Characters with Exquisite Complexity and Complete AAA Functionality.
Ozz Animation is an open-source C++ skeletal animation library that offers runtime character animation playback functionalities, including loading, sampling, and blending. It is a low-level, renderer-agnostic, and game-engine agnostic library that emphasizes performance and memory constraints.
The animation library boasts a range of high-end features that inject life and realism into your projects. Combined with our previous article on Jolt, we empower Sceneri to create incredibly complex scenes across all platforms and devices. Some of the following use cases are included within the library:
Skinning: Enabling fully skinned characters with bones and providing the capability to incorporate organic or hard surface models with complete articulation into your scenes.
Joint Attachments: Facilitating the placement of items on the character that bounce around at runtime to create believable secondary animation outside of keyed animations.
2-bone IK: The method involves extending the end chain of the skeleton to a position where the entire chain follows.
Look IK: The procedural placement of gaze on characters within a scene allows for accurate tracking of items of interest or even the pivoting of defense systems within games.
Our team, coming from a background at Crytek, recognizes that many of these same features are present within the familiar CryAnimation system. However, having an external library like Ozz that offers these benefits along with multi-threading and C++ access is a luxury that most developers would have desired many years ago.
Low-level Features of Ozz
Overall, Ozz Animation is a potent and versatile animation library that offers numerous benefits for game developers. It proves to be an excellent option for games requiring real-time animation of a large number of characters or objects, as well as those intended for deployment across multiple platforms.
- Data-oriented design:Â Designed to be data-oriented, which means that it stores its data in a way that is optimized for performance and memory usage.
- Support for major DCC formats:Â Shipped with a toolchain to convert from major DCC formats, such as glTF, Fbx, and Collada, to ozz-optimized runtime structures.
- Multi-threading:Â Enabling the display of large amounts of skeletal data on the screen at any given time, while efficiently managing tasks across all available cores.
As shown, Ozz is a powerful and versatile skeletal animation library that can be used to create realistic and immersive animations. If you are looking for a high-performance and memory-efficient skeletal animation library, then Ozz is a good option to consider. Internally we utliize Ozz fully and have yet to meet a barrier in implementation within our platform.
To unlock a wealth of tips and tricks, make sure to visit our YouTube channel or check out our official Discord, where we delve into the ins and outs of these features and many other tools that will guide you on your creative journey!