Skinned Mesh Renderer vs Mesh Renderer

I have a project in Unity Pro iOS Pro.
I plan to have a large number of characters in a scene (at least 100).
Each character is around 150 poly.
The character is rigged and uses a SkinnedMeshRenderer.

For performance reasons, I would like to use non-rigged characters and use a puppet setup instead.

Will I notice anything considerable?

It depends.

SkinnedMeshRenderer is more heavy on CPU (skinning). Doing separate MeshRenderers for each part is more heavy on GPU (drawcall count).

It’s a bit hard to say. At least you have to say what is your target hardware. But simple test would tell you more than any theoretical assumptions. Maybe you’re game will be bound by fill-rate instead.

Considering your target of 100+ meshes on screen (wich is going to be a hard task considering iOS hardware), I would go with the non-rigged characters, using a Mesh Renderer instead of the Skinned Mesh Renderer, as you would be then able to batch them and save some Draw Calls and FillRate.

Still a heavy task to be accomplished.

I have an asset in the Asset Store “Mesh Baker LOD” which can combine skinned meshes at and MeshRenderer meshes at the same time into a single combined skinned mesh. You can specify how many meshes are allowed at each level of detail. For example imagine a mob of 200 characters with three levels of detail:

LOD0 = 4000 vert skinned mesh,
LOD1 = 800 vert skinned mesh,
LOD2 = 100 vert MeshRender mesh

You can specify a maximium number of meshes at each level of detail:

5 at LOD0,
10 at LOD1,
unlimited at LOD2,

The LOD manager keeps the mob adjusted so that the characters closest to the camera are always the highest poly version. The selected meshes are baked into combined meshes so would only have a few drawcalls. See a video of it here (skinned mesh demo is 6:30 into video):