`animate_targets` should allow total blend weights greater than 1
- Dominant language
- Rust
- Stars
- 48.2k
- Forks
- 4.8k
- Avg merge
- 3d 16h
- Merged PRs (30d)
- 171
Description
## What problem does this solve or what need does it fill?
A common technique in video game animation is additive animation clips. These clips contain relative transformations compared to a base pose or animation, such that summing them (via the relevant blending) results in a different animation.
The current implementation of `animate_targets` normalises all weights so that they add to 1. This prevents this kind of playback.
## What solution would you like?
Blend weights should not be normalised. Alternatively, normalisation could be enabled with a marker component (however, given that at the moment weights need to be driven by user code, it'll usually be more efficient for users to do this as they will have the context).
## What alternative(s) have you considered?
An additional mode specifically for additive animations could be written.
This would avoid the potential foot-gun of setting weights and expecting a 'pirate shares' style weighting, however would require another code-path that works identically except for the normalisation, and people might still be surprised that it _does_ clamp.
Contributor guide
Research direction
Locate the `animate_targets` implementation and its existing animation or blending tests; start by tracing where blend weights are normalized. Verify the behavior with weights whose total exceeds 1, and consider the issue's additive-animation example the expected outcome: weights are applied without automatic normalization.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- game-dev
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100