getAnimations method

  1. @override
List<CharacterAnimation> getAnimations(
  1. double progress,
  2. int charCount
)
override

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,
    );
  });
}