- 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.
95 lines
4.1 KiB
Markdown
95 lines
4.1 KiB
Markdown
# 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
|