BP_CrouchingComponent
This page describes the Crouching Component that ships with Motion. The Crouching Component provides smooth crouching and uncrouching for characters.
It also provides floor & ceiling detection to prevent the capsule from expanding too much when uncrouching, but still allowing for partial uncrouching if the ceiling height allows it. A speed penalty is applied when being fully crouched.
Dependencies
requires BP_JumpingComponent.
Methods
Crouch Handlers
DoCrouch
Logic for Crouching. See comments for details.
DoUncrouch
Logic for Uncrouching. See comments for details.
HandleCrouchInput
Handles input set by player input
SetCrouch
Updates crouch states. Used by input events.
Getters
GetCapsuleOverlapCheckResult
Checks if the player would be still enroached if we'd adjust their position
GetCharacterVelocity
Returns the player speed in units per second.
Event Handler
HandleOnCrouchCrouched
Called whenever the crouch position updates. Calls event for other components that listen to crouch changes. Useful for implementing sliding.
HandleOnCrouchPressed
Upon crouch key-press, mark the character as wanting to crouch
HandleOnCrouchReleased
When releasing the crouch button, update crouch intention state
HandleOnCrouchUncrouched
Called whenever the uncrouch position updates. Calls event for other components that listen to uncrouch changes. Useful for implementing sliding.
HandleOnEventBeginPlay
Called when "Event Begin Play" gets called. Sets up events and saves base values.
HandleOnEventTick
Core logic handlers. Handles Crouch Inputs and prints Debug information
HandleOnMovementModeChanged
Handles all Movement related changes
Event Dispatchers
OnCrouchUpdate
Triggered when the capsule size changes due to crouching or uncrouching.
OnCrouchFullyCrouched
Triggered when the player is fully crouched.
OnCrouchFullyUncrouched
Triggered when the player is fully uncrouched.
Debug
PrintDebugInformation
Prints useful information on the screen. Helpful for debugging.
Manipulators
ResetMaxWalkSpeed
Removes the crouch speed modifiers
Variables
Configuration
TargetCrouchCameraOffset
Camera Offset to add when the player is crouching.
ClassExceptionListForOverlap
Array of Actor classes that are being ignored in ceiling checks.
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 true, various useful variables will be printed on the screen to help with debugging.
bIsEnabled
If false, the component will only print debug data and not update any other values.
Component Data
OverlapActorTypes
Actor Types that are used for collision detection when uncrouching.
Event Dispatcher
OnCrouchFullyUncrouched
Triggered when the player is fully uncrouched.
OnCrouchFullyCrouched
Triggered when the player is fully crouched.
OnCrouchUpdate
Triggered when the capsule size changes due to crouching or uncrouching.
States
bCrouchMaintainsBaseLocation
If true, crouching should keep the base of the capsule in place by lowering the center of the shrunken capsule.
bIsCrouched
If true, the player is fully crouched.
bIsInCrouch
If true, the player is currently transitioning in a crouch.
bWantsToCrouch
If true, the player signalised, usually by pressing the crouch button, that they want to crouch.
Default
JumpingComponent
Reference to the jumping component.
Last updated