10 KiB
10 KiB
Development Pipeline - Dubai Metaverse
Overview
This document outlines the complete development pipeline for the Dubai Metaverse project, including asset creation workflows, import processes, and iteration cycles.
Pipeline Stages
1. Pre-Production
Concept & Planning
- Input: Art bible, district selection, reference images
- Output: Asset list, technical specifications, style guides
- Tools: Photoshop, Midjourney, Stable Diffusion
- Deliverables: Concept art, moodboards, asset breakdown
Data Acquisition
- Input: OpenStreetMap, GIS data, elevation data
- Output: Geospatial data, terrain data, building footprints
- Tools: Python scripts, GIS software, RealityCapture
- Deliverables: Processed data, terrain mesh, building outlines
2. Asset Creation
3D Modeling
Workflow:
- Blockout: Create basic shape in Blender/Maya
- High-Poly: Add detail, create high-poly version
- Low-Poly: Create optimized low-poly (if not using Nanite)
- UV Mapping: Unwrap UVs, prepare for texturing
- Export: Export to FBX or direct to Unreal
Tools:
- Blender (free, recommended)
- Maya (professional)
- Houdini (procedural generation)
Standards:
- Hero Assets: High-poly only (Nanite)
- Primary Buildings: High-poly + low-poly with LODs
- Background: Simplified geometry with LODs
- Format: FBX 2020 or newer
Naming Convention: See NAMING_CONVENTIONS.md
Texturing
Workflow:
- Bake Maps: Bake normal, AO, curvature maps from high-poly
- Texture Creation: Create textures in Substance Painter
- Material Setup: Set up PBR materials
- Export: Export texture sets
- Import: Import to Unreal, create materials
Tools:
- Substance Painter (primary)
- Substance Designer (procedural materials)
- Photoshop (additional editing)
Texture Sets:
- Base Color: Albedo/diffuse
- Normal: Normal map
- Roughness: Surface roughness
- Metallic: Metallic map
- AO: Ambient occlusion
- Additional: Emissive, height (where needed)
Resolution Standards:
- Hero Assets: 8K (8192x8192) - UDIM workflow
- Primary Buildings: 4K (4096x4096)
- Background: 2K (2048x2048)
Format:
- Export: PNG or TGA (16-bit)
- Import: BC7 (DXT5) for color, BC5 for normals
Photogrammetry (Optional)
Workflow:
- Photography: Capture 100-500 photos of building
- Processing: Process in RealityCapture or Luma AI
- Cleanup: Clean mesh, fix holes, optimize
- Texturing: Generate textures from photos
- Export: Export mesh and textures
- Import: Import to Unreal, convert to Nanite
Tools:
- RealityCapture (professional)
- Luma AI (simplified)
- Agisoft Metashape (alternative)
Requirements:
- High-quality camera (DSLR or mirrorless)
- Consistent lighting
- Overlapping photos (70-80% overlap)
- Multiple angles
3. Procedural Generation
Houdini Workflow
Process:
- Create HDA: Build Houdini Digital Asset
- Parameters: Set up exposed parameters
- Export: Export HDA file
- Import: Import HDA to Unreal via Houdini Engine
- Instance: Create instances in level
- Bake: Bake to static meshes (optional)
Use Cases:
- Modular building generation
- Road network generation
- Terrain sculpting
- Complex procedural geometry
Tools:
- Houdini (Houdini Engine plugin in Unreal)
PCG (Procedural Content Generation) Workflow
Process:
- Create Graph: Create PCG graph in Unreal
- Define Rules: Set up placement rules
- Input Data: Provide input (splines, volumes, points)
- Generate: Execute graph to generate content
- Iterate: Adjust rules and regenerate
- Bake: Bake to static (optional, for performance)
Use Cases:
- Building placement
- Road props (lamp posts, barriers)
- Vegetation placement
- Traffic generation
Tools:
- Unreal Engine PCG Framework (built-in)
4. Import to Unreal
Static Mesh Import
Process:
- Import Settings: Configure import settings
- Nanite: Enable Nanite if applicable
- Materials: Assign materials or create new
- LODs: Generate LODs if not using Nanite
- Collision: Generate collision meshes
- Validation: Validate mesh and materials
Import Settings:
- Nanite: Enable for high-poly static meshes
- LODs: Generate LODs for non-Nanite meshes
- Collision: Auto-generate or use custom
- Lightmap UVs: Generate if needed
Validation Checklist:
- ✅ Mesh imports without errors
- ✅ Materials assigned correctly
- ✅ Nanite enabled (if applicable)
- ✅ Collision generated
- ✅ Scale is correct
- ✅ Naming follows conventions
Texture Import
Process:
- Import: Import texture files
- Compression: Set compression settings
- sRGB: Configure sRGB (color maps only)
- Mip Maps: Generate mip maps
- Virtual Texturing: Enable if using virtual textures
Settings:
- Base Color: sRGB enabled, BC7 compression
- Normal: sRGB disabled, BC5 compression
- Roughness/Metallic: sRGB disabled, BC7 compression
- AO: sRGB disabled, BC7 compression
Material Creation
Process:
- Create Material: Create material asset
- Texture Assignment: Assign texture maps
- Parameters: Expose parameters for instances
- Shading Model: Set shading model (Default Lit)
- Blend Mode: Set blend mode (Opaque, Masked, Translucent)
- Test: Test material in level
Material Instances:
- Create material instances for variations
- Expose parameters (color, roughness, etc.)
- Use instances for similar materials
5. Level Assembly
World Partition Setup
Process:
- Enable World Partition: Enable in project settings
- Cell Size: Configure cell size (128m default)
- Data Layers: Create data layers for organization
- Streaming: Set up streaming volumes
- Validation: Test streaming performance
Data Layer Organization:
- Buildings
- Props
- Vegetation
- Lighting
- Vehicles
- NPCs
Placement
Process:
- Manual Placement: Place assets manually in level
- PCG Placement: Use PCG for procedural placement
- Spline Placement: Use splines for roads, paths
- Validation: Validate placement and scale
Placement Tools:
- Unreal Editor (manual)
- PCG Framework (procedural)
- Spline tools (roads, paths)
6. Lighting & Atmosphere
Lighting Setup
Process:
- Sky Light: Set up HDRI sky
- Directional Light: Configure sun light
- Lumen: Enable Lumen GI and reflections
- Day/Night Cycle: Set up time of day system
- Atmosphere: Configure volumetric fog
- Post-Process: Set up post-process volume
Lighting Workflow:
- Start with HDRI sky
- Add directional light (sun)
- Adjust Lumen settings
- Set up day/night cycle
- Add atmosphere and fog
- Configure post-process
7. Gameplay Systems
Blueprint Creation
Process:
- Design: Plan blueprint functionality
- Create: Create blueprint class
- Implement: Implement logic
- Test: Test in level
- Iterate: Refine based on testing
Blueprint Organization:
- Gameplay (player, interactions)
- Vehicles (Chaos vehicles)
- NPCs (AI, behavior)
- Systems (day/night, weather)
8. Optimization
Performance Optimization
Process:
- Profile: Profile performance (Unreal Insights)
- Identify: Identify bottlenecks
- Optimize: Apply optimizations
- Validate: Validate performance improvement
- Iterate: Repeat as needed
Optimization Techniques:
- LOD generation and assignment
- Nanite clustering
- Material optimization
- Lightmap optimization
- Streaming optimization
- Draw call reduction
9. Cinematic Rendering
Sequencer Workflow
Process:
- Create Sequence: Create Sequencer asset
- Add Cameras: Add camera actors
- Animate: Animate cameras and objects
- Configure: Configure render settings
- Render: Render with Movie Render Queue
Movie Render Queue:
- Set output format (EXR, MP4)
- Configure resolution (8K, 4K)
- Set up additional passes
- Configure anti-aliasing
- Render sequence
Iteration Cycle
Asset Iteration
- Create/Update: Create or update asset in DCC tool
- Export: Export to Unreal format
- Import: Import to Unreal
- Review: Review in Unreal
- Feedback: Gather feedback
- Iterate: Return to step 1 if needed
Level Iteration
- Place/Update: Place or update assets in level
- Test: Test in editor or play mode
- Review: Review visual quality and performance
- Feedback: Gather feedback
- Iterate: Return to step 1 if needed
Quality Control
Asset Validation
Checklist:
- ✅ Naming follows conventions
- ✅ Scale is correct
- ✅ Materials are assigned
- ✅ Textures are correct resolution
- ✅ LODs are generated (if needed)
- ✅ Collision is set up
- ✅ Performance is acceptable
Level Validation
Checklist:
- ✅ All assets placed correctly
- ✅ Lighting is correct
- ✅ Performance targets met
- ✅ No visual artifacts
- ✅ Interactions work correctly
- ✅ Streaming works correctly
Automation
Scripts
- Asset Validation:
scripts/validate_assets.sh - Texture Validation:
scripts/texture_validation.py - Performance Audit:
scripts/performance_audit.py - Documentation Generation:
scripts/generate_docs.sh
Tools
- Houdini HDAs: Procedural generation tools
- PCG Graphs: Reusable procedural content
- Material Functions: Reusable material logic
Version Control
Asset Versioning
- Use Git LFS for large files
- Commit assets after validation
- Use descriptive commit messages
- Tag major milestones
Level Versioning
- Commit level changes regularly
- Use branches for major features
- Merge after review and testing
Best Practices
- Always Validate: Validate assets before committing
- Follow Naming: Follow naming conventions strictly
- Document Changes: Document significant changes
- Test Regularly: Test in level regularly
- Optimize Early: Optimize for performance early
- Iterate Quickly: Short iteration cycles
- Communicate: Communicate changes to team
Version: 1.0 Last Updated: [Current Date]