CCTV Settings
CCTV feed appearance is controlled by a single UI Material assigned in project settings. Each camera renders into a CanvasRenderTarget2D, then a dynamic material instance sets the Texture parameter for UMG Image widgets.
flowchart LR Capture["Scene Capture"] --> RT["Render Target"] RT --> MID["Material Instance Dynamic"] Settings["UOperatingSystemCCTVSettings"] --> Mat["M_UI_CCTV"] Mat --> MID MID --> UMG["Image widget in WBP_CCTV"]
Project Settings
Section titled “Project Settings”Open Edit → Project Settings → CCTV Settings (section provided by UOperatingSystemCCTVSettings).
| Property | Default asset | Description |
|---|---|---|
| UI Material | OperatingSystemContent/CCTV/M_UI_CCTV | Parent material for all camera feeds |
The C++ constructor sets this default path:
/OperatingSystemSimulator/OperatingSystemContent/CCTV/M_UI_CCTV.M_UI_CCTV
Swapping the default material
Section titled “Swapping the default material”- Duplicate
M_UI_CCTVinto your project Content folder. - Edit the duplicate — keep a Texture parameter named
Texture(case-sensitive). - Point Project Settings → CCTV Settings → UI Material at your duplicate.
Material requirements
Section titled “Material requirements”Your UI material must:
- Expose a Texture parameter (used by
GetMainViewMID/GetGridViewMID). - Be suitable for UMG — typically User Interface domain or unlit sampling of the render target.
- Optionally add post-process style effects (scan lines, noise, vignette) in the material graph for a surveillance aesthetic.
flowchart TB
subgraph material["M_UI_CCTV graph (conceptual)"]
Tex["Texture param"] --> Sample["Texture Sample"]
Sample --> FX["Optional: noise · scanlines · tint"]
FX --> Emissive["Emissive / Final Color"]
end
RT["Camera Render Target"] -.->|"SetTextureParameterValue"| Tex
Per-camera override
Section titled “Per-camera override”On any BP_CCTV_Actor instance, expand Advanced and set Override Material UI to a different material. Useful when one camera should show thermal imaging while others use the standard feed.
If left unset, the actor loads the material from CCTV Settings at first MID creation.
Render target resolution vs material
Section titled “Render target resolution vs material”Resolution is set per camera, not in project settings:
| Layout | Property | Default |
|---|---|---|
| Single view | Main View Size | 2048 × 1024 |
| Grid tiles | Grid View Size | 512 × 256 |
Higher resolutions improve clarity but cost GPU memory and capture time. Tune on BP_CCTV_Actor, not in CCTV Settings.
Blueprint example — runtime material swap
Section titled “Blueprint example — runtime material swap”On Night Vision Toggled → For Each (Get All CCTV Actors) → Set Override Material UI (M_UI_CCTV_NightVision) → (Next capture recreates MID with new parent)Related
Section titled “Related”- Camera actor — Override Material UI, render target sizes
- CCTV widget —
Set Brush from Material - API — UOperatingSystemCCTVSettings