2 个不稳定版本

0.1.0 2023年5月24日
0.0.0 2023年5月11日

#1916 in 算法

每月 23 次下载

MIT/Apache

485KB
13K SLoC

Animgraph

什么是 Animgraph?

Animgraph 是一个用于动画的基于 Rust 编写的分层状态机的数据流库。它提供了一套包括数据模型、编译器和解释器在内的功能,以评估动画逻辑图并生成动画混合树。该库支持并行工作流程,允许开发人员创建和组合多个图来创建复杂的动画系统。

主要特性

  • 内置对条件表达式、算术运算、状态机和转换的支持
  • 默认线性转换行为,可以通过连接到图进行自定义
  • 通过自定义资源和节点进行扩展
  • 每个图在运行时选择资源(例如,动画、骨骼组、骨骼)
  • 编译时和运行时选择可用节点
  • 支持数据模型和编译后运行定义的序列化
  • 轻量级运行时,可选择包含编译器
  • 能够组合多个图以实现并行工作流程
  • 各种参数类型(布尔值、数字、向量、事件、资源)
  • 事件系统用于游戏代码和图之间的通信,以及图与图之间的通信
  • 简单的调试触发器,但效果显著

演示:Ragtime Chairs

演示可在 https://github.com/animgraph/ragtime_chairs 上找到,由 Ambient 创建。

原型 UI

Animgraph 的原型 UI 是使用 egui 开发的,并不包含在 Animgraph 本身中。其主要目标是提供一个对所需用户体验的初步了解。

UI Prototype

警告:早期开发

此库处于早期开发阶段。

文档

目前缺少文档。请同时查看示例。

示例

  • cargo run --example compiler_global:此 编译器全局示例 是一个简单的图,展示了可定制的编译器全局数字
  • cargo run --example third_person:第三个示例生成了在 ragtime_chairs 中使用的数据模型和编译图。

许可协议

本仓库中的所有代码均受以下任一协议的双授权:

贡献

除非您明确声明,否则根据 Apache-2.0 许可协议定义的,任何有意提交以包含在您的工作中的贡献,都将如上所述双授权,不附加任何额外条款或条件。

依赖

~4.5MB
~125K SLoC