These Blueprints use a Sphere Component to calculate a radius from the Actor. The commentary expands when the player enters that radius. The setup for the actual box portion is not terribly dissimilar to how one would draw a similar automated box on a web page, in which an artist creates the pieces of the box frame individually and then they are all stretched to surround the target area. For instance, to build the box, we start with two Static Meshes: a straight segment piece and a curved corner piece.
Segment Piece (Yes, it is just a square, really.)
These pieces are then copied, stretched, and rotated to form a frame of the appropriate size. The script needs to simply figure out where the corners will be, and the scaling is done to coincide.
It is important to note that automatic word wrap is not supported in this Blueprint. Instead, there is a string array variable named Lines that contains each line of text. The user needs to arrange the words on each line manually.
If you open the graphs for this Blueprint, you may notice that it seems to be fairly math-heavy. At closer inspection, it is not really too complex, just keep in mind that a lot of math is needed to figure out exactly how to properly construct the text box from the provided Static Meshes.