bevyengine / bevyengine/bevy

Improve access to animation curves and clips

Open
#15,664 1 comment 2 reactions 0 assignees View on GitHub
A-Animation C-Feature C-Usability D-Complex
Dominant language
Rust
Stars
48.2k
Forks
4.8k
Avg merge
4d 8m
Merged PRs (30d)
147

Description

## What problem does this solve or what need does it fill?

Right now (especially after #15434) it's hard to do anything with curve data after it's been added to an `AnimationClip`. For the sake of post-processing and general reuse, it would be good if there was a way of obtaining a `Curve` from an `AnimationCurve`. This would allow, for example, the curve to be inspected, sampled, etc. without needing to actually animate something.

## What solution would you like?

Use the type registry to register pointers that allow conversion `dyn AnimationCurve -> dyn Curve` when the type of the property being animated is known extrinsically. Ideally, these could be packaged together with some utilities in order to allow something like a `Box< dyn Curve>` to be extracted from an `AnimationClip` together with a target ID. (Note that `Curve` is actually not quite the right idea, since not every property of the `Transform` may actually be animated.)

## What alternative(s) have you considered?

Do something hacky and hijack the `AnimationGraph` machinery in order to get it to read out values instead of animating things. Alternatively, attempt to downcast the `AnimationCurve` types directly into the types used by the glTF loader.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.