#animation #lottie #rive #graphics #graphics-engine #text-image #vector-graphic

bin+lib inlottie

lib/tool in Rust for loading/saving/parsing/rendering lottie animation files

5 个版本

0.1.9 2024年6月18日
0.1.8 2024年6月14日
0.1.7 2024年6月11日
0.1.6 2024年6月5日
0.1.5 2024年5月29日

#37 in 数据格式

49 monthly downloads

MIT/Apache

230KB
3K SLoC

lib/tool in Rust for Lottie (Bodymovin) Animation

The original Lottie json shema file was slightly modified so that the great typify tool could run and convert it into Rust codebase. After extensive manual simplification and optimization efforts, finally, the parser seems to be very compatible to accept most of the realword sample json files of Lottie Animation without too much compromise.

A simple and straightforward viewer/renderer for Lottie animation was implemented intuitively based on femtovg, yet with many features (Text/Image/Audio/LayerEffect/etc.) to be developed/extended.

Besides, a player/renderer adapted to rive-app for Rive animation based on femtovg is also included, though is currently not capable to support clip path and blend mode.

待办:参考 intvg,开发/实现一个基于 gpac/evgblend2dHTML5/Web Canvas APIrenderer,以支持大部分的 Lottie 和 Rive 动画功能;然后,基于 bevy engineDioxus 开发一个 viewer。然后,增强解析/处理 dotLottie 的能力。

用法

    cargo r -- <path-to-lottie/svg>

    cargo r -F rive  -- <path-to-rive/lottie/svg>

    cargo r -F vello --bin vello -- <path-to-svg>

    cargo r -F b2d --bin blend2d -- <path-to-svg>

(带拖放支持)

注意:为了支持 rive,首先在 Cargo.toml 中取消注释“rive-rs = ”这一行。因为它还没有在 crates.io 上发布。

参考资料

依赖项

~12–54MB
~876K SLoC