Video summary
Unreal Engine 5.6 MetaHuman Crowd System - Chapter 2 - Create the Basic Blueprint
Main summary
Key takeaways
Summary of technological concepts & blueprint/tuto guidance (UE5.6 MetaHuman crowd)
This chapter walks through building a modular Unreal Engine Blueprint system to spawn/control a MetaHuman crowd where each character has randomized body, face, and groom components (hair, beard, mustache, eyebrows, eyelashes, fuzz). The author emphasizes that the blueprint is long but not conceptually difficult and is designed to be reused for different crowd types.
Core idea: modular Blueprint with arrays + indexing
Asset split into groups
Each MetaHuman is decomposed into separate asset groups:
- Bodies (skeletal mesh variants)
- Faces (skeletal mesh variants)
- Groom (hair/beard/mustache/eyebrows/eyelashes/fuzz)
Blueprint Structure storing parts as arrays
A Blueprint Structure holds these parts as arrays:
bodies[](skeletal meshes)faces[](skeletal meshes)- later additions include arrays for groom bindings for each face/body variant
Per-instance index: keep body/face consistent
A per-instance integer selects which MetaHuman variant to use:
MH index= random integer selecting the MetaHuman variant
The same index is used to pick matching body + face so the character parts stay consistent:
- Randomly select an index from the variant arrays
- Apply it in the Event Graph:
Set Skeletal Mesh Assetfor bodySet Skeletal Mesh Assetfor face
Important detail: Max - 1 for correct array indexing
The random integer range uses Max - 1 to stay aligned with array indexing starting at 0.
Practical workflow: asset organization & numbering
The tutorial repeatedly stresses folder structure and numerical naming to prevent ordering errors:
- Create folders for bodies/faces/groom and copy the 7 variants of each asset type.
- Rename every asset in strict numeric order starting at
0(e.g.,0,1, …). - Create groom-specific subfolders (e.g., hair, beard, mustache, etc.) and also rename numerically.
Groom handling fix: groom binding assets (major focus)
After randomizing faces, the grooms can appear broken if bindings are not correct (the tutorial describes them as a “real disaster”).
Solution: create relative groom binding assets
For each groom type (starting with hair):
- Use “Create Binding” for each groom asset variant.
- Set binding target skeletal mesh to the face variant chosen by the crowd system.
- Set binding source to the original face that the groom was made for.
- Create multiple binding assets so each combination is consistent, e.g.:
- hair binding for
hair 0..6targetingface 0..6
- hair binding for
Store bindings in arrays for the Blueprint system
Conceptually, the blueprint stores bindings like:
hairBinding[faceIndex][](implemented as arrays keyed/indexed by face variant)
Numbering/ordering requirement for bindings
Binding assets must be named/ordered so the pairings remain correct:
0 0pairs withhair0 -> face00 1pairs withhair0 -> face11 0pairs withhair1 -> face0- etc.
Function implementation: assign hair based on two random selections
A key tutorial step is building a function (example shown for hair):
Function: assign hair
- Randomize:
MH index→ selects which face/body variant the character uses (target face)hair nd air(hair index selection) → selects which hair variant (source groom)
- Use Switch on Int driven by
MH indexto select the correct binding array:- e.g., hair bindings for face / MH index 3
- Select the binding element using the randomized hair index.
- Apply it to set the groom binding on the MetaHuman component.
Concept mapping stated in the subtitles
MH index= which MetaHuman face/body (e.g.,03)hair index= which hair style (e.g.,01)- Switch chooses the binding array for face
03 - Then selects binding
hair 01inside that array
Testing & debugging outcomes
Initial result after adding hair bindings
- Random faces work properly.
- Groom assignment may initially look wrong due to overlaying old/original grooms.
Fix: remove original grooms from the Blueprint
To resolve the overlay issue:
- Delete original groom assets from the Blueprint
- UE overlays them with the newly randomized grooms
Final result
- After correction: “Everything works fine.”
- Variability can be increased by adding rules such as a bald probability (example mentioned: 2 on 10, producing some bald characters).
Extending the same approach to other groom types
After hair, the tutorial repeats the same binding + array + assignment approach for:
- beard
- mustache
- eyebrows
- eyelashes
- fuzz
For each groom type:
- Create corresponding binding assets
- Add corresponding binding arrays to the blueprint structure
- Create functions (duplicated from
assign hair) and update references - Test again after removing older grooms to ensure correct bindings display
Additional features referenced (final block of code segment)
The subtitles reference a broader blueprint capability set, including:
- A system to randomize and assign basic MH assets, skeletal meshes, and groups
- Mentions of a component/property workflow (subtitles unclear, but appears related to forcing some property on a sync/hello component)
Facial-feature helper logic
- Eyebrows: “Every meta human to have high brows.”
- Switch logic example for categories (subtitles imply beard-related combinations), using a random integer:
0= none1= mustache only2= beard only3= beard + mustache
Optional toggles for performance/complexity
Boolean toggles mention skipping some groom complexity, including fast and eyelash options (with the suggestion that for performance-focused crowds—e.g., forest MetaHumans—some groom types may be unnecessary).
Tutorial outcome / next chapter teaser
- The “longest and most boring part” (groom binding + blueprint setup) is complete.
- The next steps (future chapter) will cover:
- randomizing colors
- randomizing clothes
- adding accessories
The chapter ends by stating the next chapter will be about dressing up the MetaHuman crowd.
Main speaker/source(s)
- Unreal Engine MetaHuman crowd tutorial creator (single primary instructor voice; referenced as “I” throughout).
- Channel/series context: “Unreal Engine 5.6 MetaHuman Crowd System - Chapter 2”