Adding a camera zone¶
Recipe for placing an ACameraZoneActor and tuning it. No code — pure designer/engineer task in the level. For internals, see Camera system.
Place the actor¶
- From the Place Actors panel, drag
ACameraZoneActor(or a Blueprint subclass likeBP_CameraZone_Default) into the level. - The actor has two components you tune in the viewport:
ZoneBounds(UBoxComponent) — the trigger volume. Scale to cover the area where this camera should be active.ZoneCamera(UCameraComponent) — the camera itself. Position, rotate, and set FOV to define the viewpoint.
Position the camera¶
The project's baseline:
- 800 units above the zone center.
- Pitched -50 degrees (steep top-down oblique).
- FOV 30 (narrow).
Match this unless the zone has a deliberate reason to differ. Wildly different FOVs make zone transitions visible.
Set priority¶
Priority (int32) decides which zone wins when the player overlaps multiple. Higher number = higher priority.
Convention:
- A "main room" zone covering the whole space → priority 0.
- Smaller zones for specific puzzle stations or viewpoints → priority 1, 2, etc.
Two zones with the same priority will produce indeterminate ordering. Always vary priority on overlap.
Pick a blend mode¶
bUseTimeBasedBlend toggles between two strategies:
- Position-based (default, false) — the camera blends as the player walks deeper into the zone. Reversible: stepping back reverses the blend. Configure
TransitionDepth(default 250 units) andAlphaSmoothingSpeed(default 12). Best for organic feel where the camera shouldn't snap. - Time-based (true) — the camera blends over
BlendTimeseconds regardless of player movement. Non-reversible. Best for sharp narrative cuts ("you turned the corner, the camera changes now").
If unsure, start with position-based and the defaults.
Player tracking (optional)¶
Set bTrackPlayer = true if the camera should follow the player's X/Y movement while they're inside the zone. Two sub-modes:
- Clamped (
bClampTracking = true, default) — camera offset is bounded byTrackingClampExtent(default 100,100). Camera moves a little but stays roughly where you put it. - Unclamped — camera follows freely. Use when the zone covers a large traversal area and the camera should track the player like a leash.
Tune TrackingInterpSpeed (default 3.0) for follow responsiveness. Higher is snappier; lower is more cinematic but laggy.
Cinematic override compatibility¶
The zone is automatically suppressed when the rune showcase camera is active. You don't need to do anything — the cinematic stack takes priority.
Common configurations¶
A puzzle station inside a larger room
- Big room zone at priority 0, time-based blend false, no tracking.
- Small puzzle zone at priority 1, position-based blend, bTrackPlayer = false (the puzzle frame should be fixed).
A long traversal corridor
- Single zone covering the corridor, position-based blend, bTrackPlayer = true, unclamped tracking. Camera leashes along.
A reveal moment ("walk through this archway")
- One zone before the archway with the entry view. One zone after with the reveal view, bUseTimeBasedBlend = true, BlendTime = 1.5 for a deliberate transition.
Spawn-in-zone handling¶
If the player spawns already inside the zone, the overlap callback won't fire normally. The actor handles this with CheckInitialOverlaps on the next tick after BeginPlay — it queries for already-overlapping pawns and notifies the subsystem with BlendTimeOverride = 0 so the camera snaps without a visible blend from nowhere. No designer action needed; just be aware that level-start positioning is honored.
Common mistakes¶
- Two zones with the same priority overlapping. Pick one to be higher.
- Time-based blend on a zone the player can re-enter quickly. Time-based isn't reversible — the camera will run the full blend regardless. Use position-based for high-traffic zones.
bTrackPlayeron a zone with a tightTrackingClampExtent. The camera barely moves, no real tracking. Either widen the clamp or drop tracking entirely.- Z-axis blending: the system ignores Z in penetration depth (only X/Y matter). Don't expect the camera to ramp as the player goes up/down stairs unless the zone bounds wrap that geometry tightly in X/Y too.
Verifying your work¶
- Run the level.
- Walk through the zone boundary. Camera should blend smoothly to the new viewpoint.
- Walk back. Position-based zones reverse the blend; time-based zones do not (this is by design).
- If overlapping, verify the higher-priority zone wins.
- Toggle into a calculator's range to fire a rune effect — the cinematic showcase camera should take over and your zone should resume cleanly when it ends.
Source files¶
Source/Rephrased_Demo/CameraZoneActor.hSource/Rephrased_Demo/RuneCameraSubsystem.h
See also Camera authoring for the original design doc.
Change history¶
- 2026-05-08 — Gabriel Li — Added baseline change history section for weekly wiki maintenance.