A mode-stacked, data-driven camera — push and pop blendable modes for third-person, aim, top-down, and lock-on with no per-frame camera code.
Gameplay · Camera · Unreal Engine 5
Compose your camera. Don't code it every frame.
Push and pop modular camera modes onto a blend stack and the runtime blends them by weight — smooth transitions between third-person, top-down, aim, and lock-on with no tick-camera code. It ships with the extras games actually need: over-the-shoulder framing, zoom, lag, recenter, shake, occlusion fade, and a multi-lock-point lock-on built on Unreal's Gameplay Targeting System.
Why CrimsonCamera
A complete, data-driven camera layer — composable modes, the polish games ship with, and a Souls-style lock-on.
A mode stack that blends
Push and pop modular UCrimsonCameraMode classes; the stack blends their output by weight every frame. Switching from third-person to aim to lock-on is a smooth, code-light transition instead of a hard cut.
Third-person & top-down, built in
Ready-made modes with pitch-driven offset curves and penetration avoidance. Subclass to tweak, or push one as-is and you already have a camera that follows your pawn.
Shoulder, zoom, lag & recenter
Over-the-shoulder framing, a clamped dolly zoom, optional view lag that never touches control rotation, and idle / on-demand recenter — all toggled and tuned on the mode.
Fade what blocks the shot
An occlusion component traces from camera to pawn and fades tagged walls and foliage via a material scalar — clean shots in tight spaces, alongside or instead of pulling the camera in.
Data-driven lock-on
A multi-lock-point target lock-on built on Unreal's Gameplay Targeting System. Reorder selection, filters, and sort tasks to retune targeting with no recompile — switch targets by screen direction and cycle weak points.
Local by design, multiplayer-clean
Every feature runs on the locally-controlled pawn and produces that client's view. There's no camera state to replicate and nothing to desync — lock-on only moves the local control rotation, which already replicates as the player's view.
A closer look
A following camera in five steps, zero tick code
Point your PlayerController at ACrimsonPlayerCameraManager, add a UCrimsonCameraComponent to your pawn, make a third-person mode, and push it once on BeginPlay. The camera sits behind your pawn and follows it — no per-frame camera logic anywhere.
Switch views by pushing modes
Push a tag-keyed override when something starts — aim, mount, cutscene — and pop it when it ends; most-recently-pushed wins. Or override Determine Camera Mode to pick the base view from game state each frame. Overrides always take precedence.
Souls-style lock-on, fully data-driven
Author a targeting preset (selection → filters → sort) and a lock-on config, drop a component on the player and a lockable component on targets, then bind input. One actor can carry several lock points, so players cycle a boss's weak spots. It depends only on the Targeting System — never on your team plugin.
Technical details
- Engine
- UE 5.8
- Platforms
- Windows, Mac, Linux
- Blueprint-ready
- Yes
- C++ required
- No
- Network replicated
- No
- Dependencies
- CrimsonCommon, GameplayTargetingSystem, GameplayTags
- Last updated
- June 2026
Frequently asked questions
Do I need C++ to use it?
Does it work in multiplayer?
Does it depend on other Crimson plugins?
Is the lock-on hard to set up?
How does it relate to the free CrimsonCommon foundation?
Give your game a camera that blends
Set the manager, add the component, push a mode — you've got a smooth third-person camera with no tick code. Then layer in shoulder, zoom, occlusion fade, and data-driven lock-on. Start with the Quick Start or follow the course.
Completes your setup
Built on the free CrimsonCommon foundation, so it pairs cleanly with the rest of the suite: