Files
UE5-Modular-Game-Framework/docs/blueprints/17-capture/145_MPC_CaptureSurface.md
Lefteris Notas 0a2d08b2ad Add Planar Capture System implementation checklist and developer reference
- Created a comprehensive implementation checklist for the Planar Capture System (Systems 136-147) detailing tasks across multiple phases including C++ core, material foundation, Blueprint actors, data assets, integration, and performance testing.
- Added a developer reference document outlining the architecture, data flow, state machine, budget enforcement, render target pooling, horror features, integration points, multiplayer networking, performance characteristics, debugging methods, and build order for the capture systems.
- Introduced examples of capture surface usage in the Project Void horror game, including specific implementations for mirrors, monitors, portals, and fake windows, along with a checklist for integration tasks.
2026-05-22 15:36:08 +03:00

73 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 145 — Capture Surface Material Parameter Collection (`MPC_CaptureSurface`)
## Purpose
Global Material Parameter Collection with 10 scalar parameters that control all capture surface material effects at runtime. Pushed each frame by `UBPC_PlanarCapture::PushMPCParameters()`.
## Dependencies
- **Requires:** None (standalone MPC asset)
- **Required By:** `M_CaptureSurface_Master` (144), all capture surface actors (139-143)
- **Engine/Plugin Requirements:** None
## Class Info
| Property | Value |
|----------|-------|
| **Asset Type** | MaterialParameterCollection |
| **Asset Path** | `Content/Framework/Capture/MPC_CaptureSurface.uasset` |
| **C++ Status** | N/A (content asset) |
| **Asset to Create** | MPC in UE5 editor |
## 1. Scalar Parameters
| Parameter Name | Default Value | Range | Description |
|---------------|---------------|-------|-------------|
| `SteamIntensity` | 0.0 | 0.01.0 | Steam/fog opacity on mirror surface |
| `DirtOpacity` | 0.0 | 0.01.0 | Dirt/scratch layer opacity |
| `CondensationFlow` | 0.0 | 0.02.0 | Condensation normal map panning speed |
| `DistortionAmplitude` | 0.0 | 0.01.0 | UV distortion magnitude (breathing mirror) |
| `MirrorDarkness` | 0.0 | 0.01.0 | Mirror darkening (0=normal, 1=black) |
| `WrongReflectionBlend` | 0.0 | 0.01.0 | Wrong reflection crossfade (horror mode) |
| `TextRevealProgress` | 0.0 | 0.01.0 | Steam text reveal wipe progress |
| `SteamEmissiveIntensity` | 0.0 | 0.05.0 | Backlit fog emissive brightness |
| `DelayedReflectionBlend` | 0.0 | 0.01.0 | Delayed frame ring buffer blend |
| `SurfaceAge` | 0.0 | 0.01.0 | Oxidation / yellowing tint amount |
## 2. Vector Parameters (Optional — Legendary Tier)
| Parameter Name | Default Value | Description |
|---------------|---------------|-------------|
| `SurfaceTintColor` | (1.0, 1.0, 1.0, 1.0) | Oxidation/aging color tint |
| `SteamColor` | (0.8, 0.85, 0.9, 1.0) | Steam emissive color |
## 3. Runtime Control
All parameters are driven by C++ via `UBPC_PlanarCapture::PushMPCParameters()`. Blueprint actors call `SetSurfaceMPCParameter(Name, Value)` on the parent `BP_PlanarCaptureActor` to override specific values for that surface.
### Per-Surface Override Pattern
```
BP_HorrorMirror → SetSurfaceMPCParameter("WrongReflectionBlend", 1.0)
└─ This sets the scalar on the surface's MID, which overrides the MPC value
(MID overrides take priority over MPC in UE5 material system)
```
### Global Override Pattern
```
SS_PlanarCaptureManager → all surfaces get MPC pushed each frame
└─ A gameplay system changes MPC global → affects ALL mirrors/potals/monitors
```
## 4. Manual Implementation Guide
1. Create Material Parameter Collection: Name = `MPC_CaptureSurface`
2. Add all 10 scalar parameters with names and default values from Section 1
3. Add 2 optional vector parameters if using color tinting
4. Assign this MPC to every capture surface actor's `SurfaceMPC` variable
5. In `M_CaptureSurface_Master`, link all `Collection Parameter` nodes to this MPC
## 5. Build Checklist
- [ ] Create MPC_CaptureSurface in editor
- [ ] Add all 10 scalar parameters
- [ ] Add 2 vector parameters (optional)
- [ ] Assign to all BP_* capture actors' SurfaceMPC variable
- [ ] Verify material compiles with MPC references
- [ ] Test: change SteamIntensity in MPC, verify all mirrors fog