getAnimations method
Generates per-character reveals triggered by noise thresholds.
Implementation
@override
List<CharacterAnimation> getAnimations(double progress, int charCount) {
if (charCount == 0) return [];
final curved = applyCurve(progress);
return List.generate(charCount, (index) {
final revealAt = noise(index, seed);
final localProgress = ((curved - revealAt) / (1.0 - revealAt)).clamp(0.0, 1.0);
final eased = localProgress * (2.0 - localProgress);
final fadeOpacity = opacityFrom + (1.0 - opacityFrom) * eased;
return CharacterAnimation(
opacity: fadeOpacity.clamp(0.0, 1.0),
scale: opacityFrom + (1.0 - opacityFrom) * eased,
);
});
}