Files
UE5-Modular-Game-Framework/docs/blueprints/17-capture/146_DA_PlanarCaptureProfile.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

4.1 KiB

146 — Planar Capture Profile Data Asset (DA_PlanarCaptureProfile)

Purpose

Designer-configurable capture profile for individual surfaces. Defines default mode, quality profile overrides, actor lists, and surface material. Referenced by BP_PlanarCaptureActor at BeginPlay.

Dependencies

  • Requires: PlanarCaptureCommon.h (C++ enums/structs)
  • Required By: All capture surface actors (139-143)
  • Engine/Plugin Requirements: None

Class Info

Property Value
Parent Class PrimaryDataAsset (C++ may extend)
Class Type Data Asset
Asset Path Content/Framework/Capture/DA_PlanarCaptureProfile.uasset
C++ Status N/A (Data Asset)
Asset to Create Data Asset in UE5 editor

1. Variables

Variable Type Default Description
DefaultMode EPlanarCaptureMode Mirror Default capture mode
QualityProfileOverrides TArray〈FPlanarCaptureQualityProfile〉 Override specific quality tier settings (0=Low, 1=Medium, 2=High, 3=Hero)
DefaultShowOnlyActors TArray〈FPlanarCaptureActorListEntry〉 Pre-configured ShowOnly actors
DefaultHiddenActors TArray〈FPlanarCaptureActorListEntry〉 Pre-configured Hidden actors
bStartEnabled bool true Surface starts active
bDestructible bool false Can be destroyed
SurfaceMaterialOverride TSoftObjectPtr〈UMaterialInterface〉 Override surface material
SurfaceMPCOverride TSoftObjectPtr〈UMaterialParameterCollection〉 Override MPC reference
DefaultFOV float 90.0 Override capture FOV
MaxViewDistance float 5000.0 Override max view distance

2. Usage Pattern

At BeginPlay (BP_PlanarCaptureActor)

Event BeginPlay
  ├─ If DA_PlanarCaptureProfile is assigned:
  │    ├─ CaptureComponent.CaptureMode = Profile.DefaultMode
  │    ├─ CaptureComponent.CaptureFOV = Profile.DefaultFOV
  │    ├─ CaptureComponent.ShowOnlyActors = Profile.DefaultShowOnlyActors
  │    ├─ CaptureComponent.HiddenActors = Profile.DefaultHiddenActors
  │    ├─ bStartEnabled = Profile.bStartEnabled
  │    ├─ bDestructible = Profile.bDestructible
  │    ├─ [If SurfaceMaterialOverride] SetSurfaceMaterial(Override)
  │    └─ [If SurfaceMPCOverride] SurfaceMPC = Override
  └─ Continue with normal BeginPlay

This allows placing 20 BP_Mirror instances in a level, each referencing a different DA_PlanarCaptureProfile — no per-instance variable tweaking needed.

3. Profile Examples

Profile: HeroMirror

Variable Value
DefaultMode Mirror
QualityProfileOverrides[3] Hero: RT 2048, 60fps, Full Lumen, Post
bStartEnabled true
bDestructible false

Profile: SecurityMonitor

Variable Value
DefaultMode Monitor
DefaultFOV 70.0
QualityProfileOverrides[0] Low: RT 256, 5fps
MaxViewDistance 3000.0

Profile: HorrorMirror_ScareReady

Variable Value
DefaultMode HorrorMirror
QualityProfileOverrides[3] Hero: RT 2048, 12fps, DelayedFrame=5
bDestructible true
SurfaceMaterialOverride MI_Mirror_Horror

4. Manual Implementation Guide

  1. Create Data Asset: Parent = PrimaryDataAsset, Name = DA_PlanarCaptureProfile
  2. Add variables as listed in Section 1 (create struct for QualityProfileOverrides if needed)
  3. Create multiple profile instances per surface type
  4. In each BP_* child, add variable: CaptureProfile: DA_PlanarCaptureProfile (Instance Editable, Expose on Spawn)
  5. In BeginPlay override, read profile and apply all settings before EnableSurface()

5. Build Checklist

  • Create DA_PlanarCaptureProfile Data Asset (or C++ struct)
  • Add all 10 variables
  • Create profile instances: DA_HeroMirror, DA_SecurityMonitor, DA_HorrorMirror
  • Add CaptureProfile variable to BP_PlanarCaptureActor
  • Wire BeginPlay to apply profile
  • Test: place mirror with different profiles, verify settings apply