iPhone skinned character(s) frame rate?

Heyaz,

So I have my main character (skinned mesh) and a floor plane. Tris: 1.8k Verts: 2.1k and I get 30 FPS. Cool.

I drop in 3 enemy characters. Each character is 177 verts and 308 tris. Frame rate drops to about 10-15 fps. Closer to the 10 side. Each character only takes 1 draw call. So im well under the 30 draw call limit. Are other people seeing these results? Any tips on getting more fps? I kind of want to have oh lets say 4 times the amount of enemy characters. So 9. Im trying for a simple shooter.

Thanks.

What happens if you take out your main character?

I’m seeing the same sort of limit with 2-3 animated models at 880 polys per object. Skinned meshes just take time.

/it’s a phone

Thanks :slight_smile: Yup I know it’s a phone. But a powerful one ^_^. Just making sure im not doing anything “wrong”. Ill switch over to unskinned enemies and save myself the couple days of asset creation.

Unskinned characters (that is, characters made of several pieces that are just parented to a skeleton, or animated directly) are probably even worse for performance than skinned characters because of the increased draw calls… unless your character has no limbs.

Exactly, keep the mesh skinning to reduce draw calls. The main thing is to limit your animated meshes to one or two. Maybe you can work it so that only one enemy at a time is animating, and the other animations are disabled until you want them to do something.

Ill keep in mind only animating a couple at at time. Thanks! :slight_smile:

Well when I was going unskinned I was just going to use really simple bad guys(I have no limbs… i have noo liiimbs) and or only animate the transform. My main character, ui, and backgrounds/fx will take around 10 draw calls max. That leaves me 20 for bad guys and that should be enough at the mo.

Thanks! :slight_smile:

So is it the animations more than the skinned mesh itself that slow things down the most?

You shouldn’t be getting performance that bad. You must be doing something really expensive scriptwise.

Can you post your debug profiler stats? That will tell you were all your time is going. The Unity manual explains how to enable it if you don’t know how.

Also reduce the number of bones-per-vert to 1(all rigid) if you can (no reason why you shouldn’t).

Weighted blending of verts with multiple bones looks nice, but eat performance and probably won’t even be noticed on the small screen.

Put it this way, we try to manage our bones per vert in Unreal 3.x for 360/PS3 development, so if we’re doing it for those platforms, you definitely should be doing it on iphone. Sure we have far more characters on screen at a time on a 360, but consider it’s an optimization we take seriously.

EDIT: Oh and 2100 verts is a lot for a mobile character, again factoring 2100 skinned verts…

Ill see If I can get the stats up. Actually im not doing anything in scripts that is crazy at all. I have 3 scripts. 1 for fps. 1 for triggering the animation on the main character on screen tap. Also 1 for animation uvs on a part of the character thats a seperate object/draw call. Its small. Ill strip out the scripts. The most crazy thing I would have done would have been animation of uvs.

SteveB… Are you the radio guy? :slight_smile: Im from originally from Chi myself. ^_^. But left since games and pinball died and I didnt wanna make commercials.

Yeah 2100 is a bit high for a character for mobile but thats with the background. The main character is only 924 verts. The background is static. Ill take a look at how many bones im weighting against. On the bad guys its not that important but I want better deformations on my main character since she is human. Ill reduce it though and see how it looks.

Danke!

Radio guy? I don’t think I’ve been involved in radio in any way…but now I’m not sure! Hehe… :smile:

Are you skinning in Max? If you don’t consciously look to reduce the weight influences or make them rigid, it defaults to 20 bones per vert. Now that’s the allowance, but most verts get 2 - 4 per on avg. Even still, having done nothing else but applying the Skin modifier to the mesh, and you’re definitely at a higher weight count.

If you really must have deformation, restrict it to only critical joints and see if you can get away with 2 bones per…for the rest make them 1 bone per (most EASILY get away with 1 per, and simply reducing even 50% of your verts from 2+ to 1 WILL make a difference…it’s not a none or all scenario)

…but also regard your compromise…framerate vs. deformation quality.

:smile: