Project Description
CHARACTER BASE ASSET DESIGN DOCUMENT
Modular Female and Male Base Characters for Real-Time Use (Unity and Unreal Engine Compatible)
Version: 1.0
Status: Draft
Audience: 3D Artists, Riggers, Tech Artists, Engine Integrators
Deliverable: Two production-ready base characters (1 female, 1 male)
1. SUMMARY
Specifies requirements for a pair of production-ready 3D base characters (one female, one male) for use in real-time engines (Unity, Unreal) and web platforms. The characters are a foundation layer for downstream customization: morph-driven body and face shaping, shader-driven skin tone, modular clothing, and modular hair.
Deliverables are intentionally bald, neutral-posed, and free of baked-in identity (no baked skin tone, no hair geometry, no fixed wardrobe), so that all variation downstream is driven by sliders, shaders, and attachments rather than by static art.
2. DELIVERABLES AND FILE FORMATS
2.1 Required Files (per character)
- .glb: Primary delivery format. glTF binary, optimized for real-time and web. Must contain rig, morph targets, and PBR materials.
- .fbx: Secondary / interchange format. Source-of-truth for engine import where glTF is not preferred.
- .blend: Editable Blender source file. Required for handoff and future revisions.
2.2 Naming Conventions
All blendshapes, bones, and materials must use descriptive lowercase snake_case names. No indexed numeric names (e.g. Shape001) accepted. Names in this document are contractual.
3. BASE MESH REQUIREMENTS
- Clean quad-based topology suitable for animation and deformation.
- Fully rigged humanoid skeleton, game-ready out of the box.
- Neutral pose: A-pose or T-pose (consistent between female and male).
- Bald head. No hair geometry on the base mesh.
- Real-world scale (1 unit = 1 meter).
3.1 Mesh Separation
Delivered as separate, named meshes (not merged) so each part can be toggled or swapped:
- Body, Eyes, Teeth, Tongue
- Underwear: Female (bra and panties), Male (briefs / boxers)
4. RIG REQUIREMENTS
- Standard humanoid rig. Unity Mecanim and Unreal Mannequin compatibility preferred.
- Proper weight painting throughout. No deformation tearing or volume collapse at any joint.
- IK-friendly joint placement and orientation.
- Clean joint deformation verified at: shoulders, elbows, knees, hips.
Acceptance check: Rig must pass a full range-of-motion animation (raise arms overhead, deep squat, full torso rotation) without visible mesh tearing, candy-wrapper twist, or shoulder collapse.
5. BLENDSHAPE / MORPH TARGET SYSTEM
Naming requirement: All blendshapes MUST use the strings defined here. Indexed names (Shape001, Key.42) will not be accepted.
Format: morph_name (Range): description.
5.1 Body Proportion Morphs
Bidirectional sliders (negative-to-positive single slider OR two opposing morphs):
- height_short to height_tall (Bidirectional): Overall body height.
- torso_short to torso_long (Bidirectional): Torso length only.
- leg_short to leg_long (Bidirectional): Leg length.
- arm_short to arm_long (Bidirectional): Arm length.
- shoulder_narrow to shoulder_wide (Bidirectional): Shoulder breadth.
- hip_narrow to hip_wide (Bidirectional): Hip breadth.
- head_small to head_large (Bidirectional): Head scale relative to body.
5.2 Body Type System
A single unified slider drives overall body fat. Not localized; must coherently affect the whole figure.
- body_fat (0 to 1, very thin to obese): Torso volume, face fullness, limbs, belly, neck.
5.3 Muscle System
- muscle_tone (0 to 1): None to highly defined.
- muscle_mass (0 to 1): Slim to bulky.
- abs_definition (0 to 1): Flat to 6-pack.
- arm_definition (0 to 1): Biceps / triceps definition.
- chest_definition (0 to 1): Male pectoral definition.
5.4 Female-Specific Morphs
- breast_size (0 to 1): Volume.
- breast_shape (Bidirectional): Round / teardrop variation.
- breast_perkiness (0 to 1): Lift.
- breast_spacing (Bidirectional): Close-set to wide-set.
- butt_size (0 to 1): Volume.
- butt_shape (Bidirectional): Shape variation.
- hip_curve (0 to 1): Hip-to-waist ratio emphasis.
- waist_size (Bidirectional): Waist circumference.
- thigh_thickness (Bidirectional): Thigh volume.
5.5 Male-Specific Morphs
- chest_width (Bidirectional): Chest breadth.
- shoulder_mass (0 to 1): Deltoid / trap mass.
- waist_size (Bidirectional): Waist circumference.
- hip_width (Bidirectional): Hip breadth.
- overall_upper_body_mass (0 to 1): Combined upper-body bulk.
5.6 Face Morphs
Skull:
- face_width (Bidirectional): Overall face breadth.
- face_height (Bidirectional): Overall face length.
- jaw_width (Bidirectional): Jaw breadth.
- jaw_sharpness (0 to 1): Soft to angular jawline.
- chin_length (Bidirectional): Chin protrusion / length.
- cheek_fullness (Bidirectional): Hollow to full cheeks.
- cheekbone_height (Bidirectional): Cheekbone vertical position.
- forehead_height (Bidirectional): Forehead size.
Eyes:
- eye_size (Bidirectional): Eye opening size.
- eye_spacing (Bidirectional): Distance between eyes.
- eye_tilt (Bidirectional): Outer-corner tilt up/down.
- eyelid_shape (Bidirectional): Lid shape variation.
Nose:
- nose_length (Bidirectional): Nose length.
- nose_width (Bidirectional): Nose breadth.
- nose_bridge_height (Bidirectional): Bridge profile.
- nostril_width (Bidirectional): Nostril flare.
Mouth:
- mouth_width (Bidirectional): Mouth breadth.
- lip_fullness (Bidirectional): Lip volume.
- lip_shape (Bidirectional): Lip shape variation.
- mouth_corner_up_down (Bidirectional): Resting mouth corner position.
5.7 Facial Animation Blendshapes (ARKit 52)
Must support the full ARKit 52 standard or a documented equivalent that maps cleanly to it. The minimum set below is non-negotiable; the rest of ARKit 52 is expected for compliance.
Eyes: blink_L / blink_R, eye_wide, squint_L / squint_R
Brows: brow_up_L / brow_up_R, brow_down_L / brow_down_R
Mouth: jaw_open, mouth_smile_L / mouth_smile_R, mouth_frown_L / mouth_frown_R, mouth_funnel, mouth_pucker, mouth_press, mouth_stretch, sneer_L / sneer_R, cheek_puff, tongue_out
6. MATERIAL AND SKIN SYSTEM
Critical: Skin tones MUST NOT be baked into textures. All skin color variation must be driven at runtime through the shader, using one neutral base texture as input.
6.1 Approach
- Authoring uses a neutral base skin texture (mid-tone, desaturated).
- Final color produced by the shader at runtime, not the texture.
- All characters ship with the same base texture; differences are slider-driven.
6.2 Skin Tone Slider
- skin_tone (0 to 1): Drives melanin level, hue shift, saturation, and undertone warmth simultaneously. Single externally-exposed slider; smooth range from very light to very deep complexions.
6.3 Required Material Maps
- BaseColor: Neutral skin albedo. No baked tone, no baked makeup.
- Normal: Surface normal map for skin micro-detail.
- Roughness: Roughness / glossiness map.
- AO: Ambient occlusion map. Optional but recommended.
- Specular: Optional specular control map.
6.4 Skin Feature Layers
- Freckles: toggleable layer.
- Age lines: toggleable layer.
- Blemishes: driven by a mask.
- Tattoo masks: multiple layers, compositable.
- Skin gloss: exposed control.
7. CLOTHING SYSTEM
Modular. Garments are not part of the body mesh, do not bake into the character, and must respond to the same rig and morph targets so body shape changes do not break wardrobe.
7.1 Per-Character Wardrobe Set
- Hair styles: 2 (geometry attachments; see Hair System)
- Shirt: 1
- Pants: 1
- Socks: 1
- Shoes: 1
7.2 Behavioral Requirements
- Garments are separate meshes, not baked or merged into the body.
- Garments follow the skeleton rig (skinned to the same bone hierarchy).
- Garments support the same morph targets as the body, OR are authored so body morphs do not cause clipping.
- No clipping at extreme morph values across the slider's full range.
8. HAIR SYSTEM
Base mesh ships bald. Hair is an attachment system on top of a clean scalp.
- Bald base mesh. Required, no exceptions.
- Scalp optimized for downstream hair workflows: hair cards, wig meshes, procedural / groom-based attachments.
- Two example hair styles per character delivered with the wardrobe (see Section 7.1).
9. EXPORT REQUIREMENTS
9.1 GLB Contents (Mandatory)
- Full skeleton rig.
- All blendshapes, named exactly as in Section 5.
- PBR materials with all maps from Section 6.3.
- Correct real-world scale (meters).
- Clean node hierarchy. No orphaned, broken, or empty placeholder nodes.
9.2 Hierarchy Cleanliness Checklist
- No leftover constraint helpers, locators, or rigging scaffolding in the export.
- No duplicate-named bones.
- No zero-weight bones.
- No hidden or disabled meshes left in the file.
10. ACCEPTANCE CRITERIA
A delivery is complete when all of the following pass:
- Both characters open in Unity and Unreal without import errors.
- All blendshapes from Section 5 are present and correctly named.
- ARKit 52 (or documented equivalent) drives believable facial animation.
- body_fat and skin_tone sliders behave smoothly across their full range.
- Clothing items follow the rig and do not clip at extreme morph values.
- Joint deformation passes the range-of-motion test (Section 4).
- GLB, FBX, and source files are all delivered for each character.