Skip to content

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.
DistanceToPivot float Distance from the camera pivot to the focus target location.
bIsValid 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
FocusMode EFocusMode Defines whether focus uses Hard Lock or Soft Lock behavior.
bEnableAutoClearByDistance bool If enabled, focus is automatically cleared when the target exceeds the allowed distance.
AutoClearDistance float Maximum allowed distance from pivot to target before focus is cleared.
bEnableAutoClearByVisibility bool If enabled, focus is automatically cleared when the target is not visible for too long.
AutoClearVisibilityDelay float Time in seconds the target must remain invisible before focus is cleared.
HardLockRotationSpeed float Controls how quickly the camera rotates toward the focus target in Hard Lock mode
SoftYawLimit float Maximum yaw deviation allowed from the focus target in Soft Lock mode before return begins.
SoftPitchLimit float Maximum pitch deviation allowed from the focus target in Soft Lock mode before return begins.
SoftReturnSpeed float Speed at which the camera returns toward the target when Soft Lock limits are exceeded.
bEnableHardYawLimit bool If enabled, prevents the camera from rotating beyond the hard yaw limit relative to the focus target.
bEnableHardPitchLimit bool If enabled, prevents the camera from rotating beyond the hard pitch limit relative to the focus target.
HardYawLimit float Maximum allowed yaw deviation from the focus target when hard yaw clamping is enabled.
HardPitchLimit 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
CameraDistance float Default distance between the pivot and the camera when unobstructed.
PivotHeight float Base vertical height of the camera pivot above the actor origin.
AdditionalCameraOffset FVector Static local camera offset used for framing, such as shoulder positioning.
AdditionalPivotOffset FVector Additional offset applied to the pivot after pivot height is calculated.

Rotation

FThirdPersonCameraRotationLagSettings

Defines smoothing behavior for camera rotation.

This structure controls whether rotation lag is enabled and how quickly the camera follows input.

Field Type Description
bEnableRotationLag bool Enables smooth interpolation between current and target rotation.
RotationLagSpeed float Controls how quickly camera rotation follows input.

FThirdPersonCameraPitchFollowSettings

Defines automatic pitch follow behavior.

This structure controls resting pitch alignment, follow timing, vertical support, and ceiling anticipation.

Field Type Description
bEnablePitchMovementFollow bool Enables automatic pitch alignment when the player is not rotating the camera manually.
RestingCameraPitch float Target pitch angle the camera returns to when pitch follow is active.
PitchFollowSpeed float Speed at which the camera pitch follows the target pitch.
PitchFollowRampDuration float Time in seconds for pitch follow to ramp in smoothly after activation.
PitchFollowTimeThreshold float Minimum time without manual pitch input before pitch follow starts.
PitchFollowAngleThreshold float Minimum pitch difference required to trigger pitch follow.
PitchFollowMinSpeedThreshold float Minimum horizontal speed required for pitch follow to activate.
bEnableVerticalPitchSupport bool Enables additional pitch support based on vertical character movement.
MaxVerticalPitchUpOffset float Maximum upward pitch offset applied when moving down or falling.
MaxVerticalPitchDownOffset float Maximum downward pitch offset applied when moving up.
MaxFallingPitchOffset float Maximum pitch offset applied while falling.
bEnableCeilingAnticipation bool Enables downward pitch adjustment when a ceiling is detected above the character.
CeilingCheckDistance float Maximum distance used to detect a ceiling above the pivot.
MaxCeilingPitchOffset float Maximum pitch offset applied when a ceiling is directly above.

FThirdPersonCameraYawFollowSettings

Defines automatic yaw follow behavior.

This structure controls how the camera aligns toward movement direction when the player is not rotating the camera manually.

Field Type Description
bEnableYawMovementFollow bool Enables automatic yaw alignment toward movement direction.
YawFollowSpeed float Speed at which the camera yaw follows movement direction.
YawFollowDiagonalStrength float Minimum yaw follow strength when moving diagonally.
YawFollowRampDuration float Time in seconds for yaw follow to ramp in smoothly after activation.
YawFollowTimeThreshold float Minimum time without manual yaw input before yaw follow starts.
YawFollowAngleThreshold float Minimum yaw difference required to trigger yaw follow.
YawFollowMinSpeedThreshold float Minimum horizontal speed required for yaw follow to activate.
bResetYawFollowTimerOnForwardBackward bool If enabled, strictly forward or backward movement resets the yaw follow timer.

FThirdPersonCameraPitchConstraintSettings

Defines local pitch constraint behavior.

