I’m trying to figure out the best-looking way to place 2d sprites and speech bubbles over the heads of my 3d characters, so it looks something like this:
I’ve come up with two ways to do it thus far, and both feel a little hacky: in both cases I add a scene component to the NPC’s blueprint, and manually position it above his or her head so that the system knows where to place the sprite. Once it’s there, I can either spawn a sprite in screen space and manually move it to the WorldToScreenSpace coordinates of my scene component. That looks decent, but there is noticeable lag every frame when I move the camera and the sprite needs to teleport to a new location.
Alternatively, I could place the experimental 3d UMG widget over the model’s head directly, and set it to the sprite I want. That would have the advantage of being easier to position and looking better during movement, but I would have to check every tick and rotate it to make sure it faces the camera correctly.
Is there a better way to accomplish this that I’m missing? My first option seems like the best thing I’ve come up with based purely on the fact that it doesn’t rely on an experimental feature, but neither option feels too great.