CamForge
Data-driven third and first person camera manager: state-based settings with smooth blending, collision, shoulder swap, target lock-on, occlusion fade, speed-based FOV aβ¦
Highlights
All 15 features βCamForge replaces the view of your player with a complete, data-driven camera rig. Set your Player Controller's camera manager class to CamForge Player Camera Manager, add the CamForge Target component to your pawn, and you have a polished over-the-shoulder third person camera and a first person camera that work out of the box - no spring arm, no camera component and no Blueprint wiring required.
Every camera value comes from a CamForge Settings data asset and is chosen by the state of the view target: view mode (third or first person), rotation mode (velocity direction, looking direction or aiming), stance (standing or crouching), gait (walking, running or sprinting) and optional named action states such as Rolling or Mantling. Rules pick the most specific match, and every change of state blends smoothly over its own blend time with an optional easing curve. Each set controls arm length, camera offset, pivot offset, per-axis pivot lag, rotation lag, field of view and view rotation limits.
On top of that CamForge adds the features action games need: shoulder swap with a smooth blend, target lock-on that keeps both the player and the target in frame and breaks on distance or lost line of sight, occlusion fade that hides or fades walls and props between the camera and the player, a speed-based field of view kick, and smooth zoom from the mouse wheel or a gamepad with a range per view mode. Camera collision pulls the camera in front of geometry and eases it back out.
Stance and gait are detected automatically from the character's crouch state and speed. For full control, implement the CamForge Target interface on your pawn and provide the camera state, pivot, first person location and collision trace yourself, in Blueprint or C++. Events report view mode, rotation mode, state, shoulder and lock-on changes, and the CamForge.Debug console variable draws the pivot, traces, collision and faded occluders.
CamForge is part of the Alpha XP camera collection for Unreal Engine 4.27 and 5.8. Every feature is exposed to Blueprints and C++, it ships with styled HTML documentation, and it is compiled and verified warning-free against clean UE 4.27 and UE 5.8 projects.
Key features
- Player camera manager that computes the final view every frame from a data asset, with
- Camera settings by view mode, rotation mode, stance and gait (most specific rule wins)
- Smooth blending between settings with per-set blend time and optional easing curve
- Arm length, camera offset, pivot offset, per-axis pivot lag, rotation lag, field of
- Third person and first person (mesh socket or eye height) with blended transitions
- Camera collision: sphere sweep on a configurable channel and radius, instant pull-in
- Shoulder swap: left, center and right with a smooth blend
- Target lock-on: soft yaw and pitch toward the target, framing of player and target,
- Occlusion fade: hide occluders for the local player or drive a scalar material
- Speed-based dynamic FOV with min/max speed or a curve, smoothed
- Smooth zoom from mouse wheel or gamepad with a min/max arm length per view mode
- CamForge Target component: zero-code support for any pawn (crouch-based stance,
- CamForge Target interface (Blueprint Native Events) for full control from Blueprint or C++
- Events: view mode, rotation mode, camera state, shoulder and lock-on changes
- Debug drawing with the CamForge.Debug console variable
Blueprint & C++ API
The API is organised into these entry points:
| Class | Type | Nodes | Use it for |
|---|---|---|---|
| CamForgePlayerCameraManager | Player Camera Manager | 27 | Camera manager that computes the final view every frame from a CamForge Settings asset: state-based settings with blending, pivot and rotation lag, collision, f⦠|
| CamForgeTargetComponent | Actor component | 11 | Add to any pawn to give CamForge a camera state, a pivot, a first person location and optional trace settings without writing code. |
| CamForgeLibrary | Function library | 7 | Blueprint helpers for CamForge. |
| CamForgeSettings | Data asset | 2 | Camera settings for CamForge. Create one with Add > Miscellaneous > Data Asset > CamForge Settings and assign it to the CamForge Settings property of the camera manager. |
Callable runs when executed Β· Pure no exec pin, returns a value
CamForge 4
| Node | Type | Available on | Description |
|---|---|---|---|
| Get Cam Forge Camera Manager(Player Index: Integer) β Cam Forge Player Camera Manager | Pure | Static | The CamForge camera manager of a local player, or None when that player uses another camera manager. |
| Get Cam Forge Camera Manager From Controller(Player Controller: Player Controller) β Cam Forge Player Camera Manager | Pure | Static | The CamForge camera manager of a player controller, or None. |
| Get Cam Forge Target Component(Actor: Actor) β Cam Forge Target Component | Pure | Static | The CamForge Target component of an actor, or None. |
| Implements Cam Forge Target(Actor: Actor) β Boolean | Pure | Static | True when the actor implements the CamForge Target interface. |
Settings 7
| Node | Type | Available on | Description |
|---|---|---|---|
| Blend Camera Settings(A: Cam Forge Camera Settings, B: Cam Forge Camera Settings, Alpha: Float) β Cam Forge Camera Settings | Pure | Static | Blends two sets of camera values (Alpha 0 = A, 1 = B). |
| Set Cam Forge Settings(New Settings: Cam Forge Settings) | Callable | Player Camera Manager | Replaces the settings asset (None = built-in defaults). The camera blends to the new values. |
| Set Cam Forge Enabled(Enabled: Boolean) | Callable | Player Camera Manager | Enables or disables CamForge (disabled = the engine's default view). |
| Get Current Camera Settings() β Cam Forge Camera Settings | Pure | Player Camera Manager | The blended camera values of the current view target. |
| Get Current Settings Name() β Name | Pure | Player Camera Manager | Name of the settings set the current state resolved to. |
| Resolve Camera Settings(State: Cam Forge Camera State) β Cam Forge Camera Settings | Pure | Data asset | Returns the camera values CamForge uses for a camera state. |
| Resolve Settings Name(State: Cam Forge Camera State) β Name | Pure | Data asset | Returns a readable name of the settings set a state resolves to (rule name, action state, First Person or Third Person). |
State 11
| Node | Type | Available on | Description |
|---|---|---|---|
| Camera States Equal(A: Cam Forge Camera State, B: Cam Forge Camera State) β Boolean | Pure | Static | True when two camera states are identical. |
| Get Current Camera State() β Cam Forge Camera State | Pure | Player Camera Manager | Camera state of the current view target as evaluated in the last frame. |
| Set View Mode(New View Mode: Cam Forge View Mode) | Callable | Player Camera Manager Component | Sets the view mode. |
| Toggle View Mode | Callable | Player Camera Manager Component | Toggles between third and first person. |
| Set Rotation Mode(New Rotation Mode: Cam Forge Rotation Mode) | Callable | Player Camera Manager Component | Sets the rotation mode. |
| Set Stance(New Stance: Cam Forge Stance) | Callable | Player Camera Manager Component | Sets the stance (turns automatic stance off). |
| Set Gait(New Gait: Cam Forge Gait) | Callable | Player Camera Manager Component | Sets the gait (turns automatic gait off). |
| Set Action State(New Action State: Name) | Callable | Player Camera Manager Component | Sets the action state (None clears it). |
| Clear Action State | Callable | Player Camera Manager Component | Clears the action state. |
| Snap Cam Forge Camera | Callable | Player Camera Manager | Skips all lag and blends for one frame (call after a teleport or a cut). |
| Get First Person Alpha() β Float | Pure | Player Camera Manager | 0 = fully third person, 1 = fully first person (values in between while blending). |
Debug 1
| Node | Type | Available on | Description |
|---|---|---|---|
| Set Cam Forge Debug(Level: Integer) | Callable | Static | Sets the CamForge.Debug console variable (0 = off, 1 = shapes, 2 = shapes and on-screen state). Development builds only. |
Shoulder 3
| Node | Type | Available on | Description |
|---|---|---|---|
| Swap Shoulder | Callable | Player Camera Manager | Swaps between the left and right shoulder (from Center it goes to the side opposite the last one used). |
| Set Shoulder(New Shoulder: Cam Forge Shoulder) | Callable | Player Camera Manager | Sets the shoulder side. |
| Get Shoulder() β Cam Forge Shoulder | Pure | Player Camera Manager | The requested shoulder side. |
Lock On 5
| Node | Type | Available on | Description |
|---|---|---|---|
| Lock On To(New Lock Target: Actor) β Boolean | Callable | Player Camera Manager | Locks the camera onto an actor. Fails (returns false) when the actor is invalid, is the view target, or is out of range. |
| Clear Lock On | Callable | Player Camera Manager | |
| Is Locked On() β Boolean | Pure | Player Camera Manager | True while locked onto a target. |
| Get Lock On Target() β Actor | Pure | Player Camera Manager | The locked target, or None. |
| Find Best Lock On Target(Candidates: Array of Actor, Max Angle Degrees: Float) β Actor | Callable | Player Camera Manager | Picks the candidate closest to the view direction within Max Angle Degrees and the lock-on range. |
Zoom 3
| Node | Type | Available on | Description |
|---|---|---|---|
| Add Zoom Input(Value: Float) | Callable | Player Camera Manager | Adds zoom input (mouse wheel or gamepad axis). Positive values zoom in. |
| Reset Zoom(Both View Modes: Boolean) | Callable | Player Camera Manager | Returns the zoom of the current view mode (or of both) to the settings' arm length. |
| Get Current Arm Length() β Float | Pure | Player Camera Manager | Arm length used in the last frame (after zoom and lock-on). |
Dynamic FOV 1
| Node | Type | Available on | Description |
|---|---|---|---|
| Get Current FOV Kick() β Float | Pure | Player Camera Manager | Field of view currently added by the speed-based FOV. |
Pivot 1
| Node | Type | Available on | Description |
|---|---|---|---|
| Get Pivot Location() β Vector | Pure | Player Camera Manager | Smoothed pivot location of the last frame. |
Target 4
| Node | Type | Available on | Description |
|---|---|---|---|
| Get Camera State() β Cam Forge Camera State | Pure | Component | Current camera state, with automatic stance and gait applied. |
| Get Pivot Transform() β Transform | Pure | Component | Transform the third person pivot follows. |
| Get First Person Location() β Vector | Pure | Component | World location of the first person camera. |
| Get Trace Params() β Boolean, Out Trace Origin, Out Trace Radius, Out Trace Channel | Callable | Component | Returns true and the trace values when Override Trace Params is on. |
Events & delegates
Bind these in Blueprint (drag off the object β Bind Event) or with AddDynamic in C++.
| Event | Parameters | When it fires |
|---|---|---|
| On View Mode Changed | New View Mode (Cam Forge View Mode), Previous View Mode (Cam Forge View Mode) | Fires when the view target's view mode changes. |
| On Rotation Mode Changed | New Rotation Mode (Cam Forge Rotation Mode), Previous Rotation Mode (Cam Forge Rotation Mode) | Fires when the view target's rotation mode changes. |
| On Camera State Changed | New State (Cam Forge Camera State), Previous State (Cam Forge Camera State) | Fires when any field of the camera state changes (view mode, rotation mode, stance, gait or action state). |
| On Shoulder Changed | New Shoulder (Cam Forge Shoulder) | Fires when the shoulder side is changed. |
| On Lock On Changed | New Target (Actor), Previous Target (Actor) | Fires when a lock-on starts, switches target or ends (New Target is None when it ends). |
Options & enums
| Enum | Values |
|---|---|
| View Mode | Third Person First Person |
| Rotation Mode | Velocity Direction Looking Direction Aiming |
| Stance | Standing Crouching |
| Gait | Walking Running Sprinting |
| Shoulder | Left Center Right |
| Occlusion Mode | Hide For Player Material Scalar Parameter |
Compatibility
One ready-made build per engine version is included in the download β copy the one that matches your project.
| Platform | Supported in |
|---|---|
| Windows | Editor & packaged |
| macOS | Editor & packaged |
| Module | Type | Loading phase |
|---|---|---|
| CamForge | Runtime | Default |
Technical details
| Code modules | CamForge (Runtime) |
|---|---|
| Blueprints | 0 Β· C++ classes: 4 |
| Network replicated | No |
| Development platforms | Windows: Yes, Mac: Yes |
| Target build platforms | Win64, Mac |
| Third-party software | No |
| Engine versions | Unreal Engine 4.27 Β· 5.8 β a build for each is included |
| C++ classes | 5 + 9 structs |
| Blueprint nodes | 40 |
| Events | 5 |
| Documentation | Documentation.html (in the download) |
| Download | CamForge.zip Β· 180 KB |
| Version | v1.0.0 |
What's in the download
| File | What it is |
|---|---|
| CamForge 4.27.zip | Plugin build for Unreal Engine 4.27 |
| CamForge 5.8.zip | Plugin build for Unreal Engine 5.8 |
| Documentation.html | Documentation (open in a browser) |
Quick start
- Unzip the download and pick the build that matches your engine (4.27 Β· 5.8).
- Copy the CamForge folder into your project's Plugins/ folder (create it if needed).
- Open the project, enable CamForge under Edit βΊ Plugins and restart the editor.
- Right-click in any Blueprint graph and search CamForge β or include the public headers from C++.
- Package for your target platform (Windows, macOS).
Good to know
Built and verified warning-free for Unreal Engine 4.27 and 5.8. C++ classes: CamForge Player Camera Manager, CamForge Settings (data asset), CamForge Target component and CamForge Library, plus the CamForge Target interface. The camera is computed locally for each player and is not replicated. No content assets are included; all defaults live in C++. The module is enabled for Win64 and Mac; the code is platform-independent engine C++ with no OS-specific calls. Developed and maintained by Alpha XP.
Everything included
- Player camera manager that computes the final view every frame from a data asset, withβ¦
- Camera settings by view mode, rotation mode, stance and gait (most specific rule wins)β¦
- Smooth blending between settings with per-set blend time and optional easing curve
- Arm length, camera offset, pivot offset, per-axis pivot lag, rotation lag, field ofβ¦
- Third person and first person (mesh socket or eye height) with blended transitions
- Camera collision: sphere sweep on a configurable channel and radius, instant pull-inβ¦
- Shoulder swap: left, center and right with a smooth blend
- Target lock-on: soft yaw and pitch toward the target, framing of player and target,β¦
- Occlusion fade: hide occluders for the local player or drive a scalar materialβ¦
- Speed-based dynamic FOV with min/max speed or a curve, smoothed
- Smooth zoom from mouse wheel or gamepad with a min/max arm length per view mode
- CamForge Target component: zero-code support for any pawn (crouch-based stance,β¦
- CamForge Target interface (Blueprint Native Events) for full control from Blueprint or C++
- Events: view mode, rotation mode, camera state, shoulder and lock-on changes
- Debug drawing with the CamForge.Debug console variable
Platforms
Requirements
- Unreal Engine 4.27 and 5.8
- Develop on Windows (Win64)
- Blueprints and C++
In the download
Personal
One non-commercial project
- 1 activation seat
- 1 year of updates
- One end product
- Non-commercial use
- Community support
- 14-day refund window
Commercial
Ship paid products
- 5 activation seats
- 1 year of updates
- One paid end product
- Unlimited end users
- Priority support
- Source files
- 14-day refund window
Extended
Resell & white-label
- Unlimited activation seats
- Lifetime updates
- Unlimited end products
- White-label & resell
- 1-hour SLA
- Seat-free team use
- 14-day refund window
One purchase per product, no subscription. Each licence comes with a signed key β 1 seat on Personal, 5 seats on Commercial, unlimited seats on Extended. Paid licences can be refunded within 14 days from your order page.
- v1.0.0Latest
- Unreal Engine 4.27 and 5.8
- Blueprint and C++ API, HTML documentation
Be the first to review CamForge β reviews come from customers who bought it, so every one is a verified purchase.
Frequently asked
How do I get the files after paying?
Straight after checkout you land on your order page with the download button and your licence key. A receipt is emailed to you, and every order stays in My library.
Which licence do I need?
Personal β One non-commercial project. Commercial β Ship paid products. Extended β Resell & white-label. The Licences tab compares them side by side.
On how many devices can I activate it?
1 seat on Personal, 5 seats on Commercial, unlimited seats on Extended.
How long do I get updates?
Personal: 1 year of updates, Commercial: 1 year of updates, Extended: lifetime updates, counted from your purchase.
Can I get a refund?
Yes β paid licences can be refunded within 14 days, straight from your order page.
Is the download safe?
The file was scanned with ClamAV when it was published. Its SHA-256 checksum is listed under Features β In the download, so you can verify the file you receive.
Do I need an account?
No. Checkout only needs your email. Signing in keeps all your purchases, keys and downloads together in My library.
More like this
AudioLens
Real-time audio analysis: FFT spectrum, onset and beat detection, and a full set of time- and frequency-domain descriptors..
β β β β β No reviews yetTTechHarbour$14.00BlueprintTCP
BlueprintTCP lets you connect to any TCP server and exchange data entirely from Blueprints β no C++ and no networking boilerplate.
β β β β β No reviews yetTTechHarbour$12.99BluetoothLink
Bluetooth Low Energy for Unreal - scan, connect, read, write and subscribe to BLE devices on Android and iOS.
β β β β β No reviews yetTTechHarbour$11.99ClusterLink
SocketCluster realtime client for Unreal - pub/sub channels, auth engine and JSON codec, usable from Blueprints.
β β β β β No reviews yetTTechHarbour$11.99