This structure controls pitch limits, soft slowdown near boundaries, and blending when the allowed pitch range changes.

Field Type Description
bEnablePitchConstraints bool Enables pitch limits with slowdown near the active boundaries.
MinPitch float Minimum allowed vertical look angle.
MaxPitch float Maximum allowed vertical look angle.
PitchConstraintTolerance float Angular distance from the pitch limits where slowdown begins.
PitchConstraintsBlendTime float Time used to blend into a new pitch constraint window when needed.

FThirdPersonCameraYawConstraintSettings

Defines yaw constraint behavior.

This structure controls yaw limits, soft slowdown near boundaries, and blending when the allowed yaw range changes.

Field Type Description
bEnableYawConstraints bool Enables yaw limits with slowdown near the active boundaries.
MinYaw float Minimum allowed yaw angle. Supports wrapped intervals.
MaxYaw float Maximum allowed yaw angle. Supports wrapped intervals.
YawConstraintTolerance float Angular distance from the yaw limits where slowdown begins.
YawConstraintsBlendTime float Time used to blend into a new yaw constraint window when needed.

Movement Anticipation

FThirdPersonCameraMovementAnticipationSettings

Defines movement-based camera anticipation behavior.

This structure controls how the camera offsets itself in response to character movement direction and speed.

Field Type Description
bEnableMovementAnticipation bool Enables movement-based camera anticipation.
AnticipationStrength float Maximum offset applied in movement direction.
AnticipationInterpSpeed float Interpolation speed of the anticipation offset.
bAnticipationLateralOnly bool If enabled, anticipation only applies left/right offset relative to the camera.
AnticipationLookInputDelay float Delay after last look input before anticipation becomes active again.
AnticipationFullSpeed float Character speed at which anticipation reaches full strength.
AnticipationActivationInterpSpeed float Speed at which anticipation activates and deactivates.

Pitch Effects

FThirdPersonCameraPitchEffectsSettings

Defines camera modifiers driven by pitch.

This structure controls camera distance and FOV changes based on the current camera pitch.

Field Type Description
bEnablePitchCameraDistanceModifier bool Enables pitch-based modification of camera distance.
PitchDistanceDownPercent float Distance change percentage when looking downward.
PitchDistanceUpPercent float Distance change percentage when looking upward.
bEnablePitchFOVModifier bool Enables pitch-based modification of camera FOV.
PitchFOVDownPercent float FOV change percentage when looking downward.
PitchFOVUpPercent float FOV change percentage when looking upward.

Speed Effects

FThirdPersonCameraSpeedEffectsSettings

Defines camera modifiers driven by character speed.

This structure controls camera distance and FOV changes based on character movement speed, including optional response curves.

Field Type Description
SpeedModifierMinSpeed float Character speed at which speed-based modifiers start affecting the camera.
SpeedModifierMaxSpeed float Character speed at which speed-based modifiers reach maximum effect.
bSpeedModifyCameraDistance bool Enables speed-based modification of camera distance.
SpeedMinCameraDistance float Camera distance offset when speed is at minimum.
SpeedMaxCameraDistance float Camera distance offset when speed is at maximum.
SpeedCameraDistanceInterpSpeed float Interpolation speed of the camera distance modifier.
SpeedCameraDistanceCurve UCurveFloat* Optional curve that remaps normalized speed to camera distance offset.
bSpeedModifyFOV bool Enables speed-based modification of FOV.
SpeedMinFOV float FOV offset when speed is at minimum.
SpeedMaxFOV float FOV offset when speed is at maximum.
SpeedFOVInterpSpeed float Interpolation speed of the FOV modifier.
SpeedFOVCurve UCurveFloat* Optional curve that remaps normalized speed to FOV offset.

Camera Shake

FThirdPersonCameraShakeSettings

Defines persistent camera shake behavior.

This structure controls idle shake and movement-driven shake, including scales, speed thresholds, and optional curves.

Field Type Description
bEnableIdleCameraShake bool Enables subtle idle camera shake while the character is not moving.
IdleCameraShakeClass TSubclassOf<UCameraShakeBase> Camera shake class used for idle shake.
IdleShakeScale float Scale multiplier applied to the idle shake intensity.
bEnableMovementCameraShake bool Enables movement-driven camera shake.
MovementCameraShakeClass TSubclassOf<UCameraShakeBase> Camera shake class used for movement shake.
MovementShakeMinSpeed float Character speed at which movement shake begins.
MovementShakeMaxSpeed float Character speed at which movement shake reaches maximum intensity.
MovementShakeMinScale float Shake scale applied when character speed equals the minimum shake speed.
MovementShakeMaxScale float Shake scale applied when character speed reaches the maximum shake speed.
MovementShakeInterpSpeed float Interpolation speed used to smooth movement shake intensity.
MovementShakeCurve UCurveFloat* Optional curve that remaps normalized movement speed to shake intensity.

