Animating text (easily and with config dialog)

I wanted to automate some text animations so that I could reuse them easily (and afterwards tweak them if I needed it of course).
But till this feature didn’t got merged it didn’t make sense to dive into it… It got merged and I got some time to play with it so the following it is the first plugin that takes advantage of the parameters dialog.

It’s probably not finished and some animations doesn’t work fine (more on that later), the main features are:

  • The plugin lets you animate text as a whole or as per character
  • You can choose animation type (probably more to come as I designed the code to “easily” extend to new effects)
  • You can set parameters such as length, text color
  • Finally, you can choose if the layers are added above or below selected layer

Example of “whole text” animations:

Example of “per character” animations:

Known bugs

While it should be the following:

I hope you like it, I hope it inspires you to create other new plugins using the new dialog feature or to improve this one or try to fix the “character origin issue”… :smiley:

You can download it here (6,5 KB)



@pablogil Setting orientation parameter (0.5, 1.0) of each character can solve the problem.

1 Like

I didn’t know what this parameter was used for, now I get it. It solves the Y shifting but not the X one… maybe I can do something with the kerning parameter but still don’t know how and if it would help

updated plugin with @Kai suggestion :heart_eyes: (6,5 KB)


Great work!:hugs:
Could you try adding like an adjustable time offset that can be applied per character or word?

Can bounding box of each character be used to arrange them in order?

I’m planning take advantage of the time position to use it as a start point instead of making them start always at 0s.
The animation of each character is distributed equally along the global animation time you set in the dialog (and taking in count your fps so that waypoints are nicely and correctly placed).

Is that what you mean or do you need anything else? If yes, please elaborate your request so that I can understand it.

Is it possible to analyze a text or character bounding box? If yes I could then know the exact X dimension of each letter and then separate them as needed…

Maybe @rodolforg @ice0 @mohamed.Adhamc know a way to do it…

With current plugin framework, no. Unless you use something like pangocffi · PyPI or freetype-py · PyPI

@pablogil , I appreciate the work for this plugin. I think this is great for implementing text animation ability in Synfig. I also had idea for making such plugin, but knew that I would end up in similar situation where you need to calculate each characters dimensions :sweat_smile:. Great work, keep it going.

But if we had native implementation for Text Animations similar to After Effects’s ‘range selector’ feature, that would be great.


Uff, it would be too hard for my coding knowledge… if anyone wants to help me on that I would appreciate it.

On the other hand, I have some ideas to mitigate it with some tricks but it would need more work as the final animation wouldn’t be as simple as it is now.

Another option that I will follow as well is to focus on phrase/words animation instead of “per character” ones. Usually animations are more about the whole effect so there are tons of animations that can be automated skipping this alignment problem.

@veermetri05 thanks for your words, if you feel like helping on that issue let me know. I’ll focus on what I said previously, I think it can become a nice and useful plugin without the character alignment.