Video summary
Achieving Realistic Visual Styles in UEFN I State of Unreal 2024
Main summary
Key takeaways
Overview
This State of Unreal 2024 session (technical animation + environment + product pipeline) explains how Epic’s internal Talisman project achieved more realistic visual styles in UEFN by bringing MetaHumans and high-end simulated clothing/environment detail into UEFN’s strict upload/download and runtime memory/performance limits.
What they covered (key tech concepts & features)
1) MetaHumans in UEFN: feasibility + size/performance strategy
UEFN constraints
- Max island upload size: ~2 GB
- Max download size: ~400 MB
- A typical Unreal MetaHuman “cook” size (~800 MB) would be too large for UEFN, so they had to “get creative” while maintaining fidelity.
Core result
- Demonstrated a 1:1 visual comparison approach between Unreal MetaHumans and UEFN MetaHumans.
- Reported ~93% size reduction:
- Unreal MetaHuman cook: ~800 MB
- UEFN MetaHuman cook: ~60 MB
Noted differences (when comparing closely):
- “peach fuzz” removed
- some micro-details (wrinkles/freckles) are softer
- overall facial detail slightly reduced, but “hard to tell” at a distance
Quality tier options
3 downloadable quality levels with differing mesh LOD counts:
- High: 4 LODs
- Medium: 3 LODs
- Low: 2 LODs
Medium/Low are described as stripped-down versions derived from High, not 1:1 remaps.
2) UEFN-specific MetaHuman component + missing-functionality fixes
They introduced/added UEFN-side support so MetaHumans behave correctly inside Fortnite/UEFN:
-
New UEFN-centric actor component: “Metahuman component”
- Central place to tune visual quality + performance
- Supports custom control rigs / physics assets for secondary animation
-
NPC integration
- MetaHumans work with the NPC device
- Includes starter NPC animations, while still allowing custom animations
-
LOD sync
- Added an L sync component to keep head/body LOD alignment (neck seam correctness)
-
Groom + runtime compute
- Groom assets enabled
- Ability to recompute tangents at runtime on PC/higher-end to improve deformation quality
-
Skinning / influence options
- Per-vertex bone influence increased from default 8 to optional 12
-
Clothing support mention
- Panel-based clothing noted (expanded later in the clothing pipeline portion)
3) How they process assets for UEFN (Unreal vs UEFN pipeline)
- Unreal approach: you can cook assets as you like (more control over end-to-end).
- UEFN approach: Epic chose to pre-process assets with fewer decisions for creators.
Key constraints they did not change
- No geometry changes (they wanted existing meshes)
- Preserve rigs/skeletal hierarchy for ecosystem compatibility
Four main optimization levers
- Reduce mesh LODs
- Animation compute improvements
- Groom reductions
- Texture + material optimizations
Emphasis on biggest contributors:
- Texture optimization: biggest overall size impact (per their relative chart)
- Grooms: next biggest
- Animation: largest range depending on configuration
4) Animation options inside UEFN (how to animate MetaHumans)
They described three practical animation paths:
- Sequencer device + Control Rig
- UEFN supports Control Rig; animate inside engine
- Animation sequence playback
- On body skeletal mesh (imported anims / mocap / keyframe sequences)
- NPC spawner device
- MetaHumans compatible
- Provides default locomotion anims, with Verse + custom animation options
5) Groom (hair) optimizations for UEFN
- Strand auto-LOD behavior based on screen coverage
- Trim simulation/render workload via adaptive curves
- Faster shadow + ray tracing optimizations
- Texture reductions:
- Hair cards packed into compact texture layouts (with specified channel packing)
- Cook size reduction: reported ~50% for cooked groom size
Groom choice strongly impacts total MetaHuman size.
6) Simulated clothing in UE 5.4 → USD pipeline → Unreal + UEFN (Early Access)
CL / Marvelous Designer / USD integration
They partnered with:
- Clo Virtual Fashion (CL)
- Marvelous Designer
to use USD as a cross-tool garment workflow so clothing parameters/panels can transfer rather than exporting only a “lookalike mesh.”
New clothing pipeline (5.4) in practice
- USD export from Marvelous Designer
-
USD import in Unreal to generate:
- Simulation mesh: low-res, simulated
- Render mesh: high-res, displayed; driven by sim mesh
-
Cloth panel graph + autogen graph
- Autogenerated setup graph when creating a cloth asset
- Supports USD import note node + simulation value transfer nodes + physics asset node + starting parameters
- Transfer simulation properties
- Fabric selections + simulation settings can influence behavior after USD import
Cloth panel editor (UE 5.3+): the main areas
- Panel viewer
- 2D/3D, selection, painting weight maps
- Simulation viewer
- Play sim / visual debug; swap sim/render meshes
- Simulation details panel
- Settings + preview/debug visualization
- Data flow graph
- Node-based authoring similar to blueprints
Key nodes/features highlighted
-
Transfer skin weights node
- Uses USD-imported mesh + a user-defined skeleton mesh to create weighted clothing mesh suitable for cloth solver
- Designed to avoid manual rigging/weighting in external DCCs
-
Remesh node
- Auto-generates lower-res sim meshes (and optionally render meshes) for LODs
UEFN migration
- Cloth assets can be migrated to UEFN
- In UEFN, they’ll work by adding a Chaos cloth component and selecting the cloth asset
Migration notes:
- Cloth asset is essential; physics asset/materials optionally migrate depending on needs.
Performance expectations
Example goal for Talisman-style closeups:
- Target: ~30 FPS on high-end for high-quality simulation closeups
- Lower L simulations: ~50–60 FPS
Performance depends on:
- simulated vertices
- self-collision
- solver iterations
7) Environment (Talisman spaceship) creation under UEFN budget constraints
They explain how to build a “huge, highly detailed spaceship” despite tight UEFN memory/download limits.
Budget framing
- Environment target: only ~200 MB for the entire spaceship environment
- Remaining budget must cover MetaHumans, audio, VFX, gameplay devices, etc.
- Compared to last year’s “Electric Dreams” jungle:
- That demo’s single high-poly variation was ~350 MB, exceeding the whole budget
Modeling/budget best practices
- Mid-poly meshes + face-weighted normals
- Avoid baking expensive normal-map workflows from extreme high-poly sources
- Modular kits
- Reuse repeated kit pieces for rooms/props
- Avoid single-use one-off models
- Blueprint actors
- Manage kit-based repetition instead of huge actor counts
The biggest constraint: textures
They avoided unique textures wherever possible and used a fully procedural/scalable material framework:
- Vertex color data as “mask authoring”:
- AO in one channel
- curvature/convex-concave in another
- mesh/component ID map in another
- World-aligned tiling with a master material:
- surfaces: metals, painted metal, plastics, rubbers, textiles
- wear layers: scratches, scuffs, grime/dust/tarnish, etc.
- Texture arrays supported in UEFN to keep consistent tiling independent of mesh scale/orientation
- Distance-field ambient occlusion layered on top of mesh AO for cohesion
- Custom primitive data supported in UEFN:
- actor-local overrides to reduce unique materials (and draw-call/material variety pressure)
- Mesh decals heavily used:
- add panel seams/screws/surface detail without expensive unique textures
- Optimized atlas projection + parallax/occlusion function mentioned (memory-friendly detail)
Lighting optimization (Lumen in UEFN)
To hit performance targets:
- Prefer emissive planes + non-shadow-casting lights
- Turn off Cast Shadows for meshes not affected by direct lights (reduce shadow depth cost)
- Fake overhead light shadows using light functions (stripe textures) instead of real shadows
- Reduce Lumen flicker:
- lower emissive intensity
- complement emissive planes with small-radius spotlights
- Use:
- min/max draw distance on lights
- Alt+7 light complexity view to reduce light overlap
Memory management under the 100K “thermometer”
World Partition helped but didn’t fit because:
- corridors require visibility without popping
- the ship has strong vertical overlap (rooms stacked in Z)
Solution: manual streaming via Data Layers
- Separate each room into its own data layer
- Split large rooms into sub-layers
- Use cinematic sequence devices with staggered loading/unloading
- Trigger transitions in locations hidden from the player (mutator zones)
- Accept some incremental popping, but hide it with level design
Main speakers / sources
- Jared Monson — Technical Animator (MetaHumans/character technology)
- Brian Kim — Product Manager, Marvelous Designer (Clo Virtual Fashion)
- Saga — Senior Environment Artist, Epic Games
- Jacob — Environment Artist, Epic Games