[Question] Character customization: single mesh or many body parts?

Hi,
Regarding character customization (for having many different NPCs in game), If the different body parts are loaded as different meshes, does it affect rendering performance too much if compared to a single-mesh character exported from maya (already customized inside of maya, then combined and exported)?

Thanks in advance,

I answered this in forums, I guess I can answer it again (;.

There will be always higher cost, when assemble you character from individual parts at run time. As every every call it “resource” generate at least one or more draw call. Depnding on engine and how things are batched, before sending to CPU every separate material, texture, mesh etc, will generate one draw call at best.

But, it is not something you should be worried about to be honest. Unless you planing to have hundreds characters on screen at the same, time, it won’t be an issue.

You also must consider that merged characters where with different variations take much more memory and more importantly more memory bandwidth, as you need to call for every unique mesh. which is bigger than single part.

In the end I would choose modular over merged, as in the long run it will allow you to cheaply generate hundreds of character variations even on run time. Assuming you have right code and the character parts match more or less together (;.

You also must consider that merged
characters where with different
variations take much more memory and
more importantly more memory
bandwidth, as you need to call for
every unique mesh. which is bigger
than single part.

Very well pointed out, Lukasz. I didn’t notice this fact. Thanks!

About the draw calls, they were actually the reason for my worries, because I was using Unity before Rocket, and the devs give warning about amount of draw calls per game object, to try and keep it low etc.
But what you pointed out is a very important thing.

In the end I would choose modular over
merged, as in the long run it will
allow you to cheaply generate hundreds
of character variations even on run
time. Assuming you have right code and
the character parts match more or less
together (;.

Thanks for your opinion/suggestion on this. I was actually more inclined on doing things this way. Again, before I was planning to develop my game in Unity, so the draw calls issue was a constraint that made me think about alternate solutions. I studied the characters in Skyrim, how their body parts where designed to fit well with all other variations etc. But after the draw calls issue, I thought about using a workflow I’ve seen in a making of video by EA, I guess, using for a Olympics game, where they made the whole customization system inside of maya, using MEL, then they exported to their engine a single combined mesh.

Draw Calls will always be issue on PC. You should keep them as low as possible. Unless we will get OpenGL4 version of engine any time soon. It won’t solve all problems, but at least textures won’t much of an issue anymore.

The point is that modular character save time (if you plan ahead), and are favourable solution if you plan to have lots of variations. Depending on complexity (amount of modular parts, textures, materials), Modular character can have from 30 to more than 150 draw calls. It’s really case by case base and what your engine allow you to do.

It’s my opinion but with UE4 I would definitely made septate parts, as assembling modular characters in UE4 is extremely easy, and profits outwheights cons. Unless you targeting very low spec where DC become issue very quickly I wouldn’t bother thinking to much about it at this stage.

Also use gpuprofile (best in standalone game, but you can also use it inside PIE) to diagnose bottlenecks on your scene. You might be surprised about what is actually causing your fps tank so heavily.

Thanks for the reply, Lukasz.
I’m targeting higher end PCs, and also probably my game will be completed (hopefully) only next year or beginnings of 2016. Of course, a demo still in 2014.
So when it be ready I guess average and high specs PCs will be even better than now.

Do you have any kind of estimates for recommended maximum number of drawcalls using Rocket, for let’s say, a high-end PC and for an average machine?

You shouldn’t be over 5k draw calls. The issue is that as far as i know in UE4 there is no reliable way to show how many draw calls there is. you can try stat d3d11rhi to find out how DC there is on current frame.

Thanks for the info. I’ll keep note of it.

" If the different body parts are loaded as different meshes, does it affect rendering performance too much"

What do you mean by “loaded as different meshes”

How are you combining the Meshes within Rocket if they are loaded separately?

Are you attaching meshes by socket locations?

Rama

Hi, Rama,

I’m not yet trying to implement it in Rocket. What I’m doing is tech design for my game, so that when times come to implement it, I work faster and with confidence in the solution/method I chose.

How are you combining the Meshes
within Rocket if they are loaded
separately?

Are you attaching meshes by socket
locations?

Rama, I’m curious… How would you do it (a body parts system like this)?

Thanks for replying.

can someone please give me a quick example of character customization screen with few options to change appearance, clothes and head and such? I already found this one- but dont know how to get anything to work, character is just grey shadow and i dont know how to replace anything in it with own content, anyway you all can help me