The usual Blueprint typewriter is a timer that adds one character to a string and calls Set Text. It works until you add dialogue features. The problems and fixes:
- Words jump lines. Line breaks are computed on the partial text, so a word moves to the next line when it reaches the edge. Lay out the full text from the start and hide the letters not yet revealed.
- Rich text breaks. Cutting the string in the middle of
<b>tags leaves broken markup. Reveal by letter positions and keep styles applied. - Pauses. Add a delay after commas and sentence ends, plus a manual
<pause=0.5>marker in the text. - Wait for input. Stop at a marker such as
<waitinput>until the player presses Next. A skip button should reveal the rest at once.
I built this into UMG Text Effects (I make it). Add a UTE Text Block, set Details > Text Effects > Typewriter > Enabled, and write:
Hello <speed=2>traveler</>.<pause=0.5> The dragon is awake.<waitinput>
Call Continue Typewriter on Next and Skip Typewriter on skip. Styles stay applied while typing and the layout is fixed from the first letter. It runs in Blueprint-only projects. (A stock Rich Text Block can use it too, through a Blueprint subclass of the decorator, with curly-brace tags like {pause=0.5}.) UE 5.4 to 5.8.
Fab: UMG Text Effects - Text Animation & Typewriter for Rich Text and Dialogue | Fab
Video: https://youtu.be/cOfknPQthME