BP_SprintingComponent
This page describes the Sprinting Component that ships with Motion. The Sprinting Component provides an alternative movement mode for players. When holding (or pressing) the Sprint Key, the player accelerates towards a sprint bonus speed that can be configured in this component.
The component also detects if the player is moving backwards or sideways, either aborting the sprint or applying a speed penalty for moving sideways.
While the player sprints, a camera shake is applied.
Dependencies
requires BP_WalkingComponent.
requires BP_CrouchingComponent.
Methods
Manipulators
CalculateCurrentPenalty
Gets the current penalty and applies it, unless the newly calculated penalty is near to zero
LerpTowardsSprintingSpeed
Applies the current speed bonus
ResetPenalty
Resets penalty related variables
ResetSprint
Resets sprint state and speed
UpdateDeltaSeconds
Updates progress on sprint shake camera curve, timer for holding the key down & penalty timer if penalized
UpdateMovementDirection
Determines which direction the player is moving towards to by parsing their normalized direction
UpdateTargetCameraRotation
Gets the current position of the camera shake curve and updates the target rotation
ValidateActiveDeltaSeconds
Checks if the sprint shake curve progress is at its peak and resets it then to ensure looped camera movement
ValidateMovement
Updates status of player being able to sprint and applies / resets penalty according to movement changes
Event Handler
HandleOnEventBeginPlay
Called when "Event Begin Play" gets called. Sets up events and gets component references.
HandleOnEventTick
Core logic handling. See detailed comments.
HandleOnSprintPressed
When pressing the sprint key, reset timers & toggle sprint key state
HandleOnSprintReleased
When releasing the sprint key, reset sprint timers, state & values
HandleOnVelocityStop
Called when player stops moving. Resets sprinting.
Debug
PrintDebugInformation
Prints useful information on the screen. Helpful for debugging.
Variables
Configuration
SprintCameraLocationOffsetAnimationTime
The amount of time it should take to animate towards the SprintCameraLocationOffset
SprintCameraLocationOffset
The offset that should be lerped towards to when the user starts sprinting.
SprintAccelerationCurve
The curve float used to accelerate the player into sprinting to SprintSpeed
SprintShakeCurve
The curve vector used to move the camera when sprinting
bIsInputToggle
If true, the input key is used as toggle. This is especially useful for use on gamepads where it is more tiring to hold down a button.
bShowDebugInformation
If ticked, various useful variables will be printed on the screen to help with debugging
bIsEnabled
If unticked, the component will only print debug data and not update any other values.
Constants
CurveType
Type Identifier for the curves created by this component.
Default
WalkingComponent
Reference to the crouch component
CrouchComponent
Reference to the crouch component
States
bHasBeenPenalized
If true, the player has already been penalized for a penalized movement action.
bIsPenalized
If true, the sprint speed is currently penalized (e.g. due to penalized movement)
bCanSprint
If true, all conditions are met that would allow the player to start sprinting
bIsSprinting
If true, the player is sprinting
bIsHoldingSprintKey
If true, the player is holding down the sprint key
Component Data
CurrentEnumCurveResult
The current position of the curve
CurrentMovementDirection
The current direction the player is moving towards to
CurrentTargetRotation
The current requested camera offset for this compoenent
Last updated