Text animations Extension

I had an idea to make the Text Objects (text, etc…) more interesting and fun to mess around with.

Animated letters :
in some games, you can see each each letter of the text having a movement (going up and down, wiggling, etc…). I thought adding an action where you can make the letters have a small animation to them + adding speed on how they would move.

I haven’t seen anyone bring this up, yet. Would be cool to make something like that :smile:


I don’t know what is the kind of issue that you’re trying to resolve with that feature.
Nevertheless, there is already a way to animate dialogs and texts typewriter style.

There is a video about it here: How To Make A Typewriter Effect In Your Game With GDevelop - YouTube

Hi, I didnt mean the auto typing effect. In games like undertale, when a character talks sometimes, each letter of the text move on its own, like this example
ezgif.com-gif-maker (15)

I hope you see what I meant now ^^

1 Like

Clearly not what you want, haha, but I added the Shake extension to some text.


As a heads up, in Undertale this was done by making each letter it’s own separate object and moving them separately. It’s not one text object in GameMaker Studio.

My understanding is Toby Fox made a text object for every space available on a text box, so he could more easily move them independently. He then had to parse each character in his text string, and used it’s number in the string to decide which text object to display that character in.

Not simple to do, but still definitely possible today in GD5.

I understand now. It was a suggestion after all, if it is possible then it is fine :+1:

As a way to start with this in GD5:

  • You would make, say, 80 text objects. 4 rows of 20. You would name them textchar0 through textchar79. To make it simpler, I’d also give each a variable with their number (0-79) named “char”
  • You would add all of them to an object group named “textObjects”.
  • You would have a string variable (or the dialogue line using the dialogue expressions)
  • You would then be able to have an 80 character string (or dialogue line) and use the event “For each textObjects”, with no conditions, and the action of modify the text of textObjects: Set to StrAt(YourStringVariableNameHere,textObjects.Var(char)). This would set that text object to the exact character in that position.

If you are using the dialogue system, you could even give the current branch/node a Tag of “Shake”, then use the “current branch has a tag” in a subevent to make that character shake whenever in one of those nodes.

I am adding the tag “Extensions” to this topic and changing its title to be more specific.
Let’s see if anyone feels inspired to do this on GDevelop. =)