Creating 3D Character Models for Mobile Games
A 3D character for mobile games balances visual quality against device limitations. A model looking stunning in Blender may drop FPS to 20 on Samsung Galaxy A32 if polygon budget and textures aren't optimized for mobile.
Polygon Budget
Target metrics for mobile characters:
| Game Type | Main Character | NPC / Enemies | Background |
|---|---|---|---|
| Hyper-casual 3D | 500–1500 tri | 200–800 tri | 100–400 tri |
| Casual 3D | 1500–4000 tri | 800–2000 tri | 300–1000 tri |
| Midcore (like Alto's Odyssey 3D) | 3000–8000 tri | 1000–4000 tri | 500–2000 tri |
These are triangles, not polygons. Unity and Godot show tris. Blender defaults to faces—multiply by ~2 for triangulated meshes.
LOD (Level of Detail) is mandatory for characters visible at distance. LOD0 (full), LOD1 (50–60% polygon count), LOD2 (25%). Unity LODGroup component switches automatically by distance. Draw call savings are significant with 10+ characters in scene.
Rigging and Skinning
Humanoid rig. Unity Animator with Avatar—for humanoid-format characters. Allows applying motion capture animations and Mecanim transitions. Bone count: 20–40 for mobile character. More means higher CPU load on skinning.
Generic rig. For creatures, vehicles, non-standard shapes. Fewer restrictions on bone hierarchy. BlendTree in Animator for smooth transitions between animation states.
Skinning quality. In Unity Quality Settings → Skin Weights—for mobile use 2 Bones instead of 4 Bones. Deformation quality difference is minimal, CPU savings noticeable with 20+ characters on screen.
Blend shapes (morph targets)—for facial expressions. Each blend shape = additional vertex pass. On mobile limit to 5–10 key expressions for main character.
Textures and Materials
Texel density—texture pixel density per surface unit—should be consistent between all scene characters. Character with 4K texture next to NPC on 256px looks inconsistent.
Standard PBR character textures: Albedo (Base Color), Metallic/Roughness (or Specular), Normal Map, Emission (if needed). On mobile: Normal Map often removed from distant NPCs, kept only for main hero.
Texture atlasing. Multiple characters on one texture atlas = one Material = one Draw Call for all. Especially important for battle scenes with similar enemies. In Unity—GPU Instancing + shared Material—renders 100 identical enemies in one draw call.
Compression: ASTC 6x6 for iOS, ETC2 for Android. Albedo—ASTC 6x6 (lossy but acceptable for opaque textures). Normal Map—ASTC 4x4 (requires greater precision for correct lighting).
From practice: midcore RPG, Unity URP. Scene with 15 enemies gave 200+ draw calls, FPS 25 on iPhone 11. After implementing GPU Instancing + shared Material + LOD1 for distant enemies—draw calls 45, stable 60 FPS. Changes only in pipeline settings, 3D models untouched.
URP vs Built-in
Unity Universal Render Pipeline (URP) is standard for new mobile projects. Better performance, Shader Graph for custom shaders without HLSL, built-in renderer feature for outline effects (popular in mobile RPG). URP Lit shader is faster than Built-in Standard shader on mobile.
Stylized shaders (cel shading, toon) are popular in mobile games, work well with low-polygon models. Can be made via Shader Graph without programming: Ramp Texture for light + Fresnel for rim light = cartoon look.
Creation Pipeline
Blocking (basic shapes) → detailing → retopology (clean topology for rigging) → UV unwrap → bake normals from high-poly version → texturing (Substance Painter) → rigging + skinning → engine test with target shader → optimization based on profiling.
Retopology is key. Automatic remesh (Blender Remesh) produces poor topology for deformable areas (joints, face). Manual retopo following edge flow for animated characters is mandatory.
What's Included
- 3D modeling respecting polygon budget
- UV unwrap with optimal texture space usage
- Detail baking high-poly → low-poly
- Texturing (Albedo, Normal, Metallic/Roughness)
- Rigging and skinning for humanoid or generic rig
- LOD0 + LOD1 + LOD2
- Export in FBX/glTF with Unity / Godot settings
- Engine test with animation and shader check
Timeline
One casual-level character (1500–4000 tri, basic textures, humanoid rig)—2–4 weeks. Midcore game hero with complete texture map, blend shapes, and LOD—4–8 weeks. Serial production of similar characters (NPC, enemies)—faster through base mesh reuse. Cost calculated individually.







