bevyengine / bevy

A refreshingly simple data-driven game engine built in Rust
https://bevyengine.org
Apache License 2.0
35.12k stars 3.45k forks source link

bevy_animation `0.14` is overly restrictive. #14230

Closed mintlu8 closed 2 days ago

mintlu8 commented 2 months ago

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

What solution would you like?

Add a lower level AnimationWeights component like HashMap<AnimationNodeIndex, f32(weight)> so users can opt out of AnimationPlayer and weight normalization by using custom logic.

What alternative(s) have you considered?

Address these issues directly in AnimationPlayer and AnimationTransitions.

alice-i-cecile commented 2 months ago

AnimationPlayer always normalizes all weights to sum = 1

This should be fixed directly, or at least controlled with an option. Other users have complained about this.

AnimationTransitions does not start playing child nodes recursively, making it counterintuitive with AnimationGraph's design.

I believe this is also due for a direct fix, but I'm less confident here.

mintlu8 commented 2 months ago

Since the changes are likely breaking, I suggest releasing the 0.15 version ASAP as a temporary separate crate to unblock people's projects since bevy_animations is relatively independent. I personally would like to not wait another 3 months for animation changes.

alice-i-cecile commented 2 days ago

Per @pcwalton, this is best tackled via adding additive blending, so I'm closing as a duplicate of #14395, which is clearer and more actionable.