Curved health bar?

How would I go about making a visually curved health bar like in Sword Art Online?

Like this but with gui.

I’ve seen it done but don’t know if theres a open sourced module or something like that out there or if any of you know, thanks.


A good place to start would be with Viewport Frames, which means the health bar is now a 3D object which should make it easier to work with. The actual math and positioning is still something you will have to figure out on your own

The part I am asking about is the math and how it’s actually done, a 3d object isn’t really the way to go with this and can be done with gui objects themselves as I’ve seen before.

I agree with what @Prototrode suggested. Viewport frames might be the way to go.

You will need two viewport frames, one contains the full green health bar, and the other containing an empty health bar. Use the size of the empty health bar to make it appear as if it is “taking damage”. Here is a good tutorial that demonstrates exactly what I mean. It is a similar process as the custom 2D health bars.

Both the empty and full health bars need to share the same position within the viewport.

EDIT: I found a tutorial on youtube that shows how to make a 3D health bar in unreal engine*.

Alright thanks, I’ll check it out soon.

1 Like

Are you saying to get a curved mesh and then push the frame in a billboard gui on it and then use the viewport frame to put it in front of the player? I’m confused because that video didn’t really explain it to me. I tried it on a curved mesh and the gui objects don’t work that way.

Without support over dynamically editing meshes and textures, there don’t seem to be able easy method of doing this. Some hacks might involve using meshes with bones that you manipulate, or building a pseudo curved surface by using smaller mesh sections.

Yeah I figured that but I’ve seen it done and I even saw a module for segmented meshes for this a while ago but I can’t find it.


make the model, billboard gui in it, then have it change its bar with uigradients