[!IMPORTANT] A better version for Godot 4+ here
Effects Preview:
Transition Preview:
Released as is. You may need to figure things out yourself, but I included demos.
addons/teeb.text_effects: Simple bbcode elements to use in RichTextLabels.
addons/teeb.text_transitions: Hacky text animations. A bit complex to implement.
Many of these effects require a monowidth font to work properly.
Make a feature request of any text effects you'd like to see, and I'll try to implement them.
The effects be used like any other bbcode.
Hey... [nervous]muh-maybe could I...[/nervous] have the [sparkle c1=red c2=yellow c3=black][cuss]Hecking[/cuss] Cool Sword[/sparkle] of [sparkle c1=yellow c2=orange]maximum unrelenting power[/sparkle]?
cuss: Replaces letters with symbols, to censor the word, somewhat.
heart: Simple wave animation, where some letters are replaced by heart emoji.
jump: Demonstrates how to do animate at the word level, rather than just individual letters.
l33t: Replaces letters with numbers. Only use if you're a hacker.
nervous: Gives every word a unique jiggle.
number: Automatically colorizes numbers and the first word after the number.
rain: Just a rainy effect. Not useful, but I think it looks nice.
sparkle: Can take up to 3 colors, which it will interpolate between for every letter.
uwu: Replaces all letters R and L with W.
woo: Alternates between upper and lowercase for all the letters, suggesting a condescending tone.
Warning: This is a hacky, wonky implementation of text transition effects. But it works well enough for me.
id: Only necessary if you want to use multiple different RichTextTransitions at once.
time: The animation state. Slide this in editor to preview, or modify it with an Animator or Tween node.
length: The number of characters or words effected by the animation. Shorter = quicker, pop-ier animations. Longer = gradual, flow-ier animation. For transitions like console this should be set to 1.
reverse: Should be set before transitioning out.
all_at_once: If you just want all characters to fade in/out at once, use this.
animation_time: Used by fade_in and fade_out methods.
0.5 = half normal speed.
2.0 = twice normal speed.
fade_in: Calls the AnimationPlayer fade_in animation.
fade_out: Calls the AnimationPlayer fade_out animation.
The following can be used like any other bbcode.
[embers]Long ago, legends foretold...[/embers]
But if you are using multiple RichTextTransitions, best to include a unique id attribute that matches the id field in the node.
[embers id=unique_id]Long ago, legends foretold...[/embers]
bounce: Letters fade and bounce in.
console: Letters are lead in by a blinking "cursor." When fading out they scroll up.
embers: Letters fade in/out from random directions.
prickle: Letters fade in/out in a noisy random way.
redacted: Letters are blocked out before being exposed.
wfc: Wave function collapse inspired effect, where flickering numbers "collapse" to letters.
word: Fade in/out on a word by word basis, rather than letters.