getAnimations method
Generates per-character melt (scaleY shrink, translate down, blur).
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);
return CharacterAnimation(
scaleY: 1.0 - meltAmount * returnT,
translation: Offset(0, dripHeight * returnT),
blurSigma: blurSigma * returnT,
);
});
}