I think some videos would be useful for explaining the Displayed Text properties in Godot, so I decided to use Godot’s movie maker mode to record a video of this simple script which increases the visible_characters value from 0 to its maximum value every frame:

extends RichTextLabel
 
func _ready() -> void:
	visible_characters = 0
 
func _process(_delta: float) -> void:
	visible_characters += 1

I am using the movie maker mode to record the video, so it doesn’t matter that the implementation in _process is frame-dependent, since the movie maker will lock the frame rate when recording the movie.

The VC_CHARS_BEFORE_SHAPING value causes the text to “jump” to the next line when there isn’t enough space and the first line of the text moves further and further up the screen as more text is displayed:

The VC_CHARS_AFTER_SHAPING value causes the text to always appear in the right place:

As an additional note, all of the Displayed Text properties take BBCode into account, so it will always be displayed properly:

Godot’s movie maker produces .avi files which are kind of big, so I transcoded the videos to h264 .mp4 files using ffmpeg (see Stack Overflow. I wanted them to be the exact same length, so I added -t 10 to take the first ten seconds of each video (see Stack Overflow). I also didn’t want there to be an audio track, since there is no audio in the recording, so I used -map 0 -map -0:a:0 to drop the audio track (see Stack Overflow.

The full command I used is:

ffmpeg -i recording.avi -vcodec libx264 -t 10 -map 0 -map -0:a:0 recording.mp4