Structures
This section describes all data structures used throughout the PloxTools: Third Person Camera plugin.
These structures are used to configure camera systems, describe runtime camera state, and pass data through events and API calls. They are used consistently across both Blueprint and C++ workflows.
Each structure is documented with its fields, data types, and references to related enumerations or other structures where applicable.
Focus
FThirdPersonCameraFocusTarget
Represents a focus target used by the camera system.
This structure describes what the camera should focus on. Depending on the target type, it can reference an Actor, Scene Component, socket, or world-space location.
| Field | Type | Description |
|---|---|---|
| Type | EFocusTargetType |
Defines which kind of focus target is used. |
| Actor | AActor* |
Target Actor when the focus type is Actor or Socket. Null for other target types. |
| Component | USceneComponent* |
Target Scene Component when the focus type is Component. Null for other target types. |
| SocketName | FName |
Socket name used when the focus type is Socket. Ignored for other target types. |
| Location | FVector |
World-space location used when the focus type is Location. Ignored for other target types. |
FThirdPersonCameraFocusEvent
Represents the current state of a focus session.
This structure is used by focus-related events and contains the resolved focus target, its distance to the camera pivot, and validity state.
| Field | Type | Description |
|---|---|---|
| Target | FThirdPersonCameraFocusTarget |
Full description of the focus target. |
| Distance To Pivot | float |
Distance from the camera pivot to the focus target location. |
| Is Valid | bool |
Indicates whether the focus target is valid and usable by the camera system. |
FThirdPersonCameraFocusSettings
Defines how the camera behaves while focus is active.
This structure controls focus mode, rotation behavior, auto-clear rules, and soft/hard lock limits.
| Field | Type | Description |
|---|---|---|
| Focus Mode | EFocusMode |
Defines whether focus uses Hard Lock or Soft Lock behavior. |
| Enable Auto Clear By Distance | bool |
If enabled, focus is automatically cleared when the target exceeds the allowed distance. |
| Auto Clear Distance | float |
Maximum allowed distance from pivot to target before focus is cleared. |
| Enable Auto Clear By Visibility | bool |
If enabled, focus is automatically cleared when the target is not visible for too long. |
| Auto Clear Visibility Delay | float |
Time in seconds the target must remain invisible before focus is cleared. |
| Hard Lock Rotation Speed | float |
Controls how quickly the camera rotates toward the focus target in Hard Lock mode. |
| Soft Yaw Limit | float |
Maximum yaw deviation allowed from the focus target in Soft Lock mode before return begins. |
| Soft Pitch Limit | float |
Maximum pitch deviation allowed from the focus target in Soft Lock mode before return begins. |
| Soft Return Speed | float |
Speed at which the camera returns toward the target when Soft Lock limits are exceeded. |
| Enable Hard Yaw Limit | bool |
If enabled, prevents the camera from rotating beyond the hard yaw limit relative to the focus target. |
| Enable Hard Pitch Limit | bool |
If enabled, prevents the camera from rotating beyond the hard pitch limit relative to the focus target. |
| Hard Yaw Limit | float |
Maximum allowed yaw deviation from the focus target when hard yaw clamping is enabled. |
| Hard Pitch Limit | float |
Maximum allowed pitch deviation from the focus target when hard pitch clamping is enabled. |
Framing
FThirdPersonCameraFramingSettings
Defines the base framing of the third-person camera.
This structure controls default camera distance, pivot height, and static framing offsets.
| Field | Type | Description |
|---|---|---|
| Camera Distance | float |
Default distance between the pivot and the camera when unobstructed. |
| Pivot Height | float |
Base vertical height of the camera pivot above the actor origin. |
| Additional Camera Offset | FVector |
Static local camera offset used for framing, such as shoulder positioning. |
| Additional Pivot Offset | FVector |
Additional offset applied to the pivot after pivot height is calculated. |
Rotation
FThirdPersonCameraRotationLagSettings
Defines smoothing behavior for camera rotation.
| Field | Type | Description |
|---|---|---|
| Enable Rotation Lag | bool |
Enables smooth interpolation between current and target rotation. |
| Rotation Lag Speed | float |
Controls how quickly camera rotation follows input. |
FThirdPersonCameraPitchFollowSettings
Defines automatic pitch follow behavior.
| Field | Type | Description |
|---|---|---|
| Enable Pitch Movement Follow | bool |
Enables automatic pitch alignment when the player is not rotating the camera manually. |
| Resting Camera Pitch | float |
Target pitch angle the camera returns to when pitch follow is active. |
| Pitch Follow Speed | float |
Speed at which the camera pitch follows the target pitch. |
| Pitch Follow Ramp Duration | float |
Time in seconds for pitch follow to ramp in smoothly after activation. |
| Pitch Follow Time Threshold | float |
Minimum time without manual pitch input before pitch follow starts. |
| Pitch Follow Angle Threshold | float |
Minimum pitch difference required to trigger pitch follow. |
| Pitch Follow Min Speed Threshold | float |
Minimum horizontal speed required for pitch follow to activate. |
| Enable Vertical Pitch Support | bool |
Enables additional pitch support based on vertical character movement. |
| Max Vertical Pitch Up Offset | float |
Maximum upward pitch offset applied when moving down or falling. |
| Max Vertical Pitch Down Offset | float |
Maximum downward pitch offset applied when moving up. |
| Max Falling Pitch Offset | float |
Maximum pitch offset applied while falling. |
| Enable Ceiling Anticipation | bool |
Enables downward pitch adjustment when a ceiling is detected above the owner. |
| Ceiling Up Check Distance | float |
Maximum vertical distance used to detect a ceiling above the pivot. |
| Ceiling Forward Check Distance | float |
Forward distance used to sample ceiling ahead of the owner, allowing earlier anticipation before reaching obstacles. |
| Max Ceiling Pitch Offset | float |
Maximum pitch offset applied when a ceiling is detected. |
FThirdPersonCameraYawFollowSettings
Defines automatic yaw follow behavior.
| Field | Type | Description |
|---|---|---|
| Enable Yaw Movement Follow | bool |
Enables automatic yaw alignment toward movement direction. |
| Yaw Follow Speed | float |
Speed at which the camera yaw follows movement direction. |
| Yaw Follow Diagonal Strength | float |
Minimum yaw follow strength when moving diagonally. |
| Yaw Follow Ramp Duration | float |
Time in seconds for yaw follow to ramp in smoothly after activation. |
| Yaw Follow Time Threshold | float |
Minimum time without manual yaw input before yaw follow starts. |
| Yaw Follow Angle Threshold | float |
Minimum yaw difference required to trigger yaw follow. |
| Yaw Follow Min Speed Threshold | float |
Minimum horizontal speed required for yaw follow to activate. |
| Reset Yaw Follow Timer On Forward Backward | bool |
If enabled, strictly forward or backward movement resets the yaw follow timer. |
FThirdPersonCameraPitchConstraintSettings
Defines local pitch constraint behavior.
| Field | Type | Description |
|---|---|---|
| Enable Pitch Constraints | bool |
Enables pitch limits with slowdown near the active boundaries. |
| Min Pitch | float |
Minimum allowed vertical look angle. |
| Max Pitch | float |
Maximum allowed vertical look angle. |
| Pitch Constraint Tolerance | float |
Angular distance from the pitch limits where slowdown begins. |
| Pitch Constraints Blend Time | float |
Time used to blend into a new pitch constraint window when needed. |
FThirdPersonCameraYawConstraintSettings
Defines yaw constraint behavior.
| Field | Type | Description |
|---|---|---|
| Enable Yaw Constraints | bool |
Enables yaw limits with slowdown near the active boundaries. |
| Min Yaw | float |
Minimum allowed yaw angle. Supports wrapped intervals. |
| Max Yaw | float |
Maximum allowed yaw angle. Supports wrapped intervals. |
| Yaw Constraint Tolerance | float |
Angular distance from the yaw limits where slowdown begins. |
| Yaw Constraints Blend Time | float |
Time used to blend into a new yaw constraint window when needed. |
Movement Anticipation
FThirdPersonCameraMovementAnticipationSettings
Defines movement-based camera anticipation behavior.
| Field | Type | Description |
|---|---|---|
| Enable Movement Anticipation | bool |
Enables movement-based camera anticipation. |
| Anticipation Strength | float |
Maximum offset applied in movement direction. |
| Anticipation Interp Speed | float |
Interpolation speed of the anticipation offset. |
| Anticipation Lateral Only | bool |
If enabled, anticipation only applies left/right offset relative to the camera. |
| Anticipation Look Input Delay | float |
Delay after last look input before anticipation becomes active again. |
| Anticipation Full Speed | float |
Character speed at which anticipation reaches full strength. |
| Anticipation Activation Interp Speed | float |
Speed at which anticipation activates and deactivates. |
Pitch Effects
FThirdPersonCameraPitchBasedEffectsSettings
Defines camera modifiers driven by pitch.
| Field | Type | Description |
|---|---|---|
| Enable Pitch Camera Distance Modifier | bool |
Enables pitch-based modification of camera distance. |
| Pitch Distance Down Percent | float |
Distance change percentage when looking downward. |
| Pitch Distance Up Percent | float |
Distance change percentage when looking upward. |
| Enable Pitch FOV Modifier | bool |
Enables pitch-based modification of camera FOV. |
| Pitch FOV Down Percent | float |
FOV change percentage when looking downward. |
| Pitch FOV Up Percent | float |
FOV change percentage when looking upward. |
Speed Effects
FThirdPersonCameraSpeedBasedEffectsSettings
Defines camera modifiers driven by owner speed.
| Field | Type | Description |
|---|---|---|
| Speed Modifier Min Speed | float |
Owner speed at which speed-based modifiers start affecting the camera. |
| Speed Modifier Max Speed | float |
Owner speed at which speed-based modifiers reach maximum effect. |
| Enable Speed Modify Camera Distance | bool |
Enables speed-based modification of camera distance. |
| Speed Min Camera Distance | float |
Camera distance offset when speed is at minimum. |
| Speed Max Camera Distance | float |
Camera distance offset when speed is at maximum. |
| Speed Camera Distance Interp Speed | float |
Interpolation speed of the camera distance modifier. |
| Speed Camera Distance Curve | UCurveFloat* |
Optional curve that remaps normalized speed to camera distance offset. |
| Enable Speed Modify FOV | bool |
Enables speed-based modification of FOV. |
| Speed Min FOV | float |
FOV offset when speed is at minimum. |
| Speed Max FOV | float |
FOV offset when speed is at maximum. |
| Speed FOV Interp Speed | float |
Interpolation speed of the FOV modifier. |
| Speed FOV Curve | UCurveFloat* |
Optional curve that remaps normalized speed to FOV offset. |
Camera Shake
FThirdPersonCameraShakeSettings
Defines persistent camera shake behavior.
| Field | Type | Description |
|---|---|---|
| Enable Idle Camera Shake | bool |
Enables subtle idle camera shake while the owner is not moving. |
| Idle Camera Shake Class | TSubclassOf<UCameraShakeBase> |
Camera shake class used for idle shake. |
| Idle Shake Scale | float |
Scale multiplier applied to the idle shake intensity. |
| Enable Movement Camera Shake | bool |
Enables movement-driven camera shake. |
| Movement Camera Shake Class | TSubclassOf<UCameraShakeBase> |
Camera shake class used for movement shake. |
| Movement Shake Min Speed | float |
Owner speed at which movement shake begins. |
| Movement Shake Max Speed | float |
Owner speed at which movement shake reaches maximum intensity. |
| Movement Shake Min Scale | float |
Shake scale applied when owner speed equals the minimum shake speed. |
| Movement Shake Max Scale | float |
Shake scale applied when owner speed reaches the maximum shake speed. |
| Movement Shake Interp Speed | float |
Interpolation speed used to smooth movement shake intensity. |
| Movement Shake Curve | UCurveFloat* |
Optional curve that remaps normalized movement speed to shake intensity. |
Collision
FThirdPersonCameraCollisionSettings
Defines camera collision behavior.
| Field | Type | Description |
|---|---|---|
| Enable Camera Collision | bool |
Enables camera collision handling. |
| Camera Collision Radius | float |
Radius of the collision sphere used between the pivot and the camera. |
| Min Distance From Pivot | float |
Minimum distance the camera is allowed to move toward the pivot. |
| Collision Recovery Speed | float |
Speed at which the camera returns to its normal distance after collision clears. |
| Ignore Characters | bool |
If enabled, camera collision sweeps ignore Character actors. |
| Ignore Collision Tags | TArray<FName> |
Actor tags that should be ignored by camera collision. |
| Collision Compression Speed | float |
Speed at which the camera compresses toward the safe distance after a collision is detected. |
| Collision Distance Smoothing Speed | float |
Smoothing speed applied to the computed safe distance over time. |
| Enable Predictive Avoidance | bool |
Enables predictive avoidance using additional feeler probes. |
| Feeler Yaw Offset | float |
Angular offset in degrees for side feeler probes. |
| Feeler Pairs | int32 |
Number of feeler probe pairs cast around the main camera direction. |
| Feeler Probe Radius | float |
Radius of each predictive avoidance probe. |
Dithering
FThirdPersonCameraDitheringSettings
Defines camera dithering behavior for view obstruction handling.
| Field | Type | Description |
|---|---|---|
| Enable Dithering | bool |
Enables camera dithering for obstructing objects. |
| Dither Owner | bool |
If enabled, the owner character can also fade when the camera is very close or inside the mesh. |
| Dither Attached Actors | bool |
If enabled, actors attached to the owner will also fade when owner dithering is active. Useful for weapons, armor, cosmetic actors, and other attached equipment. |
| Dither Tags | TArray<FName> |
Actor tags that should be considered for dithering when blocking the view. |
| Dither Min Opacity | float |
Minimum opacity applied during dithering. |
| Dither Speed | float |
Speed at which objects fade in and out. |
| Dither Sweep Radius | float |
Sweep radius used to detect objects between the camera and the character. |
| Dither Overlap Radius | float |
Radius around the camera used to detect nearby objects for dithering. |
Debug
FThirdPersonCameraDebugSettings
Defines debug visualization options for the camera system.
| Field | Type | Description |
|---|---|---|
| Debug Pivot | bool |
Draws the camera pivot point. |
| Debug Ideal Camera | bool |
Draws the ideal camera position before collision is applied. |
| Debug Final Camera | bool |
Draws the final camera position after collision and arm interpolation. |
| Debug Collision Sweep | bool |
Draws the main collision sweep from the pivot to the ideal camera position. |
| Debug Collision Hit | bool |
Draws collision hit points detected during camera collision sweeps. |
| Debug Collision Feelers | bool |
Draws predictive avoidance feeler sweeps used to probe collision around the main camera direction. |
| Debug Focus | bool |
Draws the focus target location and a line from the pivot to the target. |
Spline
FThirdPersonCameraSplineSettings
Defines how the camera behaves while a spline camera is active.
| Field | Type | Description |
|---|---|---|
| Mode | EThirdPersonCameraSplineMode |
Determines whether the spline uses time-based playback or tethered movement. |
| Focus Owner | bool |
If enabled, the spline camera rotates to follow the owner. Ignored when Focus Target is set. |
| Focus Target | AActor* |
Specific Actor for the spline camera to focus on. Overrides player focus when set. |
| Focus Offset | FVector |
World-space offset added to the focus point. |
| Ease In Duration | float |
Time in seconds used to blend from gameplay camera into spline camera. |
| Ease Out Duration | float |
Time in seconds used to blend from spline camera back to gameplay camera. |
| Play Rate | float |
Playback speed multiplier used in Timed mode. |
| Loop | bool |
If enabled, the spline loops continuously in Timed mode. |
| Tether Type | EThirdPersonCameraSplineTetherType |
Determines how the camera maintains distance relative to the player in Tethered mode. |
| Min Distance From Owner | float |
Minimum distance the camera should maintain from the player for distance-constrained tether types. |
| Enable Tethered Rotation Soft Lock | bool |
Enables limited player-controlled rotation offsets while in Tethered mode. |
| Tethered Rotation Yaw Limit | float |
Maximum yaw offset allowed on top of spline camera rotation while tethered soft lock is enabled. |
| Tethered Rotation Pitch Limit | float |
Maximum pitch offset allowed on top of spline camera rotation while tethered soft lock is enabled. |
| Tethered Rotation Return Speed | float |
Speed at which manual tethered rotation returns back to zero after input stops. |
| Tethered Rotation Follow Speed | float |
Speed at which visible camera rotation follows the internally tracked manual tethered rotation offset. |