getAnimations method
Generates per-character upward drift, blur, and opacity fade.
Implementation
@override
List<CharacterAnimation> getAnimations(double progress, int charCount) {
if (charCount == 0) return [];
return List.generate(charCount, (index) {
final staggered = staggeredProgress(progress, index, charCount);
final curved = applyCurve(staggered);
final returnT = sin(curved * pi);
final n = noise(index);
final dx = (n - 0.5) * 30.0 * returnT;
final dy = -height * returnT;
final opacity = 1.0 - returnT;
final blur = blurSigma * returnT;
return CharacterAnimation(
translation: Offset(dx, dy),
opacity: opacity.clamp(0.0, 1.0),
blurSigma: blur,
);
});
}