- 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.
3.3 KiB
3.3 KiB
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.0–1.0 | Steam/fog opacity on mirror surface |
DirtOpacity |
0.0 | 0.0–1.0 | Dirt/scratch layer opacity |
CondensationFlow |
0.0 | 0.0–2.0 | Condensation normal map panning speed |
DistortionAmplitude |
0.0 | 0.0–1.0 | UV distortion magnitude (breathing mirror) |
MirrorDarkness |
0.0 | 0.0–1.0 | Mirror darkening (0=normal, 1=black) |
WrongReflectionBlend |
0.0 | 0.0–1.0 | Wrong reflection crossfade (horror mode) |
TextRevealProgress |
0.0 | 0.0–1.0 | Steam text reveal wipe progress |
SteamEmissiveIntensity |
0.0 | 0.0–5.0 | Backlit fog emissive brightness |
DelayedReflectionBlend |
0.0 | 0.0–1.0 | Delayed frame ring buffer blend |
SurfaceAge |
0.0 | 0.0–1.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
- Create Material Parameter Collection: Name =
MPC_CaptureSurface - Add all 10 scalar parameters with names and default values from Section 1
- Add 2 optional vector parameters if using color tinting
- Assign this MPC to every capture surface actor's
SurfaceMPCvariable - In
M_CaptureSurface_Master, link allCollection Parameternodes 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