Files
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

4.4 KiB
Raw Permalink Blame History

139 — Mirror Surface Actor (BP_Mirror)

Purpose

Standard planar mirror surface. Designer configures mode, dirt layers, steam parameters, and surface aging. Extends BP_PlanarCaptureActor with default mirror configuration.

Dependencies

  • Requires: BP_PlanarCaptureActor (137), BPC_PlanarCapture (136)
  • Required By: BP_HorrorMirror (142) — extends this for horror features
  • Engine/Plugin Requirements: M_CaptureSurface_Master material, MPC_CaptureSurface

Class Info

Property Value
Parent Class BP_PlanarCaptureActor (C++ ABP_PlanarCaptureActor)
Class Type Blueprint Actor
Asset Path Content/Framework/Capture/BP_Mirror.uasset
C++ Status 🔵 BP Spec Only — extends C++ parent
BP Asset Create in editor: BP_Mirror

1. Configuration (Class Defaults)

Variable Value Description
CaptureComponent.CaptureMode Mirror Fixed to Mirror mode
bStartEnabled true Active by default
bDestructible false Can be shattered (override per instance)
SurfaceMPC MPC_CaptureSurface Assign the global MPC

Mirror-Specific Properties (Set via SetSurfaceMPCParameter)

Parameter Default Range Description
DirtOpacity 0.0 0.01.0 Dirt/scratch layer intensity
SteamIntensity 0.0 0.01.0 Steam fog visibility
CondensationFlow 0.0 0.01.0 Condensation rivulet normal intensity
SurfaceAge 0.0 0.01.0 Oxidation/yellowing tint

2. Material Setup

Slot Material Instance Description
SurfaceMesh[0] MI_Mirror_Clean Default clean mirror

Pre-configured material instances to assign per mirror:

  • MI_Mirror_Clean — Pristine mirror, no effects
  • MI_Mirror_Dirty — DirtOpacity preset at 0.4
  • MI_Mirror_Steam — SteamIntensity preset at 0.6, animated noise enabled

3. Event Graph

Event BeginPlay

Event BeginPlay
  ├─ Parent: BeginPlay (registers with manager)
  ├─ Set CaptureComponent.CaptureMode = Mirror
  ├─ Set SurfaceMaterial(MI_Mirror_Clean)  // or designer-chosen MI
  └─ [If bStartEnabled] EnableSurface()

Event: SetMirrorDirtLevel(Level: float)

SetMirrorDirtLevel(Level)
  ├─ Clamp Level to 0.01.0
  ├─ Call SetSurfaceMPCParameter("DirtOpacity", Level)
  └─ [If Level > threshold] Swap material to MI_Mirror_Dirty

Event: SetMirrorSteamLevel(Level: float)

SetMirrorSteamLevel(Level)
  ├─ Clamp Level to 0.01.0
  ├─ Call SetSurfaceMPCParameter("SteamIntensity", Level)
  └─ Call SetSurfaceMPCParameter("CondensationFlow", Level * 0.5)

4. Communication Matrix

Target Method What
SS_PlanarCaptureManager Direct (inherited) Registration
BPC_PlanarCapture Direct (inherited) Capture driving
MPC_CaptureSurface SetScalarParameterValue (via PushMPCParameters) Visual parameters
SS_AudioManager (132) Direct (on shatter) Shatter sound

5. Manual Implementation Guide

5.1 Create BP_Mirror

  1. Create Blueprint Class: Parent = BP_PlanarCaptureActor, Name = BP_Mirror
  2. Open Class Defaults, set CaptureComponent.CaptureMode to Mirror
  3. In Components: select SurfaceMesh, assign a plane mesh (e.g., SM_Plane_200x200)
  4. Assign MI_Mirror_Clean to SurfaceMesh material slot 0
  5. Set SurfaceMPC to MPC_CaptureSurface

5.2 Add Steam/Dirt Controls

  1. In Event Graph, create custom event SetMirrorDirtLevel(Float)
  2. Wire: SetSurfaceMPCParameter("DirtOpacity", Level)
  3. Create custom event SetMirrorSteamLevel(Float)
  4. Wire: SetSurfaceMPCParameter("SteamIntensity", Level) + SetSurfaceMPCParameter("CondensationFlow", Level * 0.5)

5.3 Level Placement

  1. Drag BP_Mirror into level
  2. Rotate so surface normal faces toward player viewing area
  3. Set SurfaceDisplayName for debug identification
  4. Adjust ProximityTrigger.BoxExtent to cover expected viewing area

6. Build Checklist

  • Create BP_Mirror Blueprint child
  • Assign plane mesh and MI_Mirror_Clean material
  • Set CaptureMode=Mirror in defaults
  • Assign MPC_CaptureSurface reference
  • Test: place in level, walk up, verify reflection appears
  • Test: walk away, verify quality drops to Off
  • Test: call SetMirrorDirtLevel/SetMirrorSteamLevel from gameplay code