2 个不稳定版本
0.1.0 | 2023年5月24日 |
---|---|
0.0.0 | 2023年5月11日 |
#1916 in 算法
每月 23 次下载
485KB
13K SLoC
Animgraph
什么是 Animgraph?
Animgraph 是一个用于动画的基于 Rust 编写的分层状态机的数据流库。它提供了一套包括数据模型、编译器和解释器在内的功能,以评估动画逻辑图并生成动画混合树。该库支持并行工作流程,允许开发人员创建和组合多个图来创建复杂的动画系统。
主要特性
- 内置对条件表达式、算术运算、状态机和转换的支持
- 默认线性转换行为,可以通过连接到图进行自定义
- 通过自定义资源和节点进行扩展
- 每个图在运行时选择资源(例如,动画、骨骼组、骨骼)
- 编译时和运行时选择可用节点
- 支持数据模型和编译后运行定义的序列化
- 轻量级运行时,可选择包含编译器
- 能够组合多个图以实现并行工作流程
- 各种参数类型(布尔值、数字、向量、事件、资源)
- 事件系统用于游戏代码和图之间的通信,以及图与图之间的通信
- 简单的调试触发器,但效果显著
演示:Ragtime Chairs
演示可在 https://github.com/animgraph/ragtime_chairs 上找到,由 Ambient 创建。
原型 UI
Animgraph 的原型 UI 是使用 egui 开发的,并不包含在 Animgraph 本身中。其主要目标是提供一个对所需用户体验的初步了解。
警告:早期开发
此库处于早期开发阶段。
文档
目前缺少文档。请同时查看示例。
示例
cargo run --example compiler_global
:此 编译器全局示例 是一个简单的图,展示了可定制的编译器全局数字cargo run --example third_person
:第三个示例生成了在 ragtime_chairs 中使用的数据模型和编译图。
许可协议
本仓库中的所有代码均受以下任一协议的双授权:
- MIT 许可协议 LICENSE-MIT
- Apache 许可协议,版本 2.0 LICENSE-APACHE
贡献
除非您明确声明,否则根据 Apache-2.0 许可协议定义的,任何有意提交以包含在您的工作中的贡献,都将如上所述双授权,不附加任何额外条款或条件。
依赖
~4.5MB
~125K SLoC