Creating 3D Character Models (Low-poly)
A low-poly character is a compromise expressed in polygons. Every triangle must work: for silhouette, for deformation, for texture readability. An extra edge loop in an unnecessary place is not "reserve," it's waste, multiplied by the number of simultaneous instances in the scene.
Concrete example: mobile RPG with tactical camera, 20 units simultaneously on screen. Initial hero mesh—8,200 triangles. After profiling in Unity Profiler it turns out that characters alone give 164k tris per frame, before environment. Moving each unit down to 3,500–4,500 tri with UV layout revision lowered draw calls and delivered stable 60fps on mid-range Android. This isn't magic—it's discipline in polycount management.
Where low-poly pipeline breaks
The main mistake—creating low-poly "from high-poly through ZRemesher." Automatic retopologizers don't understand where an edge loop for deformation is needed and where it's not. Result: extra polygons in static zones and insufficient geometry where the character bends. A shoulder joint with three loops doesn't deform—it breaks.
The second stone—UV islands and texel density. If UV unwrap is rushed, the face gets the same texel density as the boot. On a 512×512 texture (typical for mobile) a character face turns into mush. Different body parts need different UV space distribution by visual priority.
The third point—skinning-friendliness of topology. Edge loops should run along muscle groups, not across joints. A programmer-rigger or technical animator sees the model and immediately knows if skinning will be predictable. Bad topology = hours of fixes at the animation stage.
How low-poly character work is built
The starting point is technical requirements: target platform, polycount budget, texture atlas size, engine. Blender, Maya, or 3ds Max—the tool is chosen by pipeline, not artist preference.
Blockout. Primitives first—box modeling from large to small. Proportions and silhouette matter more than details. At this stage polycount is already controlled: count triangles, not quads.
Topology pass. Manual edge loop placement for the rig. Key zones: shoulder joint (minimum 2 loops), elbow (2–3 loops depending on movement range), knee, neck, wrist. Face—separate discussion for hero character, there edge flow for facial animation is crucial.
UV unwrap. Done in Blender or Rizom UV—depends on model complexity. For mobile character with one 2048×2048 atlas it's critical: face gets maximum UV space, hands—proportional, legs and back—minimum. Seams are hidden in visually non-priority zones.
Bake preparation. If the model goes with high-poly, set up cage, check for overlapping UV, export to FBX with proper smoothing groups. Baking is done in Marmoset Toolbag or through Substance Painter with match by mesh name setting.
Final format—FBX or glTF 2.0 depending on engine requirements. Unity accepts both, Unreal Engine works better with FBX, web engines (Three.js, Babylon.js) prefer glTF.
Timeline guidelines
| Complexity | Polycount | Timeline |
|---|---|---|
| Simple NPC (stylized) | up to 2,000 tri | 2–4 days |
| Standard game character | 3,000–6,000 tri | 4–8 days |
| Hero character (full equipment) | 6,000–12,000 tri | 8–16 days |
| Technically complex (mech, armor) | 10,000–20,000 tri | 12–20 days |
These are timelines for geometry without texturing. UV unwrap is included in base cost. Cost is calculated individually after requirement analysis.
What to check before starting
- Polycount budget is agreed with account for simultaneous instances in the scene
- Concept exists with minimum two angles (front + side), better—four
- Texture atlas size and material slot count determined
- Specified if character will be animated and how extreme the deformations are
- Clear if high-poly source for baking is needed or texturing will be hand-painted





