PSA: The default Roblox character head has A LOT of tris, and you may want remake it with less detail in Blender

So for optimization reasons with building assets, I decided to check out the roblox r6 character model in blender to see if there was anything I could make better. I look in the corner and see about 1.1k triangles, which was really strange. I suspected it was the head, so imagine my suprise when I look at the amount of triangles the head had and see this:

Almost 80% of the triangles in the R6 rig is taken up by the head

Yikes.

I think one of the biggest reasons for this is probably because of how high-poly the head is. Looking at the top view of the head, it has 36 “edges.” Basically, it’s the equivalent of this cylinder + smooth shading.

image

While it does make for a nice round looking model, personally I don’t think it’s really worth the performance, which I will get to in a second when comparing it to the new model I made:

I used 16 edges instead for the cylinder + smooth shading. You can only really notice a big difference when you’re staring at the top, but if you’re looking at it from a mostly horizontal angle (which is probably how you’ll see it most of the time in-game) there isn’t really much of a difference besides sun reflection.

The game I’m working on also has characters that usually wear hats or some kind of headgear anyway, so the fact that the head looks kinda low poly from the top doesn’t really matter, and most people probably won’t freak out over your heads not being super round.

Left = Roblox head, Right = My head
image

Now, on to performance. The biggest thing is the triangle reduction, and the head is now at a more comfortable 320 tris rather than 846. That’s almost a 62% reduction in triangle count. And while the difference may not be big for say, a single character, it may make a noticeable boost in performance. The following example is actually something @Bethezer pointed out to me when I first told him about this whole thing, so credit to him because otherwise I might have not thought about this:

Lets say you had 30 players in a game.

25380 triangles would be taken up just by 30 Roblox heads.
With the one I created, it would only take up 9600 triangles

That’s over a 15k triangle difference just by 30 players

So yeah, definitely take this into consideration if your game uses the default Roblox character rig.

Disregard the above! One big thing I forgot is mesh instancing:

Basically, it wouldn’t make such a major performance hit as I mistakenly represented. Thanks to @Aotrou for clearing this up!

And for those who are unable to use Blender, here’s the head I made. 100% open source, you don’t have to credit me or ask for permission to use it in your game at all:

NewHead.rbxm (7.3 KB)

10 Likes

Honestly I don’t use blender i find it very hard to use but I prefer you head more.

2 Likes

My bad! I added the head mesh in the thread so you can use it.

2 Likes

Oh wow, thanks for pointing this out I’ll be sure to start doing this in the future.

1 Like

This is actually not how it works, or rather it’s not an accurate representation.

These heads are instanced, so it’s only loading in one head, and replicating it across other instances of that mesh.

So while the head mesh is fairly high poly count, it’s not as bad as what you think.

5 Likes

That’s a good point! I never thought about that. I’ll add it into the post.

1 Like