guillaumeblanc/ozz-animation
游戏面向游戏引擎的 C++ 骨骼动画运行时与转换工具链,适合追求低内存和高性能的角色动画播放。
项目介绍
ozz-animation 是一套 C++ 3D 骨骼动画库和配套工具集,主要解决游戏运行时角色动画的加载、采样和混合问题。它刻意不绑定渲染器和游戏引擎,采用面向数据的设计,把性能和内存占用放在优先位置,适合作为引擎底层动画模块嵌入。
配套的离线工具链可将 glTF、FBX、Collada、Obj、3ds、dxf 等常见 DCC 格式转换为 ozz 优化后的运行时结构;同时提供离线库,便于自行实现其他骨骼和动画格式的转换器。适用对象是需要小型、可移植动画核心的引擎程序员和玩法程序员,或打算把 ozz 接入自研渲染器和工具管线的团队。
快速使用
运行时代码要求 C++17 编译器;示例、工具和测试还依赖 glfw、tinygltf、Fbx SDK、jsoncpp、gtest 等外部库。建议从 仓库 开始,再按照 官网文档 中的构建说明和示例操作。README 没有给出可直接复制的构建命令,因此具体配置和编译步骤应以官方文档为准,不要自行猜测。
构建完成后,典型流程是:用离线工具链把源资产(例如 glTF 或 FBX 文件)转换为运行时数据,再在游戏循环中通过运行时 API 加载、采样或混合动画。官网示例程序完整演示了这一流程。
运行与工具约束
运行时代码(ozz_base、ozz_animation、ozz_geometry)只依赖 C++17 和 C/C++ 标准库,不包含与操作系统相关的代码。项目在 WebAssembly、Linux、macOS、Windows 上针对 x86、x86-64 和 ARM 架构进行测试;对其他平台的可移植性只是大致可行,并不构成保证。
外部库只用于示例、工具和测试,不需要随运行时一起发布。FBX 离线转换需要 Fbx SDK,glTF 工具依赖 tinygltf,因此构建完整工具集比只嵌入运行时更重。项目采用 MIT 许可证。
使用案例
仓库维护了一个 issue 用来列出使用 ozz-animation 的项目,适合在接入前参考现有的集成方式和引擎场景。
HotRepo 点评
在 2026-11-01 的 C++ 日榜中,ozz-animation 位列第 14,单日新增 22 Star,总量达到 3,099 Star、363 Fork。这是目前记录到的唯一一次榜单快照,没有全部语言日榜名次,也没有 Star 曲线可供判断趋势,因此这只能说明它当天进入过 C++ 榜,不能据此推断持续增长。技术层面更稳定:一个范围明确的 C++17 动画运行时、DCC 格式转换工具链和四平台测试矩阵,正是这类专注型库能在榜单波动之外长期服务于引擎集成的原因。项目创建于 2015 年,加上 issue 中的用户清单,说明它是一项成熟工具,而不是靠排名崛起的新项目。
本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。