getAnimations method
Generates per-character falling animation with brightness fade.
Implementation
@override
List<CharacterAnimation> getAnimations(double progress, int charCount) {
if (charCount == 0) return [];
final curved = applyCurve(progress);
final returnT = sin(curved * pi);
return List.generate(charCount, (index) {
final n = noise(index);
final fall = (curved * fallSpeed - n * 0.3).clamp(0.0, 1.0);
final brightness = 1.0 - fall;
return CharacterAnimation(
color: returnT > 0.001
? matrixGreen.withValues(alpha: (0.2 + brightness * 0.8).clamp(0.0, 1.0))
: null,
translation: Offset(0, -fall * 30.0 * returnT),
blurSigma: blurSigma * (1.0 - brightness) * returnT,
opacity: 1.0 + ((0.3 + brightness * 0.7) - 1.0) * returnT,
);
});
}