Multi-Mesh Characters

I have a repository of over 30 characters that we’ve used for previous products. By characters, I mean full character meshes. If you count textures, we’ve got a lot more.

Our products are aimed at low end machines, so the characters are fairly simple and we don’t have plans to increase their complexity in the near future. They probably average around 2000 - 2500 tris each.

We previously used them in UE2. The characters are created in 4 segments, so that we could interchange body parts amongst them. Each segment has it’s own texture. The art department likes this because they could use larger textures on particular character parts if there is additional detail.

I’ve proposed that we combine the mesh for each character after they’ve been assembled so that we could use it more efficiently in Unity. Though we’d also have to combine the 4 textures into 1 texture. That means moving UV maps, which is not something anyone is a fan of. I’ve brought up the issue of multiple draw calls for each character when we use Unity. But since I’m not a programmer, I’m not really all that well versed in the nitty gritty of it. So I don’t know how important it is in our case.

We have fairly small levels. Simple buildings. Think Unreal Tournament 2004. That’s about as complex as we get.

My question is, in a scenerio like ours, where we’re not trying to push tech to “next gen” levels, will these segmented characters pose a big problem?

I just tried a mini test with 6 characters in a really simple scene we have.

Graphics: 14.6ms/frame (68.6 fps)
Draw Calls: 399 Tris: 245.9k Verts: 594.4k
Used Textures: 60 - 57.3 MB
Render Textures: 4 - 22.7 MB switches: 6
Screen: 813x501 -4.7MB
VRAM usage: 27.3MV to 68.6MB (of 1536.0 MB)
VBO Total: 460 - 6.6 MB
VB Uploads: 0 - 0 bytes
Visible Skinned Meshes: 22 Animations: 15
Network: (no players connected)

Keep in mind, the textures are not optimized in this build. So yes, they’re huge.

I don’t have many scripts running. But in this app, there won’t be many anyways.

I’m running this on an Intel Quad Core with 8 GB RAM and a GeForce 230 graphics card on “Fantastic” settings with everything turned on.

My concern is that if there were players connected on the network, would this make a huge difference? Like maybe 8 other players? 10? 12?

Do these extra draw calls from the segmented meshes really matter all that much? Or is it only a concern when dealing with 25 enemies on screen with explosions and bullets flying everywhere while everyone is being thrown around like a rag doll?

The segmented characters will probably work OK, but of course the performance will be worse the more meshes you have. The manual has a good page on optimising graphics performance that might help clarify some of the issues.

I remember reading that you should keep your mesh count as low as possible and with it your material count, but I always thought the vertises are the main culprit for slow downs…

I wanted to prototype a couple of ideas and ended up using VERY VERY VERY low poly models (500 - 2000) for the prototyping but each model consists of 12 to 20 separate meshes… In terms of a human, each limb was a separate model… Waist, chest and belt were 3 models… Neck, head, helmet… Oh so many 25 poly objects…

And I did this on an iPhone…

My scene consisted of 4 polys for the groud and the background with 2 photos pasted onto the two planes and then i had 4 characters and some planes for bullets… I had something like 180 draw counts and a FPS of 2 to 4. I then merged the bits and changed the hierarchial bones setup to a smooth bind setup and went down to like 70 drawcounts and 14-18 pfs.

I then dropped my 3 characters into the MeshMerger script and my drawcounts went down to 10 and I finally had some decent FPS.

I bought these low poly models from TheGameCreators.com about 6 years ago as “professionally created” and found them to be so incredibly poorly built that I have not had a use for them in 6 years. Then I finally decided to use them for prototyping and find that the segmented models make them useless for that purpose also… Completely useless models all round, then.

Man I like to ramble.
Let me get to the point:
If models that are so low quality that they served no purpose in 6 years are still too taxing on the system because they have too many loose parts, then yes, I think singles meshes whenever possible is a very good idea… :stuck_out_tongue:

While only stating your last paragraph would have made your point, I think I greatly prefer the rambling. It provided the context to frame your advice.

So keep rambling! You’ll help a lot of people that way!