Collision

FThirdPersonCameraCollisionSettings

Defines camera collision behavior.

This structure controls obstacle detection, compression and recovery behavior, ignored targets, and predictive avoidance settings.

Field Type Description
bEnableCameraCollision bool Enables camera collision handling.
CameraCollisionRadius float Radius of the collision sphere used between the pivot and the camera.
MinDistanceFromPivot float Minimum distance the camera is allowed to move toward the pivot.
CollisionRecoverySpeed float Speed at which the camera returns to its normal distance after collision clears.
bIgnoreCharacters bool If enabled, camera collision sweeps ignore Character actors.
IgnoreCollisionTags TArray<FName> Actor tags that should be ignored by camera collision.
CollisionCompressionSpeed float Speed at which the camera compresses toward the safe distance after a collision is detected.
CollisionDistanceSmoothingSpeed float Smoothing speed applied to the computed safe distance over time.
bEnablePredictiveAvoidance bool Enables predictive avoidance using additional feeler probes.
FeelerYawOffset float Angular offset in degrees for side feeler probes.
FeelerPairs int32 Number of feeler probe pairs cast around the main camera direction.
FeelerProbeRadius float Radius of each predictive avoidance probe.

Dithering

FThirdPersonCameraDitheringSettings

Defines camera dithering behavior for view obstruction handling.

This structure controls whether blocking objects fade, how transparent they become, and how detection is performed.

Field Type Description
bEnableDithering bool Enables camera dithering for obstructing objects.
bDitherOwner bool If enabled, the owner character can also fade when the camera is very close or inside the mesh.
DitherTags TArray<FName> Actor tags that should be considered for dithering when blocking the view.
DitherMinOpacity float Minimum opacity applied during dithering.
DitherSpeed float Speed at which objects fade in and out.
DitherSweepRadius float Sweep radius used to detect objects between the camera and the character.
DitherOverlapRadius float Radius around the camera used to detect nearby objects for dithering.

Debug

FThirdPersonCameraDebugSettings

Defines debug visualization options for the camera system.

This structure controls which runtime camera elements are drawn for debugging.

Field Type Description
bDebugPivot bool Draws the camera pivot point.
bDebugIdealCamera bool Draws the ideal camera position before collision is applied.
bDebugFinalCamera bool Draws the final camera position after collision and arm interpolation.
bDebugCollisionSweep bool Draws the main collision sweep from the pivot to the ideal camera position.
bDebugCollisionHit bool Draws collision hit points detected during camera collision sweeps.
bDebugCollisionFeelers bool Draws predictive avoidance feeler sweeps used to probe collision around the main camera direction.
bDebugFocus 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.

This structure controls spline playback mode, focus behavior, ease transitions, timed playback, and tethered camera rules.

Field Type Description
Mode EThirdPersonCameraSplineMode Determines whether the spline uses time-based playback or tethered movement.
bFocusPlayerCharacter bool If enabled, the spline camera rotates to follow the player character. Ignored when FocusTarget is set.
FocusTarget AActor* Specific Actor for the spline camera to focus on. Overrides bFocusPlayerCharacter when set.
FocusOffset FVector World-space offset added to the focus point when using a focus target or player character focus.
EaseInDuration float Time in seconds used to blend from gameplay camera into spline camera.
EaseOutDuration float Time in seconds used to blend from spline camera back to gameplay camera.
PlayRate float Playback speed multiplier used in Timed mode.
bLoop bool If enabled, the spline loops continuously in Timed mode.
TetherType EThirdPersonCameraSplineTetherType Determines how the camera maintains distance relative to the player in Tethered mode.
MinDistanceFromOwner float Minimum distance the camera should maintain from the player for distance-constrained tether types.
bEnableTetheredRotationSoftLock bool Enables limited player-controlled rotation offsets while in Tethered mode.
TetheredRotationYawLimit float Maximum yaw offset allowed on top of spline camera rotation while tethered soft lock is enabled.
TetheredRotationPitchLimit float Maximum pitch offset allowed on top of spline camera rotation while tethered soft lock is enabled.
TetheredRotationReturnSpeed float Speed at which manual tethered rotation returns back to zero after input stops.
TetheredRotationFollowSpeed float Speed at which visible camera rotation follows the internally tracked manual tethered rotation offset.