UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
UCharacterMovementComponent Class Reference

#include <CharacterMovementComponent.h>

+ Inheritance diagram for UCharacterMovementComponent:

Public Types

enum class  ERootMotionMapping : uint32 { MapSize = 16 }
 
- Public Types inherited from UObject
enum class  ENetFields_Private { NETFIELD_REP_START = 0 , NETFIELD_REP_END = -1 }
 
typedef UObject WithinClass
 

Public Member Functions

ENGINE_API UCharacterMovementComponent (const FObjectInitializer &ObjectInitializer=FObjectInitializer::Get())
 
 UPROPERTY (Category="Character Movement (General Settings)", EditAnywhere, BlueprintReadWrite, meta=(ClampMin="0", UIMin="0")) float MaxAcceleration
 
 UPROPERTY (Category="Character Movement (General Settings)", EditAnywhere, BlueprintReadWrite, meta=(ClampMin="0", UIMin="0")) float BrakingFrictionFactor
 
 UPROPERTY (Category="Character Movement (General Settings)", EditAnywhere, BlueprintReadWrite, meta=(ClampMin="0", UIMin="0", EditCondition="bUseSeparateBrakingFriction")) float BrakingFriction
 
 UPROPERTY (Category="Character Movement (General Settings)", EditAnywhere, BlueprintReadWrite, AdvancedDisplay, meta=(ClampMin="0.0166", ClampMax="0.05", UIMin="0.0166", UIMax="0.05")) float BrakingSubStepTime
 
 UPROPERTY (Category="Character Movement (General Settings)", EditAnywhere, BlueprintReadWrite, BlueprintSetter=SetCrouchedHalfHeight, BlueprintGetter=GetCrouchedHalfHeight, meta=(ClampMin="0", UIMin="0", ForceUnits=cm)) float CrouchedHalfHeight
 
 UPROPERTY (Category="Character Movement (General Settings)", EditAnywhere, BlueprintReadWrite, meta=(ClampMin="0", UIMin="0")) float Mass
 
 UPROPERTY (Category="Character Movement: Physics Interaction", EditAnywhere, BlueprintReadWrite, meta=(UIMin="-1.0", UIMax="1.0"), meta=(editcondition="bEnablePhysicsInteraction")) float PushForcePointZOffsetFactor
 
FVector GetLastUpdateLocation () const
 
FRotator GetLastUpdateRotation () const
 
FQuat GetLastUpdateQuat () const
 
FVector GetLastUpdateVelocity () const
 
float GetServerLastTransformUpdateTimeStamp () const
 
ENGINE_API float GetSimulationTimeStep (float RemainingTime, int32 Iterations) const
 
 UPROPERTY (Category="Character Movement (General Settings)", EditAnywhere, BlueprintReadWrite, AdvancedDisplay, meta=(ClampMin="0.0166", ClampMax="0.50", UIMin="0.0166", UIMax="0.50")) float MaxSimulationTimeStep
 
 UPROPERTY (Category="Character Movement (General Settings)", EditAnywhere, BlueprintReadWrite, AdvancedDisplay, meta=(ClampMin="1", ClampMax="25", UIMin="1", UIMax="25")) int32 MaxSimulationIterations
 
 UPROPERTY (Category="Character Movement (General Settings)", EditAnywhere, BlueprintReadWrite, AdvancedDisplay, meta=(ClampMin="1", ClampMax="4", UIMin="1", UIMax="4")) int32 MaxJumpApexAttemptsPerSimulation
 
 UPROPERTY (Category="Character Movement (General Settings)", EditAnywhere, BlueprintReadWrite, AdvancedDisplay, meta=(ClampMin="0", UIMin="0", ForceUnits=cm)) float MaxDepenetrationWithGeometry
 
 UPROPERTY (Category="Character Movement (General Settings)", EditAnywhere, BlueprintReadWrite, AdvancedDisplay, meta=(ClampMin="0", UIMin="0", ForceUnits=cm)) float MaxDepenetrationWithGeometryAsProxy
 
 UPROPERTY (Category="Character Movement (General Settings)", EditAnywhere, BlueprintReadWrite, AdvancedDisplay, meta=(ClampMin="0", UIMin="0", ForceUnits=cm)) float MaxDepenetrationWithPawn
 
 UPROPERTY (Category="Character Movement (General Settings)", EditAnywhere, BlueprintReadWrite, AdvancedDisplay, meta=(ClampMin="0", UIMin="0", ForceUnits=cm)) float MaxDepenetrationWithPawnAsProxy
 
 UPROPERTY (Category="Character Movement (Networking)", EditDefaultsOnly, AdvancedDisplay, meta=(ClampMin="0.0", ClampMax="1.0", UIMin="0.0", UIMax="1.0", ForceUnits=s)) float NetworkSimulatedSmoothLocationTime
 
 UPROPERTY (Category="Character Movement (Networking)", EditDefaultsOnly, AdvancedDisplay, meta=(ClampMin="0.0", ClampMax="1.0", UIMin="0.0", UIMax="1.0", ForceUnits=s)) float NetworkSimulatedSmoothRotationTime
 
 UPROPERTY (Category="Character Movement (Networking)", EditDefaultsOnly, AdvancedDisplay, meta=(ClampMin="0.0", ClampMax="1.0", UIMin="0.0", UIMax="1.0", ForceUnits=s)) float ListenServerNetworkSimulatedSmoothLocationTime
 
 UPROPERTY (Category="Character Movement (Networking)", EditDefaultsOnly, AdvancedDisplay, meta=(ClampMin="0.0", ClampMax="1.0", UIMin="0.0", UIMax="1.0", ForceUnits=s)) float ListenServerNetworkSimulatedSmoothRotationTime
 
 UPROPERTY (Category="Character Movement (Networking)", EditDefaultsOnly, AdvancedDisplay, meta=(ClampMin="0.0", UIMin="0.0", ForceUnits=cm)) float NetProxyShrinkRadius
 
 UPROPERTY (Category="Character Movement (Networking)", EditDefaultsOnly, AdvancedDisplay, meta=(ClampMin="0.0", UIMin="0.0", ForceUnits=cm)) float NetProxyShrinkHalfHeight
 
 UPROPERTY (Category="Character Movement (Networking)", EditDefaultsOnly, meta=(ClampMin="0.0", UIMin="0.0", ForceUnits=cm)) float NetworkMaxSmoothUpdateDistance
 
 UPROPERTY (Category="Character Movement (Networking)", EditDefaultsOnly, meta=(ClampMin="0.0", UIMin="0.0", ForceUnits=cm)) float NetworkNoSmoothUpdateDistance
 
 UPROPERTY (Category="Character Movement (Networking)", EditDefaultsOnly, meta=(ClampMin="0.0", UIMin="0.0", ForceUnits=s)) float NetworkMinTimeBetweenClientAckGoodMoves
 
 UPROPERTY (Category="Character Movement (Networking)", EditDefaultsOnly, meta=(ClampMin="0.0", UIMin="0.0", ForceUnits=s)) float NetworkMinTimeBetweenClientAdjustments
 
 UPROPERTY (Category="Character Movement (Networking)", EditDefaultsOnly, meta=(ClampMin="0.0", UIMin="0.0", ForceUnits=s)) float NetworkMinTimeBetweenClientAdjustmentsLargeCorrection
 
 UPROPERTY (Category="Character Movement (Networking)", EditDefaultsOnly, meta=(ClampMin="0.0", UIMin="0.0", ForceUnits=cm)) float NetworkLargeClientCorrectionDistance
 
UPrimitiveComponent * GetLastServerMovementBase () const
 
virtual bool ShouldCorrectRotation () const
 
ENGINE_API FVector GetLastUpdateRequestedVelocity () const
 
ENGINE_API void SetAvoidanceGroup (int32 GroupFlags)
 
ENGINE_API void SetAvoidanceGroupMask (const FNavAvoidanceMask &GroupMask)
 
ENGINE_API void SetGroupsToAvoid (int32 GroupFlags)
 
ENGINE_API void SetGroupsToAvoidMask (const FNavAvoidanceMask &GroupMask)
 
ENGINE_API void SetGroupsToIgnore (int32 GroupFlags)
 
ENGINE_API void SetGroupsToIgnoreMask (const FNavAvoidanceMask &GroupMask)
 
ENGINE_API void SetAvoidanceEnabled (bool bEnable)
 
ACharacterGetCharacterOwner () const
 
virtual ENGINE_API void SetMovementMode (EMovementMode NewMovementMode, uint8 NewCustomMode=0)
 
ENGINE_API void SetGroundMovementMode (EMovementMode NewGroundMovementMode)
 
EMovementMode GetGroundMovementMode () const
 
virtual ENGINE_API uint8 PackNetworkMovementMode () const
 
virtual ENGINE_API void UnpackNetworkMovementMode (const uint8 ReceivedMode, TEnumAsByte< EMovementMode > &OutMode, uint8 &OutCustomMode, TEnumAsByte< EMovementMode > &OutGroundMode) const
 
virtual ENGINE_API void ApplyNetworkMovementMode (const uint8 ReceivedMode)
 
virtual ENGINE_API void Serialize (FArchive &Archive) override
 
virtual ENGINE_API void TickComponent (float DeltaTime, enum ELevelTick TickType, FActorComponentTickFunction *ThisTickFunction) override
 
virtual ENGINE_API void OnRegister () override
 
virtual ENGINE_API void BeginDestroy () override
 
virtual ENGINE_API void BeginPlay () override
 
virtual ENGINE_API void PostLoad () override
 
virtual ENGINE_API void Deactivate () override
 
virtual ENGINE_API void RegisterComponentTickFunctions (bool bRegister) override
 
virtual ENGINE_API void ApplyWorldOffset (const FVector &InOffset, bool bWorldShift) override
 
virtual ENGINE_API float GetMaxSpeed () const override
 
virtual ENGINE_API void StopActiveMovement () override
 
virtual ENGINE_API bool IsCrouching () const override
 
virtual ENGINE_API bool IsFalling () const override
 
virtual ENGINE_API bool IsMovingOnGround () const override
 
virtual ENGINE_API bool IsSwimming () const override
 
virtual ENGINE_API bool IsFlying () const override
 
virtual ENGINE_API float GetGravityZ () const override
 
virtual ENGINE_API void AddRadialForce (const FVector &Origin, float Radius, float Strength, enum ERadialImpulseFalloff Falloff) override
 
virtual ENGINE_API void AddRadialImpulse (const FVector &Origin, float Radius, float Strength, enum ERadialImpulseFalloff Falloff, bool bVelChange) override
 
bool IsWalking () const
 
bool IsMovementInProgress () const
 
virtual ENGINE_API FVector GetActorFeetLocation () const override
 
virtual ENGINE_API void RequestDirectMove (const FVector &MoveVelocity, bool bForceMaxSpeed) override
 
virtual ENGINE_API void RequestPathMove (const FVector &MoveInput) override
 
virtual ENGINE_API bool CanStartPathFollowing () const override
 
virtual ENGINE_API bool CanStopPathFollowing () const override
 
virtual ENGINE_API float GetPathFollowingBrakingDistance (float MaxSpeed) const override
 
virtual ENGINE_API void NotifyBumpedPawn (APawn *BumpedPawn) override
 
virtual ENGINE_API void DisableMovement ()
 
virtual ENGINE_API bool HasValidData () const
 
virtual ENGINE_API void PerformAirControlForPathFollowing (FVector Direction, float ZDiff)
 
virtual ENGINE_API bool ShouldPerformAirControlForPathFollowing () const
 
virtual ENGINE_API void StartFalling (int32 Iterations, float remainingTime, float timeTick, const FVector &Delta, const FVector &subLoc)
 
virtual ENGINE_API bool ShouldCatchAir (const FFindFloorResult &OldFloor, const FFindFloorResult &NewFloor)
 
virtual ENGINE_API void HandleWalkingOffLedge (const FVector &PreviousFloorImpactNormal, const FVector &PreviousFloorContactNormal, const FVector &PreviousLocation, float TimeDelta)
 
virtual ENGINE_API void AdjustFloorHeight ()
 
ENGINE_API UPrimitiveComponent * GetMovementBase () const
 
virtual ENGINE_API void MaybeUpdateBasedMovement (float DeltaSeconds)
 
virtual ENGINE_API void UpdateBasedMovement (float DeltaSeconds)
 
virtual ENGINE_API void UpdateBasedRotation (FRotator &FinalRotation, const FRotator &ReducedRotation)
 
virtual ENGINE_API void MaybeSaveBaseLocation ()
 
virtual ENGINE_API void SaveBaseLocation ()
 
virtual ENGINE_API void ApplyImpartedMovementBaseVelocity ()
 
virtual ENGINE_API void StartNewPhysics (float deltaTime, int32 Iterations)
 
virtual ENGINE_API bool DoJump (bool bReplayingMoves)
 
virtual ENGINE_API bool DoJump (bool bReplayingMoves, float DeltaTime)
 
virtual ENGINE_API bool CanAttemptJump () const
 
virtual ENGINE_API void Launch (FVector const &LaunchVel)
 
virtual ENGINE_API bool HandlePendingLaunch ()
 
virtual ENGINE_API FVector GetImpartedMovementBaseVelocity () const
 
virtual ENGINE_API void JumpOff (AActor *MovementBaseActor)
 
virtual ENGINE_API FVector GetBestDirectionOffActor (AActor *BaseActor) const
 
virtual ENGINE_API bool ShouldJumpOutOfWater (FVector &JumpDir)
 
virtual ENGINE_API void JumpOutOfWater (FVector WallNormal)
 
virtual ENGINE_API FRotator GetDeltaRotation (float DeltaTime) const
 
virtual ENGINE_API FRotator ComputeOrientToMovementRotation (const FRotator &CurrentRotation, float DeltaTime, FRotator &DeltaRotation) const
 
virtual ENGINE_API bool ApplyRequestedMove (float DeltaTime, float MaxAccel, float MaxSpeed, float Friction, float BrakingDeceleration, FVector &OutAcceleration, float &OutRequestedSpeed)
 
virtual ENGINE_API void NotifyJumpApex ()
 
virtual ENGINE_API FVector NewFallVelocity (const FVector &InitialVelocity, const FVector &Gravity, float DeltaTime) const
 
virtual ENGINE_API float ImmersionDepth () const
 
virtual ENGINE_API void CalcVelocity (float DeltaTime, float Friction, bool bFluid, float BrakingDeceleration)
 
virtual ENGINE_API float GetMaxJumpHeight () const
 
virtual ENGINE_API float GetMaxJumpHeightWithJumpTime () const
 
virtual ENGINE_API float GetMinAnalogSpeed () const
 
virtual ENGINE_API float GetMaxAcceleration () const
 
virtual ENGINE_API float GetMaxBrakingDeceleration () const
 
ENGINE_API FVector GetCurrentAcceleration () const
 
ENGINE_API float GetAnalogInputModifier () const
 
virtual ENGINE_API bool CanStepUp (const FHitResult &Hit) const
 
virtual ENGINE_API bool StepUp (const FVector &GravDir, const FVector &Delta, const FHitResult &Hit, FStepDownResult *OutStepDownResult=NULL)
 
virtual ENGINE_API void SetBase (UPrimitiveComponent *NewBase, const FName BoneName=NAME_None, bool bNotifyActor=true)
 
ENGINE_API void SetBaseFromFloor (const FFindFloorResult &FloorResult)
 
virtual ENGINE_API void ApplyDownwardForce (float DeltaSeconds)
 
virtual ENGINE_API void ApplyRepulsionForce (float DeltaSeconds)
 
virtual ENGINE_API void ApplyAccumulatedForces (float DeltaSeconds)
 
virtual ENGINE_API void ClearAccumulatedForces ()
 
virtual ENGINE_API void UpdateCharacterStateBeforeMovement (float DeltaSeconds)
 
virtual ENGINE_API void UpdateCharacterStateAfterMovement (float DeltaSeconds)
 
virtual void UpdateVelocityBeforeMovement (float DeltaSeconds)
 
virtual ENGINE_API void StartSwimming (FVector OldLocation, FVector OldVelocity, float timeTick, float remainingTime, int32 Iterations)
 
ENGINE_API float Swim (FVector Delta, FHitResult &Hit)
 
ENGINE_API FVector FindWaterLine (FVector Start, FVector End)
 
virtual ENGINE_API void PhysFalling (float deltaTime, int32 Iterations)
 
virtual ENGINE_API FVector GetFallingLateralAcceleration (float DeltaTime)
 
virtual ENGINE_API bool ShouldLimitAirControl (float DeltaTime, const FVector &FallAcceleration) const
 
virtual ENGINE_API FVector GetAirControl (float DeltaTime, float TickAirControl, const FVector &FallAcceleration)
 
virtual ENGINE_API void SetGravityDirection (const FVector &GravityDir)
 
bool HasCustomGravity () const
 
FVector GetGravityDirection () const
 
FQuat GetWorldToGravityTransform () const
 
FQuat GetGravityToWorldTransform () const
 
FVector RotateGravityToWorld (const FVector &World) const
 
FVector RotateWorldToGravity (const FVector &Gravity) const
 
FVector ProjectToGravityFloor (const FVector &Vector) const
 
FVector::FReal GetGravitySpaceZ (const FVector &Vector) const
 
FVector GetGravitySpaceComponentZ (const FVector &Vector) const
 
void SetGravitySpaceZ (FVector &Vector, const FVector::FReal Z) const
 
virtual ENGINE_API void OnTeleported () override
 
virtual ENGINE_API void Crouch (bool bClientSimulation=false)
 
virtual ENGINE_API void UnCrouch (bool bClientSimulation=false)
 
virtual ENGINE_API bool CanCrouchInCurrentState () const
 
ENGINE_API void SetCrouchedHalfHeight (const float NewValue)
 
ENGINE_API float GetCrouchedHalfHeight () const
 
virtual ENGINE_API bool CheckLedgeDirection (const FVector &OldLocation, const FVector &SideStep, const FFindFloorResult &OldFloor) const
 
virtual ENGINE_API FVector GetLedgeMove (const FVector &OldLocation, const FVector &Delta, const FFindFloorResult &OldFloor) const
 
virtual ENGINE_API bool CheckFall (const FFindFloorResult &OldFloor, const FHitResult &Hit, const FVector &Delta, const FVector &OldLocation, float remainingTime, float timeTick, int32 Iterations, bool bMustJump)
 
ENGINE_API void RevertMove (const FVector &OldLocation, UPrimitiveComponent *OldBase, const FVector &InOldBaseLocation, const FFindFloorResult &OldFloor, bool bFailMove)
 
virtual ENGINE_API void PhysicsRotation (float DeltaTime)
 
virtual ENGINE_API bool ShouldRemainVertical () const
 
virtual ENGINE_API void PhysicsVolumeChanged (class APhysicsVolume *NewVolume) override
 
virtual ENGINE_API void SetDefaultMovementMode ()
 
virtual ENGINE_API void MoveSmooth (const FVector &InVelocity, const float DeltaSeconds, FStepDownResult *OutStepDownResult=NULL)
 
virtual ENGINE_API void UpdateProxyAcceleration ()
 
virtual ENGINE_API void SetUpdatedComponent (USceneComponent *NewUpdatedComponent) override
 
virtual ENGINE_API FString GetMovementName () const
 
virtual ENGINE_API void AddImpulse (FVector Impulse, bool bVelocityChange=false)
 
virtual ENGINE_API void AddForce (FVector Force)
 
virtual ENGINE_API void DisplayDebug (class UCanvas *Canvas, const FDebugDisplayInfo &DebugDisplay, float &YL, float &YPos)
 
virtual ENGINE_API float VisualizeMovement () const
 
virtual ENGINE_API bool CheckWaterJump (FVector CheckPoint, FVector &WallNormal)
 
virtual ENGINE_API bool CanWalkOffLedges () const
 
ENGINE_API float GetPerchRadiusThreshold () const
 
ENGINE_API float GetValidPerchRadius () const
 
virtual ENGINE_API bool IsWalkable (const FHitResult &Hit) const
 
float GetWalkableFloorAngle () const
 
ENGINE_API float K2_GetWalkableFloorAngle () const
 
ENGINE_API void SetWalkableFloorAngle (float InWalkableFloorAngle)
 
float GetWalkableFloorZ () const
 
ENGINE_API float K2_GetWalkableFloorZ () const
 
ENGINE_API void SetWalkableFloorZ (float InWalkableFloorZ)
 
virtual ENGINE_API void PrePhysicsTickComponent (float DeltaTime, FCharacterMovementComponentPrePhysicsTickFunction &ThisTickFunction)
 
virtual ENGINE_API void PostPhysicsTickComponent (float DeltaTime, FCharacterMovementComponentPostPhysicsTickFunction &ThisTickFunction)
 
virtual ENGINE_API bool IsWithinEdgeTolerance (const FVector &CapsuleLocation, const FVector &TestImpactPoint, const float CapsuleRadius) const
 
virtual ENGINE_API void FindFloor (const FVector &CapsuleLocation, FFindFloorResult &OutFloorResult, bool bCanUseCachedLocation, const FHitResult *DownwardSweepResult=NULL) const
 
virtual ENGINE_API void K2_FindFloor (FVector CapsuleLocation, FFindFloorResult &FloorResult) const
 
virtual ENGINE_API void ComputeFloorDist (const FVector &CapsuleLocation, float LineDistance, float SweepDistance, FFindFloorResult &OutFloorResult, float SweepRadius, const FHitResult *DownwardSweepResult=NULL) const
 
virtual ENGINE_API void K2_ComputeFloorDist (FVector CapsuleLocation, float LineDistance, float SweepDistance, float SweepRadius, FFindFloorResult &FloorResult) const
 
virtual ENGINE_API bool FloorSweepTest (struct FHitResult &OutHit, const FVector &Start, const FVector &End, ECollisionChannel TraceChannel, const struct FCollisionShape &CollisionShape, const struct FCollisionQueryParams &Params, const struct FCollisionResponseParams &ResponseParam) const
 
virtual ENGINE_API bool IsValidLandingSpot (const FVector &CapsuleLocation, const FHitResult &Hit) const
 
virtual ENGINE_API bool ShouldCheckForValidLandingSpot (float DeltaTime, const FVector &Delta, const FHitResult &Hit) const
 
virtual ENGINE_API bool ShouldComputePerchResult (const FHitResult &InHit, bool bCheckRadius=true) const
 
virtual ENGINE_API bool ComputePerchResult (const float TestRadius, const FHitResult &InHit, const float InMaxFloorDist, FFindFloorResult &OutPerchFloorResult) const
 
virtual ENGINE_API bool FindNavFloor (const FVector &TestLocation, FNavLocation &NavFloorLocation) const
 
virtual ENGINE_API void ForceReplicationUpdate ()
 
ENGINE_API void ForceClientAdjustment ()
 
virtual ENGINE_API float GetNetworkSafeRandomAngleDegrees () const
 
virtual ENGINE_API FVector RoundAcceleration (FVector InAccel) const
 
virtual ENGINE_API void SendClientAdjustment () override
 
virtual ENGINE_API bool ForcePositionUpdate (float DeltaTime) override
 
virtual ENGINE_API void SmoothCorrection (const FVector &OldLocation, const FQuat &OldRotation, const FVector &NewLocation, const FQuat &NewRotation) override
 
virtual ENGINE_API class FNetworkPredictionData_ClientGetPredictionData_Client () const override
 
virtual ENGINE_API class FNetworkPredictionData_ServerGetPredictionData_Server () const override
 
ENGINE_API class FNetworkPredictionData_Client_CharacterGetPredictionData_Client_Character () const
 
ENGINE_API class FNetworkPredictionData_Server_CharacterGetPredictionData_Server_Character () const
 
virtual ENGINE_API bool HasPredictionData_Client () const override
 
virtual ENGINE_API bool HasPredictionData_Server () const override
 
virtual ENGINE_API void ResetPredictionData_Client () override
 
virtual ENGINE_API void ResetPredictionData_Server () override
 
virtual ENGINE_API void UpdateFloorFromAdjustment ()
 
virtual ENGINE_API bool VerifyClientTimeStamp (float TimeStamp, FNetworkPredictionData_Server_Character &ServerData)
 
ENGINE_API void ServerMovePacked_ClientSend (const FCharacterServerMovePackedBits &PackedBits)
 
ENGINE_API void ServerMovePacked_ServerReceive (const FCharacterServerMovePackedBits &PackedBits)
 
virtual ENGINE_API bool ShouldUsePackedMovementRPCs () const
 
ENGINE_API void MoveResponsePacked_ServerSend (const FCharacterMoveResponsePackedBits &PackedBits)
 
ENGINE_API void MoveResponsePacked_ClientReceive (const FCharacterMoveResponsePackedBits &PackedBits)
 
virtual ENGINE_API void ClientAckGoodMove_Implementation (float TimeStamp)
 
virtual ENGINE_API void ClientAdjustPosition_Implementation (float TimeStamp, FVector NewLoc, FVector NewVel, UPrimitiveComponent *NewBase, FName NewBaseBoneName, bool bHasBase, bool bBaseRelativePosition, uint8 ServerMovementMode, TOptional< FRotator > OptionalRotation=TOptional< FRotator >())
 
virtual ENGINE_API void ClientVeryShortAdjustPosition_Implementation (float TimeStamp, FVector NewLoc, UPrimitiveComponent *NewBase, FName NewBaseBoneName, bool bHasBase, bool bBaseRelativePosition, uint8 ServerMovementMode)
 
virtual ENGINE_API void ClientAdjustRootMotionPosition_Implementation (float TimeStamp, float ServerMontageTrackPosition, FVector ServerLoc, FVector_NetQuantizeNormal ServerRotation, float ServerVelZ, UPrimitiveComponent *ServerBase, FName ServerBoneName, bool bHasBase, bool bBaseRelativePosition, uint8 ServerMovementMode)
 
virtual ENGINE_API void ClientAdjustRootMotionSourcePosition_Implementation (float TimeStamp, FRootMotionSourceGroup ServerRootMotion, bool bHasAnimRootMotion, float ServerMontageTrackPosition, FVector ServerLoc, FVector_NetQuantizeNormal ServerRotation, float ServerVelZ, UPrimitiveComponent *ServerBase, FName ServerBoneName, bool bHasBase, bool bBaseRelativePosition, uint8 ServerMovementMode)
 
virtual ENGINE_API void ServerMove_HandleMoveData (const FCharacterNetworkMoveDataContainer &MoveDataContainer)
 
virtual ENGINE_API void ServerMove_PerformMovement (const FCharacterNetworkMoveData &MoveData)
 
ENGINE_API void ServerSendMoveResponse (const FClientAdjustment &PendingAdjustment)
 
virtual ENGINE_API void ClientHandleMoveResponse (const FCharacterMoveResponseDataContainer &MoveResponse)
 
virtual ENGINE_API void ServerMove (float TimeStamp, FVector_NetQuantize10 InAccel, FVector_NetQuantize100 ClientLoc, uint8 CompressedMoveFlags, uint8 ClientRoll, uint32 View, UPrimitiveComponent *ClientMovementBase, FName ClientBaseBoneName, uint8 ClientMovementMode)
 
virtual ENGINE_API void ServerMove_Implementation (float TimeStamp, FVector_NetQuantize10 InAccel, FVector_NetQuantize100 ClientLoc, uint8 CompressedMoveFlags, uint8 ClientRoll, uint32 View, UPrimitiveComponent *ClientMovementBase, FName ClientBaseBoneName, uint8 ClientMovementMode)
 
virtual ENGINE_API bool ServerMove_Validate (float TimeStamp, FVector_NetQuantize10 InAccel, FVector_NetQuantize100 ClientLoc, uint8 CompressedMoveFlags, uint8 ClientRoll, uint32 View, UPrimitiveComponent *ClientMovementBase, FName ClientBaseBoneName, uint8 ClientMovementMode)
 
virtual ENGINE_API void ServerMoveDual (float TimeStamp0, FVector_NetQuantize10 InAccel0, uint8 PendingFlags, uint32 View0, float TimeStamp, FVector_NetQuantize10 InAccel, FVector_NetQuantize100 ClientLoc, uint8 NewFlags, uint8 ClientRoll, uint32 View, UPrimitiveComponent *ClientMovementBase, FName ClientBaseBoneName, uint8 ClientMovementMode)
 
virtual ENGINE_API void ServerMoveDual_Implementation (float TimeStamp0, FVector_NetQuantize10 InAccel0, uint8 PendingFlags, uint32 View0, float TimeStamp, FVector_NetQuantize10 InAccel, FVector_NetQuantize100 ClientLoc, uint8 NewFlags, uint8 ClientRoll, uint32 View, UPrimitiveComponent *ClientMovementBase, FName ClientBaseBoneName, uint8 ClientMovementMode)
 
virtual ENGINE_API bool ServerMoveDual_Validate (float TimeStamp0, FVector_NetQuantize10 InAccel0, uint8 PendingFlags, uint32 View0, float TimeStamp, FVector_NetQuantize10 InAccel, FVector_NetQuantize100 ClientLoc, uint8 NewFlags, uint8 ClientRoll, uint32 View, UPrimitiveComponent *ClientMovementBase, FName ClientBaseBoneName, uint8 ClientMovementMode)
 
virtual ENGINE_API void ServerMoveDualHybridRootMotion (float TimeStamp0, FVector_NetQuantize10 InAccel0, uint8 PendingFlags, uint32 View0, float TimeStamp, FVector_NetQuantize10 InAccel, FVector_NetQuantize100 ClientLoc, uint8 NewFlags, uint8 ClientRoll, uint32 View, UPrimitiveComponent *ClientMovementBase, FName ClientBaseBoneName, uint8 ClientMovementMode)
 
virtual ENGINE_API void ServerMoveDualHybridRootMotion_Implementation (float TimeStamp0, FVector_NetQuantize10 InAccel0, uint8 PendingFlags, uint32 View0, float TimeStamp, FVector_NetQuantize10 InAccel, FVector_NetQuantize100 ClientLoc, uint8 NewFlags, uint8 ClientRoll, uint32 View, UPrimitiveComponent *ClientMovementBase, FName ClientBaseBoneName, uint8 ClientMovementMode)
 
virtual ENGINE_API bool ServerMoveDualHybridRootMotion_Validate (float TimeStamp0, FVector_NetQuantize10 InAccel0, uint8 PendingFlags, uint32 View0, float TimeStamp, FVector_NetQuantize10 InAccel, FVector_NetQuantize100 ClientLoc, uint8 NewFlags, uint8 ClientRoll, uint32 View, UPrimitiveComponent *ClientMovementBase, FName ClientBaseBoneName, uint8 ClientMovementMode)
 
virtual ENGINE_API void ServerMoveOld (float OldTimeStamp, FVector_NetQuantize10 OldAccel, uint8 OldMoveFlags)
 
virtual ENGINE_API void ServerMoveOld_Implementation (float OldTimeStamp, FVector_NetQuantize10 OldAccel, uint8 OldMoveFlags)
 
virtual ENGINE_API bool ServerMoveOld_Validate (float OldTimeStamp, FVector_NetQuantize10 OldAccel, uint8 OldMoveFlags)
 
virtual ENGINE_API void ClientAckGoodMove (float TimeStamp)
 
virtual ENGINE_API void ClientAdjustPosition (float TimeStamp, FVector NewLoc, FVector NewVel, UPrimitiveComponent *NewBase, FName NewBaseBoneName, bool bHasBase, bool bBaseRelativePosition, uint8 ServerMovementMode)
 
virtual ENGINE_API void ClientVeryShortAdjustPosition (float TimeStamp, FVector NewLoc, UPrimitiveComponent *NewBase, FName NewBaseBoneName, bool bHasBase, bool bBaseRelativePosition, uint8 ServerMovementMode)
 
virtual ENGINE_API void ClientAdjustRootMotionPosition (float TimeStamp, float ServerMontageTrackPosition, FVector ServerLoc, FVector_NetQuantizeNormal ServerRotation, float ServerVelZ, UPrimitiveComponent *ServerBase, FName ServerBoneName, bool bHasBase, bool bBaseRelativePosition, uint8 ServerMovementMode)
 
virtual ENGINE_API void ClientAdjustRootMotionSourcePosition (float TimeStamp, FRootMotionSourceGroup ServerRootMotion, bool bHasAnimRootMotion, float ServerMontageTrackPosition, FVector ServerLoc, FVector_NetQuantizeNormal ServerRotation, float ServerVelZ, UPrimitiveComponent *ServerBase, FName ServerBoneName, bool bHasBase, bool bBaseRelativePosition, uint8 ServerMovementMode)
 
const FSavedMove_CharacterGetCurrentReplayedSavedMove () const
 
ENGINE_API bool HasRootMotionSources () const
 
ENGINE_API uint16 ApplyRootMotionSource (TSharedPtr< FRootMotionSource > SourcePtr)
 
virtual ENGINE_API void OnRootMotionSourceBeingApplied (const FRootMotionSource *Source)
 
ENGINE_API TSharedPtr< FRootMotionSourceGetRootMotionSource (FName InstanceName)
 
ENGINE_API TSharedPtr< FRootMotionSourceGetRootMotionSourceByID (uint16 RootMotionSourceID)
 
ENGINE_API void RemoveRootMotionSource (FName InstanceName)
 
ENGINE_API void RemoveRootMotionSourceByID (uint16 RootMotionSourceID)
 
ENGINE_API void ConvertRootMotionServerIDsToLocalIDs (const FRootMotionSourceGroup &LocalRootMotionToMatchWith, FRootMotionSourceGroup &InOutServerRootMotion, float TimeStamp)
 
bool HasAnimRootMotion () const
 
ENGINE_API FTransform ConvertLocalRootMotionToWorld (const FTransform &InLocalRootMotion, float DeltaSeconds)
 
ENGINE_API void SimulateRootMotion (float DeltaSeconds, const FTransform &LocalRootMotionTransform)
 
virtual ENGINE_API FVector CalcAnimRootMotionVelocity (const FVector &RootMotionDeltaMove, float DeltaSeconds, const FVector &CurrentVelocity) const
 
virtual ENGINE_API FVector ConstrainAnimRootMotionVelocity (const FVector &RootMotionVelocity, const FVector &CurrentVelocity) const
 
virtual ENGINE_API void CalcAvoidanceVelocity (float DeltaTime)
 
virtual ENGINE_API void PostProcessAvoidanceVelocity (FVector &NewVelocity)
 
virtual ENGINE_API void FlushServerMoves ()
 
ENGINE_API ETeleportType GetTeleportType () const
 
ENGINE_API void SetAvoidanceVelocityLock (class UAvoidanceManager *Avoidance, float Duration)
 
virtual ENGINE_API void SetRVOAvoidanceUID (int32 UID) override
 
virtual ENGINE_API int32 GetRVOAvoidanceUID () override
 
virtual ENGINE_API void SetRVOAvoidanceWeight (float Weight) override
 
virtual ENGINE_API float GetRVOAvoidanceWeight () override
 
virtual ENGINE_API FVector GetRVOAvoidanceOrigin () override
 
virtual ENGINE_API float GetRVOAvoidanceRadius () override
 
virtual ENGINE_API float GetRVOAvoidanceHeight () override
 
virtual ENGINE_API float GetRVOAvoidanceConsiderationRadius () override
 
virtual ENGINE_API FVector GetVelocityForRVOConsideration () override
 
virtual ENGINE_API void SetAvoidanceGroupMask (int32 GroupFlags) override
 
virtual ENGINE_API int32 GetAvoidanceGroupMask () override
 
virtual ENGINE_API void SetGroupsToAvoidMask (int32 GroupFlags) override
 
virtual ENGINE_API int32 GetGroupsToAvoidMask () override
 
virtual ENGINE_API void SetGroupsToIgnoreMask (int32 GroupFlags) override
 
virtual ENGINE_API int32 GetGroupsToIgnoreMask () override
 
int32 GetRVOAvoidanceUIDFast () const
 
- Public Member Functions inherited from UPawnMovementComponent
virtual ENGINE_API void AddInputVector (FVector WorldVector, bool bForce=false)
 
ENGINE_API FVector GetPendingInputVector () const
 
ENGINE_API FVector GetLastInputVector () const
 
virtual ENGINE_API FVector ConsumeInputVector ()
 
virtual ENGINE_API bool IsMoveInputIgnored () const
 
ENGINE_API class APawn * GetPawnOwner () const
 
ENGINE_API void ApplyAsyncPhysicsStateAction (const UPrimitiveComponent *ActionComponent, const FName &BoneName, const EPhysicsStateAction ActionType, const FVector &ActionDatas, const FVector &ActionPosition=FVector::Zero())
 
- Public Member Functions inherited from UNavMovementComponent
virtual UObjectGetOwnerAsObject () const override
 
virtual TObjectPtr< UObjectGetUpdatedObject () const override
 
virtual ENGINE_API void GetSimpleCollisionCylinder (float &CollisionRadius, float &CollisionHalfHeight) const override
 
virtual ENGINE_API FVector GetSimpleCollisionCylinderExtent () const override
 
virtual ENGINE_API FVector GetForwardVector () const override
 
virtual FVector GetVelocityForNavMovement () const override
 
virtual float GetMaxSpeedForNavMovement () const override
 
virtual void StopMovementImmediately () override
 
ENGINE_API void SetUpdateNavAgentWithOwnersCollisions (bool bUpdateWithOwner)
 
bool ShouldUpdateNavAgentWithOwnersCollision () const
 
FVector GetActorLocation () const
 
virtual ENGINE_API FBasedPosition GetActorFeetLocationBased () const
 
FVector GetActorNavLocation () const
 
FTransform GetActorTransform () const
 
virtual FVector GetLocation () const override
 
virtual FVector GetFeetLocation () const override
 
virtual FBasedPosition GetFeetLocationBased () const override
 
virtual ENGINE_API void UpdateNavAgent (const UObject &ObjectToUpdateFrom) override
 
virtual FNavMovementPropertiesGetNavMovementProperties () override
 
virtual const FNavMovementPropertiesGetNavMovementProperties () const override
 
ENGINE_API void ClearFixedBrakingDistance ()
 
virtual void SetPathFollowingAgent (IPathFollowingAgentInterface *InPathFollowingAgent) override
 
virtual IPathFollowingAgentInterfaceGetPathFollowingAgent () override
 
virtual const IPathFollowingAgentInterfaceGetPathFollowingAgent () const override
 
const FNavAgentPropertiesGetNavAgentPropertiesRef () const override
 
FNavAgentPropertiesGetNavAgentPropertiesRef () override
 
virtual void ResetMoveState () override
 
bool IsJumpAllowed () const
 
void SetJumpAllowed (bool bAllowed)
 
- Public Member Functions inherited from UMovementComponent
virtual ENGINE_API void InitializeComponent () override
 
virtual ENGINE_API bool IsExceedingMaxSpeed (float MaxSpeed) const
 
virtual ENGINE_API bool ShouldSkipUpdate (float DeltaTime) const
 
virtual ENGINE_API APhysicsVolumeGetPhysicsVolume () const
 
virtual ENGINE_API bool IsInWater () const
 
virtual ENGINE_API void UpdateTickRegistration ()
 
virtual ENGINE_API void UpdateComponentVelocity ()
 
virtual ENGINE_API void InitCollisionParams (FCollisionQueryParams &OutParams, FCollisionResponseParams &OutResponseParam) const
 
virtual ENGINE_API bool OverlapTest (const FVector &Location, const FQuat &RotationQuat, const ECollisionChannel CollisionChannel, const FCollisionShape &CollisionShape, const AActor *IgnoreActor) const
 
bool MoveUpdatedComponent (const FVector &Delta, const FQuat &NewRotation, bool bSweep, FHitResult *OutHit=NULL, ETeleportType Teleport=ETeleportType::None)
 
bool MoveUpdatedComponent (const FVector &Delta, const FRotator &NewRotation, bool bSweep, FHitResult *OutHit=NULL, ETeleportType Teleport=ETeleportType::None)
 
ENGINE_API bool K2_MoveUpdatedComponent (FVector Delta, FRotator NewRotation, FHitResult &OutHit, bool bSweep=true, bool bTeleport=false)
 
virtual ENGINE_API bool SafeMoveUpdatedComponent (const FVector &Delta, const FQuat &NewRotation, bool bSweep, FHitResult &OutHit, ETeleportType Teleport=ETeleportType::None)
 
bool SafeMoveUpdatedComponent (const FVector &Delta, const FRotator &NewRotation, bool bSweep, FHitResult &OutHit, ETeleportType Teleport=ETeleportType::None)
 
bool ResolvePenetration (const FVector &Adjustment, const FHitResult &Hit, const FQuat &NewRotation)
 
bool ResolvePenetration (const FVector &Adjustment, const FHitResult &Hit, const FRotator &NewRotation)
 
virtual ENGINE_API void SetPlaneConstraintAxisSetting (EPlaneConstraintAxisSetting NewAxisSetting)
 
EPlaneConstraintAxisSetting GetPlaneConstraintAxisSetting () const
 
virtual ENGINE_API void SetPlaneConstraintNormal (FVector PlaneNormal)
 
virtual ENGINE_API void SetPlaneConstraintFromVectors (FVector Forward, FVector Up)
 
virtual ENGINE_API void SetPlaneConstraintOrigin (FVector PlaneOrigin)
 
virtual ENGINE_API void SetPlaneConstraintEnabled (bool bEnabled)
 
ENGINE_API const FVectorGetPlaneConstraintNormal () const
 
ENGINE_API const FVectorGetPlaneConstraintOrigin () const
 
virtual ENGINE_API FVector ConstrainDirectionToPlane (FVector Direction) const
 
virtual ENGINE_API FVector ConstrainLocationToPlane (FVector Location) const
 
virtual ENGINE_API FVector ConstrainNormalToPlane (FVector Normal) const
 
virtual ENGINE_API void SnapUpdatedComponentToPlane ()
 
- Public Member Functions inherited from UActorComponent
ENGINE_API UActorComponent (const FObjectInitializer &ObjectInitializer=FObjectInitializer::Get())
 
int32 GetUCSSerializationIndex () const
 
bool IsAsyncCreatePhysicsStateRunning () const
 
bool IsAsyncDestroyPhysicsStateRunning () const
 
uint32 GetMarkedForEndOfFrameUpdateState () const
 
uint32 GetMarkedForPreEndOfFrameSync () const
 
ENGINE_API void DetermineUCSModifiedProperties ()
 
ENGINE_API void GetUCSModifiedProperties (TSet< const FProperty * > &ModifiedProperties) const
 
ENGINE_API void RemoveUCSModifiedProperties (const TArray< FProperty * > &Properties)
 
ENGINE_API void ClearUCSModifiedProperties ()
 
ENGINE_API bool IsEditableWhenInherited () const
 
bool HasBeenCreated () const
 
bool HasBeenInitialized () const
 
bool IsReadyForReplication () const
 
bool HasBegunPlay () const
 
bool IsBeingDestroyed () const
 
ENGINE_API bool IsCreatedByConstructionScript () const
 
virtual ENGINE_API void OnRep_IsActive ()
 
AActorGetOwner () const
 
template<class T >
T * GetOwner () const
 
virtual UWorldGetWorld () const override final
 
ENGINE_API bool ComponentHasTag (FName Tag) const
 
virtual ENGINE_API void Activate (bool bReset=false)
 
virtual ENGINE_API void SetActive (bool bNewActive, bool bReset=false)
 
virtual ENGINE_API void ToggleActive ()
 
bool IsActive () const
 
virtual ENGINE_API void SetAutoActivate (bool bNewAutoActivate)
 
ENGINE_API void SetTickableWhenPaused (bool bTickableWhenPaused)
 
ENGINE_API void CreatePhysicsState (bool bAllowDeferral=false)
 
ENGINE_API void DestroyPhysicsState ()
 
ENGINE_API void SetNetAddressable ()
 
ENGINE_API void SetIsReplicated (bool ShouldReplicate)
 
bool GetIsReplicated () const
 
virtual ENGINE_API bool ReplicateSubobjects (class UActorChannel *Channel, class FOutBunch *Bunch, FReplicationFlags *RepFlags)
 
bool IsUsingRegisteredSubObjectList () const
 
virtual ELifetimeCondition GetReplicationCondition () const
 
virtual void PreReplication (IRepChangedPropertyTracker &ChangedPropertyTracker)
 
virtual ENGINE_API bool GetComponentClassCanReplicate () const
 
ENGINE_API void AddReplicatedSubObject (UObject *SubObject, ELifetimeCondition NetCondition=COND_None)
 
ENGINE_API void RemoveReplicatedSubObject (UObject *SubObject)
 
ENGINE_API void DestroyReplicatedSubObjectOnRemotePeers (UObject *SubObject)
 
ENGINE_API void TearOffReplicatedSubObjectOnRemotePeers (UObject *SubObject)
 
ENGINE_API bool IsReplicatedSubObjectRegistered (const UObject *SubObject) const
 
bool IsNetSimulating () const
 
ENGINE_API ENetRole GetOwnerRole () const
 
ENetMode GetNetMode () const
 
bool IsNetMode (ENetMode Mode) const
 
bool IsNetStartupComponent () const
 
void SetIsNetStartupComponent (const bool bInIsNetStartupComponent)
 
virtual void OnEndOfFrameUpdateDuringTick ()
 
virtual void OnPreEndOfFrameSync ()
 
virtual ENGINE_API void RegisterReplicationFragments (UE::Net::FFragmentRegistrationContext &Context, UE::Net::EFragmentRegistrationFlags RegistrationFlags) override
 
virtual ENGINE_API void OnReplicationStartedForIris (const FOnReplicationStartedParams &)
 
virtual ENGINE_API void OnStopReplicationForIris (const FOnStopReplicationParams &)
 
virtual ENGINE_API void BeginReplication ()
 
virtual ENGINE_API void EndReplication ()
 
virtual ENGINE_API bool ShouldIncrementalPreRegister (UWorld *WorldContext) const
 
virtual ENGINE_API bool ShouldIncrementalPreUnregister () const
 
virtual bool AllowsAsyncPhysicsStateCreation () const
 
virtual bool AllowsAsyncPhysicsStateDestruction () const
 
virtual ENGINE_API bool IsAsyncPhysicsStateCreated () const override final
 
virtual ENGINE_API UObjectGetAsyncPhysicsStateObject () const override final
 
virtual ENGINE_API bool OnAsyncCreatePhysicsState (const UE::FTimeout &Timeout) override
 
virtual ENGINE_API void OnAsyncCreatePhysicsStateEnd_GameThread () override
 
virtual bool OnAsyncDestroyPhysicsState (const UE::FTimeout &Timeout) override
 
virtual ENGINE_API void OnAsyncDestroyPhysicsStateBegin_GameThread () override
 
virtual ENGINE_API void OnAsyncDestroyPhysicsStateEnd_GameThread () override
 
virtual ENGINE_API void ReadyForReplication ()
 
ENGINE_API void ReceiveBeginPlay ()
 
virtual ENGINE_API void EndPlay (const EEndPlayReason::Type EndPlayReason)
 
virtual ENGINE_API void UninitializeComponent ()
 
ENGINE_API void ReceiveEndPlay (EEndPlayReason::Type EndPlayReason)
 
ENGINE_API void RegisterAllComponentTickFunctions (bool bRegister)
 
virtual void AsyncPhysicsTickComponent (float DeltaTime, float SimTime)
 
ENGINE_API bool SetupActorComponentTickFunction (struct FTickFunction *TickFunction)
 
virtual ENGINE_API void SetComponentTickEnabled (bool bEnabled)
 
virtual ENGINE_API void SetComponentTickEnabledAsync (bool bEnabled)
 
virtual ENGINE_API bool IsComponentTickEnabled () const
 
ENGINE_API void SetComponentTickInterval (float TickInterval)
 
ENGINE_API void SetComponentTickIntervalAndCooldown (float TickInterval)
 
ENGINE_API float GetComponentTickInterval () const
 
ENGINE_API void PreRegisterComponentWithWorld (UWorld *InWorld)
 
ENGINE_API void PreUnregisterComponentFromWorld ()
 
ENGINE_API void RegisterComponentWithWorld (UWorld *InWorld, FRegisterComponentContext *Context=nullptr)
 
virtual bool IsReadyForOwnerToAutoDestroy () const
 
ENGINE_API bool IsOwnerSelected () const
 
bool IsRenderTransformDirty () const
 
bool IsRenderInstancesDirty () const
 
bool IsRenderStateDirty () const
 
void InvalidateLightingCache ()
 
virtual void InvalidateLightingCacheDetailed (bool bInvalidateBuildEnqueuedLighting, bool bTranslationOnly)
 
ENGINE_API void DoDeferredRenderUpdates_Concurrent ()
 
virtual void UpdateComponentToWorld (EUpdateTransformFlags UpdateTransformFlags=EUpdateTransformFlags::None, ETeleportType Teleport=ETeleportType::None)
 
ENGINE_API void MarkRenderStateDirty ()
 
ENGINE_API void MarkRenderDynamicDataDirty ()
 
ENGINE_API void MarkRenderTransformDirty ()
 
ENGINE_API void MarkRenderInstancesDirty ()
 
ENGINE_API void MarkForNeededEndOfFrameUpdate (bool bReadyForEarlyUpdate=false)
 
ENGINE_API void MarkForNeededEndOfFrameRecreate ()
 
bool IsReadyForEarlyEndOfFrameUpdate () const
 
void ClearNeedEndOfFrameUpdate ()
 
virtual ENGINE_API bool RequiresGameThreadEndOfFrameUpdates () const
 
virtual ENGINE_API bool RequiresGameThreadEndOfFrameRecreate () const
 
virtual ENGINE_API bool RequiresPreEndOfFrameSync () const
 
ENGINE_API void RecreateRenderState_Concurrent ()
 
ENGINE_API void RecreatePhysicsState ()
 
bool IsRenderStateCreated () const
 
bool IsRenderStateRecreating () const
 
bool IsPhysicsStateCreated () const
 
bool IsRenderStateUpdating () const
 
ENGINE_API class FSceneInterfaceGetScene () const
 
ENGINE_API ULevelGetComponentLevel () const
 
ENGINE_API bool ComponentIsInLevel (const class ULevel *TestLevel) const
 
ENGINE_API bool ComponentIsInPersistentLevel (bool bIncludeLevelStreamingPersistent) const
 
virtual void OnActorVisibilityChanged ()
 
virtual void OnActorEnableCollisionChanged ()
 
virtual ENGINE_API FString GetReadableName () const
 
virtual UObject const * AdditionalStatObject () const
 
virtual ENGINE_API TStructOnScope< FActorComponentInstanceDataGetComponentInstanceData () const
 
virtual ENGINE_API void PostApplyToComponent ()
 
virtual void GetComponentChildElements (TArray< FTypedElementHandle > &OutElementHandles, const bool bAllowCreate=true)
 
virtual ENGINE_API bool NeedsLoadForClient () const override
 
virtual ENGINE_API bool NeedsLoadForServer () const override
 
virtual ENGINE_API bool NeedsLoadForEditorGame () const override
 
virtual ENGINE_API bool IsNameStableForNetworking () const override
 
virtual ENGINE_API bool IsSupportedForNetworking () const override
 
virtual ENGINE_API void GetLifetimeReplicatedProps (TArray< FLifetimeProperty > &OutLifetimeProps) const override
 
virtual ENGINE_API int32 GetFunctionCallspace (UFunction *Function, FFrame *Stack) override
 
virtual ENGINE_API bool CallRemoteFunction (UFunction *Function, void *Parameters, FOutParmRec *OutParms, FFrame *Stack) override
 
virtual ENGINE_API void PostInitProperties () override
 
virtual ENGINE_API bool Rename (const TCHAR *NewName=NULL, UObject *NewOuter=NULL, ERenameFlags Flags=REN_None) override
 
virtual ENGINE_API void PostRename (UObject *OldOuter, const FName OldName) override
 
virtual ENGINE_API void AddAssetUserData (UAssetUserData *InUserData) override
 
virtual ENGINE_API void RemoveUserDataOfClass (TSubclassOf< UAssetUserData > InUserDataClass) override
 
virtual ENGINE_API UAssetUserDataGetAssetUserDataOfClass (TSubclassOf< UAssetUserData > InUserDataClass) override
 
virtual ENGINE_API const TArray< UAssetUserData * > * GetAssetUserDataArray () const override
 
ENGINE_API void OnCreatedFromReplication ()
 
ENGINE_API void OnDestroyedFromReplication ()
 
ENGINE_API bool IsOwnerRunningUserConstructionScript () const
 
bool IsPreRegistering () const
 
bool IsPreRegistered () const
 
bool IsPreUnregistering () const
 
bool IsPreUnregistered () const
 
bool IsRegistered () const
 
bool AllowReregistration () const
 
ENGINE_API void RegisterComponent ()
 
ENGINE_API void UnregisterComponent ()
 
virtual ENGINE_API void DestroyComponent (bool bPromoteChildren=false)
 
virtual ENGINE_API void OnComponentCreated ()
 
virtual ENGINE_API void OnComponentDestroyed (bool bDestroyingHierarchy)
 
ENGINE_API void K2_DestroyComponent (UObject *Object)
 
ENGINE_API void ReregisterComponent ()
 
ENGINE_API void SetTickGroup (ETickingGroup NewTickGroup)
 
virtual ENGINE_API void AddTickPrerequisiteActor (AActor *PrerequisiteActor)
 
virtual ENGINE_API void AddTickPrerequisiteComponent (UActorComponent *PrerequisiteComponent)
 
virtual ENGINE_API void RemoveTickPrerequisiteActor (AActor *PrerequisiteActor)
 
virtual ENGINE_API void RemoveTickPrerequisiteComponent (UActorComponent *PrerequisiteComponent)
 
ENGINE_API void ReceiveTick (float DeltaSeconds)
 
ENGINE_API void ReceiveAsyncPhysicsTick (float DeltaSeconds, float SimSeconds)
 
bool CanEverAffectNavigation () const
 
ENGINE_API void SetCanEverAffectNavigation (bool bRelevant)
 
virtual bool IsNavigationRelevant () const
 
virtual bool IsHLODRelevant () const
 
 DECLARE_MULTICAST_DELEGATE_OneParam (FOnMarkRenderStateDirty, UActorComponent &)
 
ENGINE_API void SetActiveFlag (const bool bNewIsActive)
 
- Public Member Functions inherited from UObject
COREUOBJECT_API UObject ()
 
COREUOBJECT_API UObject (const FObjectInitializer &ObjectInitializer)
 
COREUOBJECT_API UObject (EStaticConstructor, EObjectFlags InFlags)
 
COREUOBJECT_API UObject (FVTableHelper &Helper)
 
COREUOBJECT_API UObjectCreateDefaultSubobject (FName SubobjectFName, UClass *ReturnType, UClass *ClassToCreateByDefault, bool bIsRequired, bool bIsTransient)
 
template<class TReturnType >
TReturnTypeCreateEditorOnlyDefaultSubobject (FName SubobjectName, bool bTransient=false)
 
template<class TReturnType >
TReturnTypeCreateDefaultSubobject (FName SubobjectName, bool bTransient=false)
 
template<class TReturnType , class TClassToConstructByDefault >
TReturnTypeCreateDefaultSubobject (FName SubobjectName, bool bTransient=false)
 
template<class TReturnType >
TReturnTypeCreateOptionalDefaultSubobject (FName SubobjectName, bool bTransient=false)
 
template<class TReturnType , class TClassToConstructByDefault >
TReturnTypeCreateOptionalDefaultSubobject (FName SubobjectName, bool bTransient=false)
 
COREUOBJECT_API void GetDefaultSubobjects (TArray< UObject * > &OutDefaultSubobjects)
 
COREUOBJECT_API UObjectGetDefaultSubobjectByName (FName ToFind)
 
virtual COREUOBJECT_API void PostReinitProperties ()
 
virtual void PostCDOContruct ()
 
virtual COREUOBJECT_API void PreSaveRoot (FObjectPreSaveRootContext ObjectSaveContext)
 
virtual COREUOBJECT_API void PostSaveRoot (FObjectPostSaveRootContext ObjectSaveContext)
 
virtual COREUOBJECT_API void PreSave (FObjectPreSaveContext SaveContext)
 
virtual COREUOBJECT_API void CollectSaveOverrides (FObjectCollectSaveOverridesContext SaveContext)
 
UE_FORCEINLINE_HINT bool Modify (bool bAlwaysMarkDirty=true)
 
UE_FORCEINLINE_HINT bool IsCapturingAsRootObjectForTransaction () const
 
virtual bool ResolveSubobject (const TCHAR *SubObjectPath, UObject *&OutObject, bool bLoadIfExists)
 
virtual bool IsReadyForAsyncPostLoad () const
 
virtual COREUOBJECT_API void PostLoadSubobjects (FObjectInstancingGraph *OuterInstanceGraph)
 
virtual bool IsReadyForFinishDestroy ()
 
virtual COREUOBJECT_API void FinishDestroy ()
 
virtual COREUOBJECT_API void Serialize (FStructuredArchive::FRecord Record)
 
virtual void ShutdownAfterError ()
 
virtual void PostInterpChange (FProperty *PropertyThatChanged)
 
virtual void PreDuplicate (FObjectDuplicationParameters &DupParams)
 
virtual void PostDuplicate (bool bDuplicateForPIE)
 
virtual void PostDuplicate (EDuplicateMode::Type DuplicateMode)
 
virtual COREUOBJECT_API bool NeedsLoadForTargetPlatform (const class ITargetPlatform *TargetPlatform) const
 
virtual bool IsEditorOnly () const
 
virtual bool HasNonEditorOnlyReferences () const
 
virtual bool IsPostLoadThreadSafe () const
 
virtual COREUOBJECT_API bool IsDestructionThreadSafe () const
 
virtual COREUOBJECT_API void GetPreloadDependencies (TArray< UObject * > &OutDeps)
 
virtual void GetPrestreamPackages (TArray< UObject * > &OutPrestream)
 
virtual void ExportCustomProperties (FOutputDevice &Out, uint32 Indent)
 
virtual void ImportCustomProperties (const TCHAR *SourceText, FFeedbackContext *Warn)
 
virtual void PostEditImport ()
 
virtual void PostReloadConfig (class FProperty *PropertyThatWasLoaded)
 
virtual FString GetDesc ()
 
COREUOBJECT_API UScriptStructGetSparseClassDataStruct () const
 
virtual bool GetNativePropertyValues (TMap< FString, FString > &out_PropertyValues, uint32 ExportFlags=0) const
 
virtual COREUOBJECT_API void GetResourceSizeEx (FResourceSizeEx &CumulativeResourceSize)
 
SIZE_T GetResourceSizeBytes (EResourceSizeMode::Type Mode)
 
virtual FName GetExporterName (void)
 
COREUOBJECT_API void CallAddReferencedObjects (FReferenceCollector &Collector)
 
virtual FRestoreForUObjectOverwriteGetRestoreForUObjectOverwrite ()
 
virtual bool AreNativePropertiesIdenticalTo (UObject *Other) const
 
virtual COREUOBJECT_API void GetAssetRegistryTags (FAssetRegistryTagsContext Context) const
 
virtual COREUOBJECT_API void GetAssetRegistryTags (TArray< FAssetRegistryTag > &OutTags) const
 
COREUOBJECT_API void GetAssetRegistryTags (FAssetData &Out) const
 
COREUOBJECT_API void GetAssetRegistryTags (FAssetRegistryTagsContext Context, FAssetData &Out) const
 
virtual COREUOBJECT_API bool IsAsset () const
 
virtual COREUOBJECT_API FPrimaryAssetId GetPrimaryAssetId () const
 
virtual COREUOBJECT_API bool IsLocalizedResource () const
 
virtual COREUOBJECT_API bool IsSafeForRootSet () const
 
virtual COREUOBJECT_API void TagSubobjects (EObjectFlags NewFlags)
 
virtual COREUOBJECT_API void GetReplicatedCustomConditionState (FCustomPropertyConditionState &OutActiveState) const
 
virtual COREUOBJECT_API bool IsFullNameStableForNetworking () const
 
virtual void GetSubobjectsWithStableNamesForNetworking (TArray< UObject * > &ObjList)
 
virtual COREUOBJECT_API void PreNetReceive ()
 
virtual COREUOBJECT_API void PostNetReceive ()
 
virtual void PostRepNotifies ()
 
virtual COREUOBJECT_API void PreDestroyFromReplication ()
 
COREUOBJECT_API bool IsSelected () const
 
COREUOBJECT_API void SerializeScriptProperties (FArchive &Ar) const
 
COREUOBJECT_API void SerializeScriptProperties (FStructuredArchive::FSlot Slot) const
 
COREUOBJECT_API void ReinitializeProperties (UObject *SourceObject=NULL, struct FObjectInstancingGraph *InstanceGraph=NULL)
 
COREUOBJECT_API FString GetDetailedInfo () const
 
COREUOBJECT_API bool ConditionalBeginDestroy ()
 
COREUOBJECT_API bool ConditionalFinishDestroy ()
 
COREUOBJECT_API void ConditionalPostLoad ()
 
COREUOBJECT_API void ConditionalPreload ()
 
COREUOBJECT_API void ConditionalPostLoadSubobjects (struct FObjectInstancingGraph *OuterInstanceGraph=NULL)
 
bool IsBasedOnArchetype (const UObject *const SomeObject) const
 
COREUOBJECT_API UFunctionFindFunction (FName InName) const
 
COREUOBJECT_API UFunctionFindFunctionChecked (FName InName) const
 
virtual COREUOBJECT_API void BuildSubobjectMapping (UObject *OtherObject, TMap< UObject *, UObject * > &ObjectMapping) const
 
COREUOBJECT_API void CollectDefaultSubobjects (TArray< UObject * > &OutDefaultSubobjects, bool bIncludeNestedSubobjects=false) const
 
COREUOBJECT_API bool CheckDefaultSubobjects (bool bForceCheck=false) const
 
COREUOBJECT_API void SaveConfig (uint64 RequiredPropertyFlags=CPF_Config, const TCHAR *Filename=nullptr, FConfigCacheIni *Config=GConfig, bool bAllowCopyToDefaultObject=true)
 
COREUOBJECT_API void SaveConfig (const FSaveConfigContext &Context)
 
COREUOBJECT_API void UpdateDefaultConfigFile (const FString &SpecificFileLocation="")
 
COREUOBJECT_API bool TryUpdateDefaultConfigFile (const FString &SpecificFileLocation="", bool bWarnIfFail=true)
 
COREUOBJECT_API void UpdateGlobalUserConfigFile ()
 
COREUOBJECT_API void UpdateProjectUserConfigFile ()
 
COREUOBJECT_API void UpdateSinglePropertyInConfigFile (const FProperty *InProperty, const FString &InConfigIniName)
 
COREUOBJECT_API FString GetDefaultConfigFilename () const
 
COREUOBJECT_API FString GetGlobalUserConfigFilename () const
 
COREUOBJECT_API FString GetProjectUserConfigFilename () const
 
virtual const TCHARGetConfigOverridePlatform () const
 
virtual void OverrideConfigSection (FString &SectionName)
 
virtual void OverridePerObjectConfigSection (FString &SectionName)
 
COREUOBJECT_API void LoadConfig (UClass *ConfigClass=nullptr, const TCHAR *Filename=nullptr, uint32 PropagationFlags=UE::LCPF_None, class FProperty *PropertyToLoad=nullptr, TArray< UE::ConfigAccessTracking::FConfigAccessData > *OutAccessedKeys=nullptr)
 
COREUOBJECT_API void ReloadConfig (UClass *ConfigClass=NULL, const TCHAR *Filename=NULL, uint32 PropagationFlags=UE::LCPF_None, class FProperty *PropertyToLoad=NULL)
 
COREUOBJECT_API void ParseParms (const TCHAR *Parms)
 
COREUOBJECT_API void OutputReferencers (FOutputDevice &Ar, FReferencerInformationList *Referencers=NULL)
 
COREUOBJECT_API void RetrieveReferencers (TArray< FReferencerInformation > *OutInternalReferencers, TArray< FReferencerInformation > *OutExternalReferencers)
 
COREUOBJECT_API void SetLinker (FLinkerLoad *LinkerLoad, int32 LinkerIndex, bool bShouldDetachExisting=true, bool bSilenceLogs=false)
 
COREUOBJECT_API UObjectGetArchetype () const
 
COREUOBJECT_API void GetArchetypeInstances (TArray< UObject * > &Instances)
 
COREUOBJECT_API void InstanceSubobjectTemplates (struct FObjectInstancingGraph *InstanceGraph=NULL)
 
template<class T >
bool Implements () const
 
virtual COREUOBJECT_API void ProcessEvent (UFunction *Function, void *Parms)
 
COREUOBJECT_API bool CallFunctionByNameWithArguments (const TCHAR *Cmd, FOutputDevice &Ar, UObject *Executor, bool bForceCallWithNonExec=false)
 
COREUOBJECT_API void CallFunction (FFrame &Stack, RESULT_DECL, UFunction *Function)
 
 DECLARE_FUNCTION (ProcessInternal)
 
virtual bool ProcessConsoleExec (const TCHAR *Cmd, FOutputDevice &Ar, UObject *Executor)
 
COREUOBJECT_API void SkipFunction (FFrame &Stack, RESULT_DECL, UFunction *Function)
 
virtual UClassRegenerateClass (UClass *ClassToRegenerate, UObject *PreviousCDO)
 
COREUOBJECT_API bool IsInBlueprint () const
 
COREUOBJECT_API void DestroyNonNativeProperties ()
 
virtual void MarkAsEditorOnlySubobject ()
 
COREUOBJECT_API void AbortInsideMemberFunction () const
 
 DECLARE_FUNCTION (execUndefined)
 
 DECLARE_FUNCTION (execLocalVariable)
 
 DECLARE_FUNCTION (execInstanceVariable)
 
 DECLARE_FUNCTION (execDefaultVariable)
 
 DECLARE_FUNCTION (execLocalOutVariable)
 
 DECLARE_FUNCTION (execInterfaceVariable)
 
 DECLARE_FUNCTION (execClassSparseDataVariable)
 
 DECLARE_FUNCTION (execInterfaceContext)
 
 DECLARE_FUNCTION (execArrayElement)
 
 DECLARE_FUNCTION (execBoolVariable)
 
 DECLARE_FUNCTION (execClassDefaultVariable)
 
 DECLARE_FUNCTION (execEndFunctionParms)
 
 DECLARE_FUNCTION (execNothing)
 
 DECLARE_FUNCTION (execNothingInt32)
 
 DECLARE_FUNCTION (execNothingOp4a)
 
 DECLARE_FUNCTION (execBreakpoint)
 
 DECLARE_FUNCTION (execTracepoint)
 
 DECLARE_FUNCTION (execWireTracepoint)
 
 DECLARE_FUNCTION (execInstrumentation)
 
 DECLARE_FUNCTION (execEndOfScript)
 
 DECLARE_FUNCTION (execReturnNothing)
 
 DECLARE_FUNCTION (execEmptyParmValue)
 
 DECLARE_FUNCTION (execJump)
 
 DECLARE_FUNCTION (execJumpIfNot)
 
 DECLARE_FUNCTION (execAssert)
 
 DECLARE_FUNCTION (execPushExecutionFlow)
 
 DECLARE_FUNCTION (execPopExecutionFlow)
 
 DECLARE_FUNCTION (execComputedJump)
 
 DECLARE_FUNCTION (execPopExecutionFlowIfNot)
 
 DECLARE_FUNCTION (execLet)
 
 DECLARE_FUNCTION (execLetObj)
 
 DECLARE_FUNCTION (execLetWeakObjPtr)
 
 DECLARE_FUNCTION (execLetBool)
 
 DECLARE_FUNCTION (execLetDelegate)
 
 DECLARE_FUNCTION (execLetMulticastDelegate)
 
 DECLARE_FUNCTION (execAddMulticastDelegate)
 
 DECLARE_FUNCTION (execClearMulticastDelegate)
 
 DECLARE_FUNCTION (execEatReturnValue)
 
 DECLARE_FUNCTION (execRemoveMulticastDelegate)
 
 DECLARE_FUNCTION (execSelf)
 
 DECLARE_FUNCTION (execContext)
 
 DECLARE_FUNCTION (execContext_FailSilent)
 
 DECLARE_FUNCTION (execStructMemberContext)
 
 DECLARE_FUNCTION (execVirtualFunction)
 
 DECLARE_FUNCTION (execFinalFunction)
 
 DECLARE_FUNCTION (execLocalVirtualFunction)
 
 DECLARE_FUNCTION (execLocalFinalFunction)
 
 DECLARE_FUNCTION (execStructCmpEq)
 
 DECLARE_FUNCTION (execStructCmpNe)
 
 DECLARE_FUNCTION (execStructMember)
 
 DECLARE_FUNCTION (execEqualEqual_DelegateDelegate)
 
 DECLARE_FUNCTION (execNotEqual_DelegateDelegate)
 
 DECLARE_FUNCTION (execEqualEqual_DelegateFunction)
 
 DECLARE_FUNCTION (execNotEqual_DelegateFunction)
 
 DECLARE_FUNCTION (execIntConst)
 
 DECLARE_FUNCTION (execInt64Const)
 
 DECLARE_FUNCTION (execUInt64Const)
 
 DECLARE_FUNCTION (execSkipOffsetConst)
 
 DECLARE_FUNCTION (execFloatConst)
 
 DECLARE_FUNCTION (execDoubleConst)
 
 DECLARE_FUNCTION (execStringConst)
 
 DECLARE_FUNCTION (execUnicodeStringConst)
 
 DECLARE_FUNCTION (execTextConst)
 
 DECLARE_FUNCTION (execPropertyConst)
 
 DECLARE_FUNCTION (execObjectConst)
 
 DECLARE_FUNCTION (execSoftObjectConst)
 
 DECLARE_FUNCTION (execFieldPathConst)
 
 DECLARE_FUNCTION (execInstanceDelegate)
 
 DECLARE_FUNCTION (execNameConst)
 
 DECLARE_FUNCTION (execByteConst)
 
 DECLARE_FUNCTION (execIntZero)
 
 DECLARE_FUNCTION (execIntOne)
 
 DECLARE_FUNCTION (execTrue)
 
 DECLARE_FUNCTION (execFalse)
 
 DECLARE_FUNCTION (execNoObject)
 
 DECLARE_FUNCTION (execNullInterface)
 
 DECLARE_FUNCTION (execIntConstByte)
 
 DECLARE_FUNCTION (execRotationConst)
 
 DECLARE_FUNCTION (execVectorConst)
 
 DECLARE_FUNCTION (execVector3fConst)
 
 DECLARE_FUNCTION (execTransformConst)
 
 DECLARE_FUNCTION (execStructConst)
 
 DECLARE_FUNCTION (execSetArray)
 
 DECLARE_FUNCTION (execSetSet)
 
 DECLARE_FUNCTION (execSetMap)
 
 DECLARE_FUNCTION (execArrayConst)
 
 DECLARE_FUNCTION (execSetConst)
 
 DECLARE_FUNCTION (execMapConst)
 
 DECLARE_FUNCTION (execBitFieldConst)
 
 DECLARE_FUNCTION (execNew)
 
 DECLARE_FUNCTION (execClassContext)
 
 DECLARE_FUNCTION (execNativeParm)
 
 DECLARE_FUNCTION (execCast)
 
 DECLARE_FUNCTION (execDynamicCast)
 
 DECLARE_FUNCTION (execMetaCast)
 
 DECLARE_FUNCTION (execInterfaceCast)
 
 DECLARE_FUNCTION (execDoubleToFloatCast)
 
 DECLARE_FUNCTION (execFloatToDoubleCast)
 
 DECLARE_FUNCTION (execObjectToBool)
 
 DECLARE_FUNCTION (execInterfaceToBool)
 
 DECLARE_FUNCTION (execObjectToInterface)
 
 DECLARE_FUNCTION (execInterfaceToInterface)
 
 DECLARE_FUNCTION (execInterfaceToObject)
 
 DECLARE_FUNCTION (execGetDynArrayElement)
 
 DECLARE_FUNCTION (execSetDynArrayElement)
 
 DECLARE_FUNCTION (execGetDynArrayLength)
 
 DECLARE_FUNCTION (execSetDynArrayLength)
 
 DECLARE_FUNCTION (execDynArrayInsert)
 
 DECLARE_FUNCTION (execDynArrayRemove)
 
 DECLARE_FUNCTION (execDynArrayFind)
 
 DECLARE_FUNCTION (execDynArrayFindStruct)
 
 DECLARE_FUNCTION (execDynArrayAdd)
 
 DECLARE_FUNCTION (execDynArrayAddItem)
 
 DECLARE_FUNCTION (execDynArrayInsertItem)
 
 DECLARE_FUNCTION (execDynArrayRemoveItem)
 
 DECLARE_FUNCTION (execDynArraySort)
 
 DECLARE_FUNCTION (execBindDelegate)
 
 DECLARE_FUNCTION (execCallMulticastDelegate)
 
 DECLARE_FUNCTION (execLetValueOnPersistentFrame)
 
 DECLARE_FUNCTION (execCallMathFunction)
 
 DECLARE_FUNCTION (execSwitchValue)
 
 DECLARE_FUNCTION (execArrayGetByRef)
 
 DECLARE_FUNCTION (execAutoRtfmTransact)
 
 DECLARE_FUNCTION (execAutoRtfmStopTransact)
 
 DECLARE_FUNCTION (execAutoRtfmAbortIfNot)
 
void ExecuteUbergraph (int32 EntryPoint)
 
virtual void ValidateGeneratedRepEnums (const TArray< struct FRepRecord > &ClassReps) const
 
virtual uint64 GetNetPushIdDynamic () const
 
- Public Member Functions inherited from UObjectBaseUtility
 UObjectBaseUtility ()
 
 UObjectBaseUtility (EObjectFlags InFlags)
 
void SetFlags (EObjectFlags NewFlags)
 
void ClearFlags (EObjectFlags FlagsToClear)
 
bool HasAnyFlags (EObjectFlags FlagsToCheck) const
 
bool HasAllFlags (EObjectFlags FlagsToCheck) const
 
UE_FORCEINLINE_HINT EObjectFlags GetMaskedFlags (EObjectFlags Mask=RF_AllFlags) const
 
UE_FORCEINLINE_HINT void Mark (EObjectMark Marks) const
 
UE_FORCEINLINE_HINT void UnMark (EObjectMark Marks) const
 
UE_FORCEINLINE_HINT bool HasAnyMarks (EObjectMark Marks) const
 
UE_FORCEINLINE_HINT bool HasAllMarks (EObjectMark Marks) const
 
UE_FORCEINLINE_HINT EObjectMark GetAllMarks () const
 
void MarkAsGarbage ()
 
void ClearGarbage ()
 
UE_FORCEINLINE_HINT void AddToRoot ()
 
UE_FORCEINLINE_HINT void RemoveFromRoot ()
 
UE_FORCEINLINE_HINT bool IsRooted () const
 
UE_FORCEINLINE_HINT int32 GetRefCount () const
 
bool ThisThreadAtomicallyClearedRFUnreachable ()
 
UE_FORCEINLINE_HINT bool IsUnreachable () const
 
UE_FORCEINLINE_HINT bool IsNative () const
 
void SetInternalFlags (EInternalObjectFlags FlagsToSet) const
 
UE_FORCEINLINE_HINT EInternalObjectFlags GetInternalFlags () const
 
UE_FORCEINLINE_HINT bool HasAnyInternalFlags (EInternalObjectFlags FlagsToCheck) const
 
void ClearInternalFlags (EInternalObjectFlags FlagsToClear) const
 
bool AtomicallyClearInternalFlags (EInternalObjectFlags FlagsToClear) const
 
COREUOBJECT_API FString GetFullName (const UObject *StopOuter=NULL, EObjectFullNameFlags Flags=EObjectFullNameFlags::None) const
 
COREUOBJECT_API void GetFullName (const UObject *StopOuter, FString &ResultString, EObjectFullNameFlags Flags=EObjectFullNameFlags::None) const
 
COREUOBJECT_API void GetFullName (FStringBuilderBase &ResultString, const UObject *StopOuter=NULL, EObjectFullNameFlags Flags=EObjectFullNameFlags::None) const
 
COREUOBJECT_API FString GetPathName (const UObject *StopOuter=NULL) const
 
COREUOBJECT_API void GetPathName (const UObject *StopOuter, FString &ResultString) const
 
COREUOBJECT_API void GetPathName (const UObject *StopOuter, FStringBuilderBase &ResultString) const
 
virtual bool CanBeClusterRoot () const
 
virtual COREUOBJECT_API bool CanBeInCluster () const
 
virtual COREUOBJECT_API void CreateCluster ()
 
virtual void OnClusterMarkedAsPendingKill ()
 
COREUOBJECT_API void AddToCluster (UObjectBaseUtility *ClusterRootOrObjectFromCluster, bool bAddAsMutableObject=false)
 
COREUOBJECT_API FString GetFullGroupName (bool bStartWithOuter) const
 
UE_FORCEINLINE_HINT FString GetName () const
 
UE_FORCEINLINE_HINT void GetName (FString &ResultString) const
 
UE_FORCEINLINE_HINT void AppendName (FString &ResultString) const
 
COREUOBJECT_API bool IsPackageExternal () const
 
COREUOBJECT_API void DetachExternalPackage ()
 
COREUOBJECT_API void ReattachExternalPackage ()
 
COREUOBJECT_API UObjectGetOutermostObject () const
 
COREUOBJECT_API UPackageGetPackage () const
 
UE_INTERNAL virtual COREUOBJECT_API UE::Core::FVersePath GetVersePath () const
 
COREUOBJECT_API UPackageGetOutermost () const
 
COREUOBJECT_API bool MarkPackageDirty () const
 
COREUOBJECT_API bool IsTemplate (EObjectFlags TemplateTypes=RF_ArchetypeObject|RF_ClassDefaultObject) const
 
COREUOBJECT_API UObjectGetTypedOuter (UClass *Target) const
 
template<typename T >
T * GetTypedOuter () const
 
template<typename InterfaceClassType >
InterfaceClassTypeGetImplementingOuter () const
 
COREUOBJECT_API UObjectBaseUtilityGetImplementingOuterObject (const UClass *InInterfaceClass) const
 
COREUOBJECT_API bool IsIn (const UObject *SomeOuter) const
 
COREUOBJECT_API bool IsIn (const UPackage *SomePackage) const
 
COREUOBJECT_API bool IsInOuter (const UObject *SomeOuter) const
 
COREUOBJECT_API bool IsInPackage (const UPackage *SomePackage) const
 
COREUOBJECT_API bool IsInA (const UClass *SomeBaseClass) const
 
COREUOBJECT_API bool RootPackageHasAnyFlags (uint32 CheckFlagMask) const
 
template<typename OtherClassType >
bool IsA (OtherClassType SomeBase) const
 
template<class T >
bool IsA () const
 
COREUOBJECT_API const UClassFindNearestCommonBaseClass (const UClass *TestClass) const
 
COREUOBJECT_API voidGetInterfaceAddress (UClass *InterfaceClass)
 
COREUOBJECT_API voidGetNativeInterfaceAddress (UClass *InterfaceClass)
 
const voidGetNativeInterfaceAddress (UClass *InterfaceClass) const
 
COREUOBJECT_API bool IsTemplateForSubobjects (EObjectFlags TemplateTypes=RF_ClassDefaultObject|RF_DefaultSubObject|RF_InheritableComponentTemplate) const
 
COREUOBJECT_API bool IsDefaultSubobject () const
 
COREUOBJECT_API class FLinkerLoadGetLinker () const
 
COREUOBJECT_API int32 GetLinkerIndex () const
 
COREUOBJECT_API FPackageFileVersion GetLinkerUEVersion () const
 
int32 GetLinkerUE4Version () const
 
COREUOBJECT_API int32 GetLinkerLicenseeUEVersion () const
 
int32 GetLinkerLicenseeUE4Version () const
 
COREUOBJECT_API int32 GetLinkerCustomVersion (FGuid CustomVersionKey) const
 
UE_FORCEINLINE_HINT bool operator< (const UObjectBaseUtility &Other) const
 
TStatId GetStatID (bool bForDeferredUse=false) const
 
- Public Member Functions inherited from UObjectBase
COREUOBJECT_API UObjectBase (UClass *InClass, EObjectFlags InFlags, EInternalObjectFlags InInternalFlags, UObject *InOuter, FName InName, int32 InInternalIndex=-1, int32 InSerialNumber=0, FRemoteObjectId InRemoteId=FRemoteObjectId())
 
virtual COREUOBJECT_API ~UObjectBase ()
 
COREUOBJECT_API bool IsValidLowLevel () const
 
COREUOBJECT_API bool IsValidLowLevelFast (bool bRecursive=true) const
 
FORCEINLINE uint32 GetUniqueID () const
 
FORCEINLINE UClassGetClass () const
 
FORCEINLINE UObjectGetOuter () const
 
FORCEINLINE FName GetFName () const
 
virtual COREUOBJECT_API FName GetFNameForStatID () const
 
COREUOBJECT_API UPackageGetExternalPackage () const
 
COREUOBJECT_API void SetExternalPackage (UPackage *InPackage)
 
COREUOBJECT_API UPackageGetExternalPackageInternal () const
 
COREUOBJECT_API void MarkAsReachable () const
 
COREUOBJECT_API void AddRef () const
 
COREUOBJECT_API void ReleaseRef () const
 
FORCEINLINE EObjectFlags GetFlags () const
 
FORCENOINLINE void AtomicallySetFlags (EObjectFlags FlagsToAdd)
 
FORCENOINLINE void AtomicallyClearFlags (EObjectFlags FlagsToClear)
 
- Public Member Functions inherited from IAsyncPhysicsStateProcessor
virtual void CollectBodySetupsWithPhysicsMeshesToCreate (TSet< UBodySetup * > &OutBodySetups) const
 
virtual void OnAsyncCreatePhysicsStateBegin_GameThread ()
 
- Public Member Functions inherited from INavMovementInterface
virtual UE_API void StopMovementKeepPathing ()
 
UE_API FVector GetNavLocation () const
 
UE_API void SetFixedBrakingDistance (float DistanceToEndOfPath)
 
UE_API bool UseAccelerationForPathFollowing () const
 
virtual bool CanEverCrouch () const
 
virtual bool CanEverJump () const
 
virtual bool CanEverMoveOnGround () const
 
virtual bool CanEverSwim () const
 
virtual bool CanEverFly () const
 

Static Public Member Functions

static ENGINE_API void AddReferencedObjects (UObject *InThis, FReferenceCollector &Collector)
 
static uint32 PackYawAndPitchTo32 (const float Yaw, const float Pitch)
 
- Static Public Member Functions inherited from UActorComponent
static ENGINE_API void AddReferencedObjects (UObject *InThis, FReferenceCollector &Collector)
 
- Static Public Member Functions inherited from UObject
static COREUOBJECT_API void UpdateClassesExcludedFromDedicatedServer (const TArray< FString > &InClassNames, const TArray< FString > &InModulesNames)
 
static COREUOBJECT_API void UpdateClassesExcludedFromDedicatedClient (const TArray< FString > &InClassNames, const TArray< FString > &InModulesNames)
 
static COREUOBJECT_API bool CanCreateInCurrentContext (UObject *Template)
 
static COREUOBJECT_API void AddReferencedObjects (UObject *InThis, FReferenceCollector &Collector)
 
static COREUOBJECT_API const FNameSourceFileTagName ()
 
static COREUOBJECT_API UObjectGetArchetypeFromRequiredInfo (const UClass *Class, const UObject *Outer, FName Name, EObjectFlags ObjectFlags)
 
- Static Public Member Functions inherited from UObjectBaseUtility
static bool IsGarbageEliminationEnabled ()
 
static bool IsPendingKillEnabled ()
 
static void SetGarbageEliminationEnabled (bool bEnabled)
 
static COREUOBJECT_API void ReloadObjectsFromModifiedConfigSections (const class FConfigModificationTracker *ChangeTracker)
 
- Static Public Member Functions inherited from UObjectBase
static COREUOBJECT_API FString RemoveClassPrefix (const TCHAR *ClassName)
 
static void PrefetchClass (UObject *Object)
 
static void PrefetchOuter (UObject *Object)
 

Public Attributes

float GravityScale
 
float MaxStepHeight
 
float JumpZVelocity
 
float JumpOffJumpZFactor
 
TEnumAsByte< enum EMovementModeMovementMode
 
uint8 CustomMovementMode
 
ENetworkSmoothingMode NetworkSmoothingMode
 
float GroundFriction
 
FQuat OldBaseQuat
 
FVector OldBaseLocation
 
float MaxWalkSpeed
 
float MaxWalkSpeedCrouched
 
float MaxSwimSpeed
 
float MaxFlySpeed
 
float MaxCustomMovementSpeed
 
float MinAnalogWalkSpeed
 
float BrakingDecelerationWalking
 
float BrakingDecelerationFalling
 
float BrakingDecelerationSwimming
 
float BrakingDecelerationFlying
 
float AirControl
 
float AirControlBoostMultiplier
 
float AirControlBoostVelocityThreshold
 
float FallingLateralFriction
 
float Buoyancy
 
float PerchRadiusThreshold
 
float PerchAdditionalHeight
 
FRotator RotationRate
 
uint8 bUseSeparateBrakingFriction:1
 
uint8 bDontFallBelowJumpZVelocityDuringJump:1
 
uint8 bApplyGravityWhileJumping:1
 
uint8 bUseControllerDesiredRotation:1
 
uint8 bOrientRotationToMovement:1
 
uint8 bSweepWhileNavWalking:1
 
uint8 bEnableScopedMovementUpdates:1
 
uint8 bEnableServerDualMoveScopedMovementUpdates: 1
 
uint8 bForceMaxAccel:1
 
uint8 bRunPhysicsWithNoController:1
 
uint8 bForceNextFloorCheck:1
 
uint8 bShrinkProxyCapsule:1
 
uint8 bCanWalkOffLedges:1
 
uint8 bCanWalkOffLedgesWhenCrouching:1
 
uint8 bNetworkSmoothingComplete:1
 
uint8 bNetworkLargeClientCorrection:1
 
uint8 bNetworkSkipProxyPredictionOnNetUpdate:1
 
uint8 bNetworkAlwaysReplicateTransformUpdateTimestamp:1
 
uint8 bDeferUpdateMoveComponent:1
 
uint8 bEnablePhysicsInteraction:1
 
uint8 bTouchForceScaledToMass:1
 
uint8 bPushForceScaledToMass:1
 
uint8 bPushForceUsingZOffset:1
 
uint8 bScalePushForceToVelocity:1
 
TObjectPtr< USceneComponent > DeferredUpdatedMoveComponent
 
float MaxOutOfWaterStepHeight
 
float OutofWaterZ
 
float StandingDownwardForceScale
 
float InitialPushForceFactor
 
float PushForceFactor
 
float TouchForceFactor
 
float MinTouchForce
 
float MaxTouchForce
 
float RepulsionForce
 
float LedgeCheckThreshold
 
float JumpOutOfWaterPitch
 
FFindFloorResult CurrentFloor
 
TEnumAsByte< enum EMovementModeDefaultLandMovementMode
 
TEnumAsByte< enum EMovementModeDefaultWaterMovementMode
 
uint8 bMaintainHorizontalGroundVelocity:1
 
uint8 bImpartBaseVelocityX:1
 
uint8 bImpartBaseVelocityY:1
 
uint8 bImpartBaseVelocityZ:1
 
uint8 bImpartBaseAngularVelocity:1
 
uint8 bJustTeleported:1
 
uint8 bNetworkUpdateReceived:1
 
uint8 bNetworkMovementModeChanged:1
 
uint8 bNetworkGravityDirectionChanged:1
 
uint8 bIgnoreClientMovementErrorChecksAndCorrection:1
 
uint8 bServerAcceptClientAuthoritativePosition: 1
 
uint8 bNotifyApex:1
 
uint8 bCheatFlying:1
 
uint8 bWantsToCrouch:1
 
uint8 bCrouchMaintainsBaseLocation:1
 
uint8 bIgnoreBaseRotation:1
 
uint8 bFastAttachedMove:1
 
uint8 bAlwaysCheckFloor:1
 
uint8 bUseFlatBaseForFloorChecks:1
 
uint8 bPerformingJumpOff:1
 
uint8 bWantsToLeaveNavWalking:1
 
uint8 bUseRVOAvoidance:1
 
uint8 bRequestedMoveUseAcceleration:1
 
uint8 bIsNavWalkingOnServer: 1
 
uint8 bWasSimulatingRootMotion:1
 
uint8 bAllowPhysicsRotationDuringAnimRootMotion: 1
 
float FormerBaseVelocityDecayHalfLife = 0.f
 
float AvoidanceConsiderationRadius
 
FVector RequestedVelocity
 
FVector LastUpdateRequestedVelocity
 
int32 AvoidanceUID
 
FNavAvoidanceMask AvoidanceGroup
 
FNavAvoidanceMask GroupsToAvoid
 
FNavAvoidanceMask GroupsToIgnore
 
float AvoidanceWeight
 
FVector PendingLaunchVelocity
 
FNavLocation CachedNavLocation
 
FHitResult CachedProjectedNavMeshHitResult
 
FName LastServerMovementBaseBoneName = NAME_None
 
bool bLastClientIsFalling = false
 
bool bLastServerIsFalling = false
 
bool bLastServerIsWalking = false
 
bool bTeleportedSinceLastUpdate = false
 
bool bCanTrustClientOnLanding = false
 
float MaxServerClientErrorWhileFalling = 0.f
 
FVector DecayingFormerBaseVelocity = FVector::ZeroVector
 
float NavMeshProjectionInterval
 
float NavMeshProjectionTimer
 
float NavMeshProjectionInterpSpeed
 
float NavMeshProjectionHeightScaleUp
 
float NavMeshProjectionHeightScaleDown
 
float NavWalkingFloorDistTolerance
 
bool bBasedMovementIgnorePhysicsBase = false
 
bool bBaseOnAttachmentRoot = false
 
bool bStayBasedInAir = false
 
float StayBasedInAirHeight = 1000.0f
 
struct FCharacterMovementComponentPrePhysicsTickFunction PrePhysicsTickFunction
 
struct FCharacterMovementComponentPostPhysicsTickFunction PostPhysicsTickFunction
 
float MinTimeBetweenTimeStampResets
 
FRootMotionSourceGroup CurrentRootMotion
 
FRootMotionSourceGroup ServerCorrectionRootMotion
 
FRootMotionAsyncData AsyncRootMotion
 
TArray< FRootMotionServerToLocalIDMapping, TInlineAllocator<(uint32) ERootMotionMapping::MapSize > > RootMotionIDMappings
 
FRootMotionMovementParams RootMotionParams
 
FVector AnimRootMotionVelocity
 
FOnProcessRootMotion ProcessRootMotionPreConvertToWorld
 
FOnProcessRootMotion ProcessRootMotionPostConvertToWorld
 
- Public Attributes inherited from UNavMovementComponent
FNavAgentProperties NavAgentProps
 
FMovementProperties MovementState
 
- Public Attributes inherited from UMovementComponent
uint8 bUpdateOnlyIfRendered:1
 
uint8 bAutoUpdateTickRegistration:1
 
uint8 bTickBeforeOwner:1
 
uint8 bAutoRegisterUpdatedComponent:1
 
uint8 bConstrainToPlane:1
 
uint8 bSnapToPlaneAtStart:1
 
uint8 bAutoRegisterPhysicsVolumeUpdates:1
 
uint8 bComponentShouldUpdatePhysicsVolume:1
 
- Public Attributes inherited from UActorComponent
struct FActorComponentTickFunction PrimaryComponentTick
 
TArray< FNameComponentTags
 
uint8 bAutoRegister:1
 
uint8 bTickInEditor:1
 
uint8 bNeverNeedsRenderUpdate:1
 
uint8 bAllowConcurrentTick:1
 
uint8 bAllowAnyoneToDestroyMe:1
 
uint8 bAutoActivate:1
 
uint8 bEditableWhenInherited:1
 
uint8 bNavigationRelevant: 1
 
uint8 bWantsInitializeComponent:1
 
uint8 bIsEditorOnly:1
 
EComponentCreationMethod CreationMethod
 
FActorComponentActivatedSignature OnComponentActivated
 
FActorComponentDeactivateSignature OnComponentDeactivated
 

Static Public Attributes

static ENGINE_API const FVector DefaultGravityDirection = FVector(0.0, 0.0, -1.0)
 
static ENGINE_API const float MIN_TICK_TIME = 1e-6f
 
static ENGINE_API const float MIN_FLOOR_DIST = 1.9f
 
static ENGINE_API const float MAX_FLOOR_DIST = 2.4f
 
static ENGINE_API const float SWEEP_EDGE_REJECT_DISTANCE = 0.15f
 
static ENGINE_API const float BRAKE_TO_STOP_VELOCITY = 10.f
 
- Static Public Attributes inherited from UActorComponent
static ENGINE_API FActorComponentGlobalCreatePhysicsSignature GlobalCreatePhysicsDelegate
 
static ENGINE_API FActorComponentGlobalDestroyPhysicsSignature GlobalDestroyPhysicsDelegate
 
static ENGINE_API FTransactionallySafeRWLock AllUCSModifiedPropertiesLock
 
static ENGINE_API TMap< UActorComponent *, TArray< FSimpleMemberReference > > AllUCSModifiedProperties
 
static ENGINE_API const FString ComponentTemplateNameSuffix
 
static ENGINE_API FOnMarkRenderStateDirty MarkRenderStateDirtyEvent
 

Protected Member Functions

virtual ENGINE_API float ComputeAnalogInputModifier () const
 
virtual ENGINE_API void OnMovementModeChanged (EMovementMode PreviousMovementMode, uint8 PreviousCustomMode)
 
virtual ENGINE_API float BoostAirControl (float DeltaTime, float TickAirControl, const FVector &FallAcceleration)
 
virtual ENGINE_API FVector LimitAirControl (float DeltaTime, const FVector &FallAcceleration, const FHitResult &HitResult, bool bCheckForValidLandingSpot)
 
virtual ENGINE_API void ProcessLanded (const FHitResult &Hit, float remainingTime, int32 Iterations)
 
virtual ENGINE_API void SetPostLandedPhysics (const FHitResult &Hit)
 
virtual ENGINE_API void ControlledCharacterMove (const FVector &InputVector, float DeltaSeconds)
 
virtual ENGINE_API void SetNavWalkingPhysics (bool bEnable)
 
ENGINE_API const class INavigationDataInterfaceGetNavData () const
 
virtual ENGINE_API bool TryToLeaveNavWalking ()
 
virtual ENGINE_API FVector ProjectLocationFromNavMesh (float DeltaSeconds, const FVector &CurrentFeetLocation, const FVector &TargetNavLocation, float UpOffset, float DownOffset)
 
virtual ENGINE_API void FindBestNavMeshLocation (const FVector &TraceStart, const FVector &TraceEnd, const FVector &CurrentFeetLocation, const FVector &TargetNavLocation, FHitResult &OutHitResult) const
 
virtual ENGINE_API bool ShouldComputeAccelerationToReachRequestedVelocity (const float RequestedSpeed) const
 
virtual ENGINE_API void PhysWalking (float deltaTime, int32 Iterations)
 
virtual ENGINE_API void PhysNavWalking (float deltaTime, int32 Iterations)
 
virtual ENGINE_API void PhysFlying (float deltaTime, int32 Iterations)
 
virtual ENGINE_API void PhysSwimming (float deltaTime, int32 Iterations)
 
virtual ENGINE_API void PhysCustom (float deltaTime, int32 Iterations)
 
virtual ENGINE_API void HandleSwimmingWallHit (const FHitResult &Hit, float DeltaTime)
 
virtual ENGINE_API FVector ComputeGroundMovementDelta (const FVector &Delta, const FHitResult &RampHit, const bool bHitFromLineTrace) const
 
virtual ENGINE_API void MoveAlongFloor (const FVector &InVelocity, float DeltaSeconds, FStepDownResult *OutStepDownResult=NULL)
 
virtual ENGINE_API void OnCharacterStuckInGeometry (const FHitResult *Hit)
 
virtual ENGINE_API void MaintainHorizontalGroundVelocity ()
 
virtual ENGINE_API FVector GetPenetrationAdjustment (const FHitResult &Hit) const override
 
virtual ENGINE_API bool ResolvePenetrationImpl (const FVector &Adjustment, const FHitResult &Hit, const FQuat &NewRotation) override
 
virtual ENGINE_API void HandleImpact (const FHitResult &Hit, float TimeSlice=0.f, const FVector &MoveDelta=FVector::ZeroVector) override
 
virtual ENGINE_API void ApplyImpactPhysicsForces (const FHitResult &Impact, const FVector &ImpactAcceleration, const FVector &ImpactVelocity)
 
virtual ENGINE_API float SlideAlongSurface (const FVector &Delta, float Time, const FVector &Normal, FHitResult &Hit, bool bHandleImpact) override
 
virtual ENGINE_API void TwoWallAdjust (FVector &WorldSpaceDelta, const FHitResult &Hit, const FVector &OldHitNormal) const override
 
virtual ENGINE_API FVector ComputeSlideVector (const FVector &Delta, const float Time, const FVector &Normal, const FHitResult &Hit) const override
 
virtual ENGINE_API FVector HandleSlopeBoosting (const FVector &SlideResult, const FVector &Delta, const float Time, const FVector &Normal, const FHitResult &Hit) const
 
virtual ENGINE_API void ApplyVelocityBraking (float DeltaTime, float Friction, float BrakingDeceleration)
 
virtual ENGINE_API void CapsuleTouched (UPrimitiveComponent *OverlappedComp, AActor *Other, UPrimitiveComponent *OtherComp, int32 OtherBodyIndex, bool bFromSweep, const FHitResult &SweepResult)
 
ENGINE_API FVector GetPawnCapsuleExtent (const EShrinkCapsuleExtent ShrinkMode, const float CustomShrinkAmount=0.f) const
 
ENGINE_API FCollisionShape GetPawnCapsuleCollisionShape (const EShrinkCapsuleExtent ShrinkMode, const float CustomShrinkAmount=0.f) const
 
virtual ENGINE_API void AdjustProxyCapsuleSize ()
 
virtual ENGINE_API FVector ConstrainInputAcceleration (const FVector &InputAcceleration) const
 
virtual ENGINE_API FVector ScaleInputAcceleration (const FVector &InputAcceleration) const
 
virtual ENGINE_API void OnMovementUpdated (float DeltaSeconds, const FVector &OldLocation, const FVector &OldVelocity)
 
virtual ENGINE_API void CallMovementUpdateDelegate (float DeltaSeconds, const FVector &OldLocation, const FVector &OldVelocity)
 
virtual ENGINE_API void OnUnableToFollowBaseMove (const FVector &DeltaPosition, const FVector &OldLocation, const FHitResult &MoveOnBaseHit)
 
virtual ENGINE_API void AccumulateRootMotionForAsync (float DeltaSeconds, FRootMotionAsyncData &RootMotion)
 
virtual ENGINE_API void FillAsyncInput (const FVector &InputVector, FCharacterMovementComponentAsyncInput &AsyncInput)
 
virtual ENGINE_API void BuildAsyncInput ()
 
virtual ENGINE_API void PostBuildAsyncInput ()
 
virtual ENGINE_API void ApplyAsyncOutput (FCharacterMovementComponentAsyncOutput &Output)
 
virtual ENGINE_API void ProcessAsyncOutput ()
 
virtual ENGINE_API void RegisterAsyncCallback ()
 
virtual ENGINE_API bool IsAsyncCallbackRegistered () const
 
virtual ENGINE_API void PerformMovement (float DeltaTime)
 
virtual ENGINE_API void SimulatedTick (float DeltaSeconds)
 
virtual ENGINE_API void SimulateMovement (float DeltaTime)
 
virtual void ServerAutonomousProxyTick (float DeltaSeconds)
 
virtual ENGINE_API void SmoothClientPosition (float DeltaSeconds)
 
ENGINE_API void SmoothClientPosition_Interpolate (float DeltaSeconds)
 
ENGINE_API void SmoothClientPosition_UpdateVisuals ()
 
virtual ENGINE_API void ReplicateMoveToServer (float DeltaTime, const FVector &NewAcceleration)
 
virtual ENGINE_API bool ClientUpdatePositionAfterServerUpdate ()
 
virtual ENGINE_API void CallServerMove (const FSavedMove_Character *NewMove, const FSavedMove_Character *OldMove)
 
virtual ENGINE_API void CallServerMovePacked (const FSavedMove_Character *NewMove, const FSavedMove_Character *PendingMove, const FSavedMove_Character *OldMove)
 
virtual ENGINE_API void ServerMoveHandleClientError (float ClientTimeStamp, float DeltaTime, const FVector &Accel, const FVector &RelativeClientLocation, UPrimitiveComponent *ClientMovementBase, FName ClientBaseBoneName, uint8 ClientMovementMode)
 
virtual ENGINE_API bool ServerCheckClientError (float ClientTimeStamp, float DeltaTime, const FVector &Accel, const FVector &ClientWorldLocation, const FVector &RelativeClientLocation, UPrimitiveComponent *ClientMovementBase, FName ClientBaseBoneName, uint8 ClientMovementMode)
 
virtual ENGINE_API bool ServerExceedsAllowablePositionError (float ClientTimeStamp, float DeltaTime, const FVector &Accel, const FVector &ClientWorldLocation, const FVector &RelativeClientLocation, UPrimitiveComponent *ClientMovementBase, FName ClientBaseBoneName, uint8 ClientMovementMode)
 
virtual ENGINE_API bool ServerShouldUseAuthoritativePosition (float ClientTimeStamp, float DeltaTime, const FVector &Accel, const FVector &ClientWorldLocation, const FVector &RelativeClientLocation, UPrimitiveComponent *ClientMovementBase, FName ClientBaseBoneName, uint8 ClientMovementMode)
 
virtual ENGINE_API void MoveAutonomous (float ClientTimeStamp, float DeltaTime, uint8 CompressedFlags, const FVector &NewAccel)
 
virtual ENGINE_API void UpdateFromCompressedFlags (uint8 Flags)
 
virtual ENGINE_API bool CanDelaySendingMove (const FSavedMovePtr &NewMove)
 
virtual ENGINE_API float GetClientNetSendDeltaTime (const APlayerController *PC, const FNetworkPredictionData_Client_Character *ClientData, const FSavedMovePtr &NewMove) const
 
virtual ENGINE_API void TickCharacterPose (float DeltaTime)
 
virtual ENGINE_API bool ShouldCancelAdaptiveReplication () const
 
ENGINE_API bool IsClientTimeStampValid (float TimeStamp, const FNetworkPredictionData_Server_Character &ServerData, bool &bTimeStampResetDetected) const
 
virtual ENGINE_API void OnClientTimeStampResetDetected ()
 
virtual ENGINE_API void ProcessClientTimeStampForTimeDiscrepancy (float ClientTimeStamp, FNetworkPredictionData_Server_Character &ServerData)
 
virtual ENGINE_API void OnTimeDiscrepancyDetected (float CurrentTimeDiscrepancy, float LifetimeRawTimeDiscrepancy, float Lifetime, float CurrentMoveError)
 
virtual ENGINE_API void OnClientCorrectionReceived (class FNetworkPredictionData_Client_Character &ClientData, float TimeStamp, FVector NewLocation, FVector NewVelocity, UPrimitiveComponent *NewBase, FName NewBaseBoneName, bool bHasBase, bool bBaseRelativePosition, uint8 ServerMovementMode, FVector ServerGravityDirection)
 
void SetNetworkMoveDataContainer (FCharacterNetworkMoveDataContainer &PersistentDataStorage)
 
FCharacterNetworkMoveDataContainerGetNetworkMoveDataContainer () const
 
FCharacterNetworkMoveDataGetCurrentNetworkMoveData () const
 
void SetCurrentNetworkMoveData (FCharacterNetworkMoveData *CurrentData)
 
void SetMoveResponseDataContainer (FCharacterMoveResponseDataContainer &PersistentDataStorage)
 
FCharacterMoveResponseDataContainerGetMoveResponseDataContainer () const
 
void SetCurrentReplayedSavedMove (FSavedMove_Character *SavedMove)
 
virtual ENGINE_API void RestorePreAdditiveRootMotionVelocity ()
 
virtual ENGINE_API void ApplyRootMotionToVelocity (float deltaTime)
 
ENGINE_API void DecayFormerBaseVelocity (float deltaTime)
 
ENGINE_API void UpdateDefaultAvoidance ()
 
- Protected Member Functions inherited from UPawnMovementComponent
virtual ENGINE_API AControllerGetController () const
 
ENGINE_API void MarkForClientCameraUpdate ()
 
- Protected Member Functions inherited from UMovementComponent
ENGINE_API FVector GetPlaneConstraintNormalFromAxisSetting (EPlaneConstraintAxisSetting AxisSetting) const
 
virtual ENGINE_API bool MoveUpdatedComponentImpl (const FVector &Delta, const FQuat &NewRotation, bool bSweep, FHitResult *OutHit=NULL, ETeleportType Teleport=ETeleportType::None)
 
- Protected Member Functions inherited from UActorComponent
virtual ENGINE_API bool ShouldActivate () const
 
virtual ENGINE_API bool ShouldAsyncCreatePhysicsState (UWorld *WorldContext) const
 
virtual ENGINE_API bool ShouldAsyncDestroyPhysicsState () const
 
virtual ENGINE_API void OnPreRegister ()
 
virtual ENGINE_API void OnPreRegistered ()
 
virtual ENGINE_API void OnPreUnregister ()
 
virtual ENGINE_API void OnPreUnregistered ()
 
virtual ENGINE_API void OnUnregister ()
 
virtual void PrecachePSOs ()
 
virtual bool ShouldCreateRenderState () const
 
virtual ENGINE_API void CreateRenderState_Concurrent (FRegisterComponentContext *Context)
 
virtual ENGINE_API void SendRenderTransform_Concurrent ()
 
virtual ENGINE_API void SendRenderDynamicData_Concurrent ()
 
virtual ENGINE_API void SendRenderInstanceData_Concurrent ()
 
virtual ENGINE_API void DestroyRenderState_Concurrent ()
 
virtual ENGINE_API void OnCreatePhysicsState ()
 
virtual ENGINE_API void OnDestroyPhysicsState ()
 
virtual bool ShouldCreatePhysicsState () const
 
virtual bool HasValidPhysicsState () const
 
ENGINE_API void HandleCanEverAffectNavigationChange (bool bForceUpdate=false)
 
ENGINE_API void SetAsyncPhysicsTickEnabled (bool bEnabled)
 
ENGINE_API void DeferRemoveAsyncPhysicsTick ()
 
ENGINE_API void SetIsReplicatedByDefault (const bool bNewReplicates)
 
ENGINE_API bool OwnerNeedsInitialization () const
 
ENGINE_API bool NeedsInitialization () const
 
- Protected Member Functions inherited from UObject
virtual FString GetDetailedInfoInternal () const
 
COREUOBJECT_API bool CanCheckDefaultSubObjects (bool bForceCheck, bool &bResult) const
 
virtual COREUOBJECT_API bool CheckDefaultSubobjectsInternal () const
 
- Protected Member Functions inherited from UObjectBase
 UObjectBase ()
 
COREUOBJECT_API UObjectBase (EObjectFlags InFlags)
 
COREUOBJECT_API void LowLevelRename (FName NewName, UObject *NewOuter=NULL)
 
virtual void RegisterDependencies ()
 
COREUOBJECT_API void Register (class UClass *(*StaticClassFn)(), const TCHAR *PackageName, const TCHAR *Name)
 
COREUOBJECT_API void Register (const TCHAR *PackageName, const TCHAR *Name)
 
virtual COREUOBJECT_API void DeferredRegister (UClass *UClassStaticClass, const TCHAR *PackageName, const TCHAR *Name)
 
FORCEINLINE void SetFlagsTo (EObjectFlags NewFlags)
 

Protected Attributes

TObjectPtr< ACharacterCharacterOwner
 
TSharedPtr< FCharacterMovementComponentAsyncOutput, ESPMode::ThreadSafeAsyncSimState
 
bool bMovementModeDirty = false
 
uint8 bMovementInProgress:1
 
FVector Acceleration
 
FQuat LastUpdateRotation
 
FVector LastUpdateLocation
 
FVector LastUpdateVelocity
 
float ServerLastTransformUpdateTimeStamp
 
float ServerLastClientGoodMoveAckTime
 
float ServerLastClientAdjustmentTime
 
FVector PendingImpulseToApply
 
FVector PendingForceToApply
 
float AnalogInputModifier
 
float LastStuckWarningTime
 
uint32 StuckWarningCountSinceNotify
 
int32 NumJumpApexAttempts
 
uint8 bHasRequestedVelocity:1
 
uint8 bRequestedMoveWithMaxSpeed:1
 
uint8 bWasAvoidanceUpdated: 1
 
uint8 bUseRVOPostProcess: 1
 
uint8 bDeferUpdateBasedMovement: 1
 
uint8 bProjectNavMeshWalking: 1 = false
 
uint8 bSlideAlongNavMeshEdge: 1 = false
 
uint8 bProjectNavMeshOnBothWorldChannels: 1
 
FVector AvoidanceLockVelocity
 
float AvoidanceLockTimer
 
class FNetworkPredictionData_Client_CharacterClientPredictionData
 
class FNetworkPredictionData_Server_CharacterServerPredictionData
 
FRandomStream RandomStream
 
float LastTimeStampResetServerTime
 
- Protected Attributes inherited from UPawnMovementComponent
TObjectPtr< class APawn > PawnOwner
 
- Protected Attributes inherited from UNavMovementComponent
float FixedPathBrakingDistance_DEPRECATED
 
uint8 bUpdateNavAgentWithOwnersCollision_DEPRECATED:1
 
uint8 bUseAccelerationForPaths_DEPRECATED: 1
 
uint8 bUseFixedBrakingDistanceForPaths_DEPRECATED: 1
 
uint8 bStopMovementAbortPaths_DEPRECATED:1
 
FNavMovementProperties NavMovementProperties
 
- Protected Attributes inherited from UMovementComponent
FVector PlaneConstraintNormal
 
FVector PlaneConstraintOrigin
 
- Protected Attributes inherited from UActorComponent
TArray< TObjectPtr< UAssetUserData > > AssetUserData
 
EComponentRegistrationState RegistrationState
 
uint8 bRegistered:1
 
uint8 bRenderStateCreated:1
 
uint8 bRenderStateRecreating:1
 
uint8 bPhysicsStateCreated:1
 
uint8 bCallAsyncPhysicsStateCreatedDelegate:1
 
uint8 bNetAddressable:1
 
uint8 bReplicateUsingRegisteredSubObjectList: 1
 
uint8 bAllowReregistration:1
 
uint8 bCanEverAffectNavigation: 1
 

Additional Inherited Members

- Protected Types inherited from UActorComponent
enum class  EComponentRegistrationState {
  None , PreRegistering , PreRegistered , PreUnregistering ,
  PreUnregistered
}
 
- Static Protected Member Functions inherited from UActorComponent
static ENGINE_API bool CanBeHLODRelevant (const UActorComponent *ActorComponent)
 
static const FName GetReplicatesPropertyName ()
 

Detailed Description

CharacterMovementComponent handles movement logic for the associated Character owner. It supports various movement modes including: walking, falling, swimming, flying, custom.

Movement is affected primarily by current Velocity and Acceleration. Acceleration is updated each frame based on the input vector accumulated thus far (see UPawnMovementComponent::GetPendingInputVector()).

Networking is fully implemented, with server-client correction and prediction included.

See also
ACharacter, UPawnMovementComponent
https://docs.unrealengine.com/latest/INT/Gameplay/Framework/Pawn/Character/

Member Enumeration Documentation

◆ ERootMotionMapping

Collection of the most recent ID mappings

Enumerator
MapSize 

Constructor & Destructor Documentation

◆ UCharacterMovementComponent()

UCharacterMovementComponent::UCharacterMovementComponent ( const FObjectInitializer ObjectInitializer = FObjectInitializer::Get())

Default UObject constructor.

Member Function Documentation

◆ AccumulateRootMotionForAsync()

void UCharacterMovementComponent::AccumulateRootMotionForAsync ( float  DeltaSeconds,
FRootMotionAsyncData RootMotion 
)
protectedvirtual

◆ AddForce()

void UCharacterMovementComponent::AddForce ( FVector  Force)
virtual

Add force to character. Forces are accumulated each tick and applied together so multiple calls to this function will accumulate. Forces are scaled depending on timestep, so they can be applied each frame. If you want an instantaneous force, use AddImpulse. Adding a force always takes the actor's mass into account. Note that changing the momentum of characters like this can change the movement mode.

Parameters
ForceForce to apply.

◆ AddImpulse()

void UCharacterMovementComponent::AddImpulse ( FVector  Impulse,
bool  bVelocityChange = false 
)
virtual

Add impulse to character. Impulses are accumulated each tick and applied together so multiple calls to this function will accumulate. An impulse is an instantaneous force, usually applied once. If you want to continually apply forces each frame, use AddForce(). Note that changing the momentum of characters like this can change the movement mode.

Parameters
ImpulseImpulse to apply.
bVelocityChangeWhether or not the impulse is relative to mass.

◆ AddRadialForce()

void UCharacterMovementComponent::AddRadialForce ( const FVector Origin,
float  Radius,
float  Strength,
enum ERadialImpulseFalloff  Falloff 
)
overridevirtual

Adds force from radial force components. Intended to be overridden by subclasses; default implementation does nothing.

Parameters
OriginThe origin of the force
RadiusThe radius in which the force will be applied
StrengthThe strength of the force
FalloffThe falloff from the force's origin

Reimplemented from UMovementComponent.

◆ AddRadialImpulse()

void UCharacterMovementComponent::AddRadialImpulse ( const FVector Origin,
float  Radius,
float  Strength,
enum ERadialImpulseFalloff  Falloff,
bool  bVelChange 
)
overridevirtual

Adds impulse from radial force components. Intended to be overridden by subclasses; default implementation does nothing.

Parameters
OriginThe origin of the force
RadiusThe radius in which the force will be applied
StrengthThe strength of the force
FalloffThe falloff from the force's origin
bVelChangeIf true, the Strength is taken as a change in velocity instead of an impulse (ie. mass will have no effect).

Reimplemented from UMovementComponent.

◆ AddReferencedObjects()

void UCharacterMovementComponent::AddReferencedObjects ( UObject InThis,
FReferenceCollector Collector 
)
static

◆ AdjustFloorHeight()

void UCharacterMovementComponent::AdjustFloorHeight ( )
virtual

Adjust distance from floor, trying to maintain a slight offset from the floor when walking (based on CurrentFloor).

◆ AdjustProxyCapsuleSize()

void UCharacterMovementComponent::AdjustProxyCapsuleSize ( )
protectedvirtual

Adjust the size of the capsule on simulated proxies, to avoid overlaps due to replication rounding. Changes to the capsule size on the proxy should set bShrinkProxyCapsule=true and possibly call AdjustProxyCapsuleSize() immediately if applicable.

◆ ApplyAccumulatedForces()

void UCharacterMovementComponent::ApplyAccumulatedForces ( float  DeltaSeconds)
virtual

Applies momentum accumulated through AddImpulse() and AddForce(), then clears those forces. Does not use ClearAccumulatedForces() since that would clear pending launch velocity as well.

◆ ApplyAsyncOutput()

void UCharacterMovementComponent::ApplyAsyncOutput ( FCharacterMovementComponentAsyncOutput Output)
protectedvirtual

◆ ApplyDownwardForce()

void UCharacterMovementComponent::ApplyDownwardForce ( float  DeltaSeconds)
virtual

Applies downward force when walking on top of physics objects.

Parameters
DeltaSecondsTime elapsed since last frame.

◆ ApplyImpactPhysicsForces()

void UCharacterMovementComponent::ApplyImpactPhysicsForces ( const FHitResult Impact,
const FVector ImpactAcceleration,
const FVector ImpactVelocity 
)
protectedvirtual

Apply physics forces to the impacted component, if bEnablePhysicsInteraction is true.

Parameters
ImpactHitResult that resulted in the impact
ImpactAccelerationAcceleration of the character at the time of impact
ImpactVelocityVelocity of the character at the time of impact

◆ ApplyImpartedMovementBaseVelocity()

void UCharacterMovementComponent::ApplyImpartedMovementBaseVelocity ( )
virtual

Apply inherited velocity when leaving base, for example from jumping off it

◆ ApplyNetworkMovementMode()

void UCharacterMovementComponent::ApplyNetworkMovementMode ( const uint8  ReceivedMode)
virtual

◆ ApplyRepulsionForce()

void UCharacterMovementComponent::ApplyRepulsionForce ( float  DeltaSeconds)
virtual

Applies repulsion force to all touched components.

◆ ApplyRequestedMove()

bool UCharacterMovementComponent::ApplyRequestedMove ( float  DeltaTime,
float  MaxAccel,
float  MaxSpeed,
float  Friction,
float  BrakingDeceleration,
FVector OutAcceleration,
float OutRequestedSpeed 
)
virtual

Use velocity requested by path following to compute a requested acceleration and speed. This does not affect the Acceleration member variable, as that is used to indicate input acceleration. This may directly affect current Velocity.

Parameters
DeltaTimeTime slice for this operation
MaxAccelMax acceleration allowed in OutAcceleration result.
MaxSpeedMax speed allowed when computing OutRequestedSpeed.
FrictionCurrent friction.
BrakingDecelerationCurrent braking deceleration.
OutAccelerationAcceleration computed based on requested velocity.
OutRequestedSpeedSpeed of resulting velocity request, which can affect the max speed allowed by movement.
Returns
Whether there is a requested velocity and acceleration, resulting in valid OutAcceleration and OutRequestedSpeed values.

◆ ApplyRootMotionSource()

uint16 UCharacterMovementComponent::ApplyRootMotionSource ( TSharedPtr< FRootMotionSource SourcePtr)

Apply a RootMotionSource to current root motion

Returns
LocalID for this Root Motion Source

◆ ApplyRootMotionToVelocity()

void UCharacterMovementComponent::ApplyRootMotionToVelocity ( float  deltaTime)
protectedvirtual

Applies root motion from root motion sources to velocity (override and additive)

◆ ApplyVelocityBraking()

void UCharacterMovementComponent::ApplyVelocityBraking ( float  DeltaTime,
float  Friction,
float  BrakingDeceleration 
)
protectedvirtual

Slows towards stop.

◆ ApplyWorldOffset()

void UCharacterMovementComponent::ApplyWorldOffset ( const FVector InOffset,
bool  bWorldShift 
)
overridevirtual

Called by owner actor on position shifting Component should update all relevant data structures to reflect new actor location

Parameters
InWorldOffsetOffset vector the actor shifted by
bWorldShiftWhether this call is part of whole world shifting

Reimplemented from UActorComponent.

◆ BeginDestroy()

void UCharacterMovementComponent::BeginDestroy ( )
overridevirtual

Called before destroying the object. This is called immediately upon deciding to destroy the object, to allow the object to begin an asynchronous cleanup process.

Reimplemented from UActorComponent.

◆ BeginPlay()

void UCharacterMovementComponent::BeginPlay ( )
overridevirtual

Begins Play for the component. Called when the owning Actor begins play or when the component is created if the Actor has already begun play. Actor BeginPlay normally happens right after PostInitializeComponents but can be delayed for networked or child actors. Requires component to be registered and initialized.

Reimplemented from UActorComponent.

◆ BoostAirControl()

float UCharacterMovementComponent::BoostAirControl ( float  DeltaTime,
float  TickAirControl,
const FVector FallAcceleration 
)
protectedvirtual

Increase air control if conditions of AirControlBoostMultiplier and AirControlBoostVelocityThreshold are met. This function is used internally by GetAirControl().

Parameters
DeltaTimeTime step for the current update.
TickAirControlCurrent air control value.
FallAccelerationAcceleration used during movement.
Returns
Modified air control to use during falling movement
See also
GetAirControl()

◆ BuildAsyncInput()

void UCharacterMovementComponent::BuildAsyncInput ( )
protectedvirtual

◆ CalcAnimRootMotionVelocity()

FVector UCharacterMovementComponent::CalcAnimRootMotionVelocity ( const FVector RootMotionDeltaMove,
float  DeltaSeconds,
const FVector CurrentVelocity 
) const
virtual

Calculate velocity from anim root motion.

Parameters
RootMotionDeltaMoveChange in location from root motion.
DeltaSecondsElapsed time
CurrentVelocityNon-root motion velocity at current time, used for components of result that may ignore root motion.
See also
ConstrainAnimRootMotionVelocity

◆ CalcAvoidanceVelocity()

void UCharacterMovementComponent::CalcAvoidanceVelocity ( float  DeltaTime)
virtual

calculate RVO avoidance and apply it to current velocity

◆ CalcVelocity()

void UCharacterMovementComponent::CalcVelocity ( float  DeltaTime,
float  Friction,
bool  bFluid,
float  BrakingDeceleration 
)
virtual

Updates Velocity and Acceleration based on the current state, applying the effects of friction and acceleration or deceleration. Does not apply gravity. This is used internally during movement updates. Normally you don't need to call this from outside code, but you might want to use it for custom movement modes.

Parameters
DeltaTimetime elapsed since last frame.
Frictioncoefficient of friction when not accelerating, or in the direction opposite acceleration.
bFluidtrue if moving through a fluid, causing Friction to always be applied regardless of acceleration.
BrakingDecelerationdeceleration applied when not accelerating, or when exceeding max velocity.

◆ CallMovementUpdateDelegate()

void UCharacterMovementComponent::CallMovementUpdateDelegate ( float  DeltaSeconds,
const FVector OldLocation,
const FVector OldVelocity 
)
protectedvirtual

Internal function to call OnMovementUpdated delegate on CharacterOwner.

◆ CallServerMove()

void UCharacterMovementComponent::CallServerMove ( const FSavedMove_Character NewMove,
const FSavedMove_Character OldMove 
)
protectedvirtual

Call the appropriate replicated ServerMove() function to send a client player move to the server.

◆ CallServerMovePacked()

void UCharacterMovementComponent::CallServerMovePacked ( const FSavedMove_Character NewMove,
const FSavedMove_Character PendingMove,
const FSavedMove_Character OldMove 
)
protectedvirtual

On the client, calls the ServerMovePacked_ClientSend() function with packed movement data. First the FCharacterNetworkMoveDataContainer from GetNetworkMoveDataContainer() is updated with ClientFillNetworkMoveData(), then serialized into a data stream to send client player moves to the server.

◆ CanAttemptJump()

bool UCharacterMovementComponent::CanAttemptJump ( ) const
virtual

Returns true if current movement state allows an attempt at jumping. Used by Character::CanJump().

◆ CanCrouchInCurrentState()

bool UCharacterMovementComponent::CanCrouchInCurrentState ( ) const
virtual

Returns true if the character is allowed to crouch in the current state. By default it is allowed when walking or falling, if CanEverCrouch() is true.

◆ CanDelaySendingMove()

bool UCharacterMovementComponent::CanDelaySendingMove ( const FSavedMovePtr NewMove)
protectedvirtual

Return true if it is OK to delay sending this player movement to the server, in order to conserve bandwidth.

◆ CanStartPathFollowing()

bool UCharacterMovementComponent::CanStartPathFollowing ( ) const
overridevirtual

Returns true if path following can start

Reimplemented from UNavMovementComponent.

◆ CanStepUp()

bool UCharacterMovementComponent::CanStepUp ( const FHitResult Hit) const
virtual

Returns true if we can step up on the actor in the given FHitResult.

◆ CanStopPathFollowing()

bool UCharacterMovementComponent::CanStopPathFollowing ( ) const
overridevirtual

check if current move target can be reached right now if positions are matching (e.g. performing scripted move and can't stop)

Reimplemented from UNavMovementComponent.

◆ CanWalkOffLedges()

bool UCharacterMovementComponent::CanWalkOffLedges ( ) const
virtual

Returns whether this pawn is currently allowed to walk off ledges

◆ CapsuleTouched()

void UCharacterMovementComponent::CapsuleTouched ( UPrimitiveComponent *  OverlappedComp,
AActor Other,
UPrimitiveComponent *  OtherComp,
int32  OtherBodyIndex,
bool  bFromSweep,
const FHitResult SweepResult 
)
protectedvirtual

Called when the collision capsule touches another primitive component

◆ CheckFall()

bool UCharacterMovementComponent::CheckFall ( const FFindFloorResult OldFloor,
const FHitResult Hit,
const FVector Delta,
const FVector OldLocation,
float  remainingTime,
float  timeTick,
int32  Iterations,
bool  bMustJump 
)
virtual

Check if pawn is falling

◆ CheckLedgeDirection()

bool UCharacterMovementComponent::CheckLedgeDirection ( const FVector OldLocation,
const FVector SideStep,
const FFindFloorResult OldFloor 
) const
virtual

Returns true if there is a suitable floor SideStep from current position.

◆ CheckWaterJump()

bool UCharacterMovementComponent::CheckWaterJump ( FVector  CheckPoint,
FVector WallNormal 
)
virtual

Check if swimming pawn just ran into edge of the pool and should jump out.

◆ ClearAccumulatedForces()

void UCharacterMovementComponent::ClearAccumulatedForces ( )
virtual

Clears forces accumulated through AddImpulse() and AddForce(), and also pending launch velocity.

◆ ClientAckGoodMove()

void UCharacterMovementComponent::ClientAckGoodMove ( float  TimeStamp)
virtual

If no client adjustment is needed after processing received ServerMove(), ack the good move so client can remove it from SavedMoves

◆ ClientAckGoodMove_Implementation()

void UCharacterMovementComponent::ClientAckGoodMove_Implementation ( float  TimeStamp)
virtual

◆ ClientAdjustPosition()

void UCharacterMovementComponent::ClientAdjustPosition ( float  TimeStamp,
FVector  NewLoc,
FVector  NewVel,
UPrimitiveComponent *  NewBase,
FName  NewBaseBoneName,
bool  bHasBase,
bool  bBaseRelativePosition,
uint8  ServerMovementMode 
)
virtual

Replicate position correction to client, associated with a timestamped servermove. Client will replay subsequent moves after applying adjustment.

◆ ClientAdjustPosition_Implementation()

void UCharacterMovementComponent::ClientAdjustPosition_Implementation ( float  TimeStamp,
FVector  NewLoc,
FVector  NewVel,
UPrimitiveComponent *  NewBase,
FName  NewBaseBoneName,
bool  bHasBase,
bool  bBaseRelativePosition,
uint8  ServerMovementMode,
TOptional< FRotator OptionalRotation = TOptional<FRotator>() 
)
virtual

◆ ClientAdjustRootMotionPosition()

void UCharacterMovementComponent::ClientAdjustRootMotionPosition ( float  TimeStamp,
float  ServerMontageTrackPosition,
FVector  ServerLoc,
FVector_NetQuantizeNormal  ServerRotation,
float  ServerVelZ,
UPrimitiveComponent *  ServerBase,
FName  ServerBoneName,
bool  bHasBase,
bool  bBaseRelativePosition,
uint8  ServerMovementMode 
)
virtual

Replicate position correction to client when using root motion for movement. (animation root motion specific)

◆ ClientAdjustRootMotionPosition_Implementation()

void UCharacterMovementComponent::ClientAdjustRootMotionPosition_Implementation ( float  TimeStamp,
float  ServerMontageTrackPosition,
FVector  ServerLoc,
FVector_NetQuantizeNormal  ServerRotation,
float  ServerVelZ,
UPrimitiveComponent *  ServerBase,
FName  ServerBoneName,
bool  bHasBase,
bool  bBaseRelativePosition,
uint8  ServerMovementMode 
)
virtual

◆ ClientAdjustRootMotionSourcePosition()

void UCharacterMovementComponent::ClientAdjustRootMotionSourcePosition ( float  TimeStamp,
FRootMotionSourceGroup  ServerRootMotion,
bool  bHasAnimRootMotion,
float  ServerMontageTrackPosition,
FVector  ServerLoc,
FVector_NetQuantizeNormal  ServerRotation,
float  ServerVelZ,
UPrimitiveComponent *  ServerBase,
FName  ServerBoneName,
bool  bHasBase,
bool  bBaseRelativePosition,
uint8  ServerMovementMode 
)
virtual

Replicate root motion source correction to client when using root motion for movement.

◆ ClientAdjustRootMotionSourcePosition_Implementation()

void UCharacterMovementComponent::ClientAdjustRootMotionSourcePosition_Implementation ( float  TimeStamp,
FRootMotionSourceGroup  ServerRootMotion,
bool  bHasAnimRootMotion,
float  ServerMontageTrackPosition,
FVector  ServerLoc,
FVector_NetQuantizeNormal  ServerRotation,
float  ServerVelZ,
UPrimitiveComponent *  ServerBase,
FName  ServerBoneName,
bool  bHasBase,
bool  bBaseRelativePosition,
uint8  ServerMovementMode 
)
virtual

◆ ClientHandleMoveResponse()

void UCharacterMovementComponent::ClientHandleMoveResponse ( const FCharacterMoveResponseDataContainer MoveResponse)
virtual

On the client, handles the move response from the server after it has been received and unpacked in MoveResponsePacked_ClientReceive. Based on the data in the response, dispatches a call to ClientAckGoodMove_Implementation if there was no error from the server. Otherwise dispatches a call to one of ClientAdjustRootMotionSourcePosition_Implementation, ClientAdjustRootMotionPosition_Implementation, or ClientAdjustPosition_Implementation depending on the payload.

◆ ClientUpdatePositionAfterServerUpdate()

bool UCharacterMovementComponent::ClientUpdatePositionAfterServerUpdate ( )
protectedvirtual

If bUpdatePosition is true, then replay any unacked moves. Returns whether any moves were actually replayed.

◆ ClientVeryShortAdjustPosition()

void UCharacterMovementComponent::ClientVeryShortAdjustPosition ( float  TimeStamp,
FVector  NewLoc,
UPrimitiveComponent *  NewBase,
FName  NewBaseBoneName,
bool  bHasBase,
bool  bBaseRelativePosition,
uint8  ServerMovementMode 
)
virtual

◆ ClientVeryShortAdjustPosition_Implementation()

void UCharacterMovementComponent::ClientVeryShortAdjustPosition_Implementation ( float  TimeStamp,
FVector  NewLoc,
UPrimitiveComponent *  NewBase,
FName  NewBaseBoneName,
bool  bHasBase,
bool  bBaseRelativePosition,
uint8  ServerMovementMode 
)
virtual

◆ ComputeAnalogInputModifier()

float UCharacterMovementComponent::ComputeAnalogInputModifier ( ) const
protectedvirtual

Computes the analog input modifier based on current input vector and/or acceleration.

◆ ComputeFloorDist()

void UCharacterMovementComponent::ComputeFloorDist ( const FVector CapsuleLocation,
float  LineDistance,
float  SweepDistance,
FFindFloorResult OutFloorResult,
float  SweepRadius,
const FHitResult DownwardSweepResult = NULL 
) const
virtual

Compute distance to the floor from bottom sphere of capsule and store the result in OutFloorResult. This distance is the swept distance of the capsule to the first point impacted by the lower hemisphere, or distance from the bottom of the capsule in the case of a line trace. This function does not care if collision is disabled on the capsule (unlike FindFloor).

See also
FindFloor
Parameters
CapsuleLocationLocation of the capsule used for the query
LineDistanceIf non-zero, max distance to test for a simple line check from the capsule base. Used only if the sweep test fails to find a walkable floor, and only returns a valid result if the impact normal is a walkable normal.
SweepDistanceIf non-zero, max distance to use when sweeping a capsule downwards for the test. MUST be greater than or equal to the line distance.
OutFloorResultResult of the floor check. The HitResult will contain the valid sweep or line test upon success, or the result of the sweep upon failure.
SweepRadiusThe radius to use for sweep tests. Should be <= capsule radius.
DownwardSweepResultIf non-null and it contains valid blocking hit info, this will be used as the result of a downward sweep test instead of doing it as part of the update.

◆ ComputeGroundMovementDelta()

FVector UCharacterMovementComponent::ComputeGroundMovementDelta ( const FVector Delta,
const FHitResult RampHit,
const bool  bHitFromLineTrace 
) const
protectedvirtual

Compute a vector of movement, given a delta and a hit result of the surface we are on.

Parameters
DeltaAttempted movement direction
RampHitHit result of sweep that found the ramp below the capsule
bHitFromLineTraceWhether the floor trace came from a line trace
Returns
If on a walkable surface, this returns a vector that moves parallel to the surface. The magnitude may be scaled if bMaintainHorizontalGroundVelocity is true. If a ramp vector can't be computed, this will just return Delta.

◆ ComputeOrientToMovementRotation()

FRotator UCharacterMovementComponent::ComputeOrientToMovementRotation ( const FRotator CurrentRotation,
float  DeltaTime,
FRotator DeltaRotation 
) const
virtual

Compute a target rotation based on current movement. Used by PhysicsRotation() when bOrientRotationToMovement is true. Default implementation targets a rotation based on Acceleration.

Parameters
CurrentRotation- Current rotation of the Character
DeltaTime- Time slice for this movement
DeltaRotation- Proposed rotation change based simply on DeltaTime * RotationRate
Returns
The target rotation given current movement.

◆ ComputePerchResult()

bool UCharacterMovementComponent::ComputePerchResult ( const float  TestRadius,
const FHitResult InHit,
const float  InMaxFloorDist,
FFindFloorResult OutPerchFloorResult 
) const
virtual

Compute the sweep result of the smaller capsule with radius specified by GetValidPerchRadius(), and return true if the sweep contacts a valid walkable normal within InMaxFloorDist of InHit.ImpactPoint. This may be used to determine if the capsule can or cannot stay at the current location if perched on the edge of a small ledge or unwalkable surface. Note: Only returns a valid result if ShouldComputePerchResult returned true for the supplied hit value.

Parameters
TestRadiusRadius to use for the sweep, usually GetValidPerchRadius().
InHitResult of the last sweep test before the query.
InMaxFloorDistMax distance to floor allowed by perching, from the supplied contact point (InHit.ImpactPoint).
OutPerchFloorResultContains the result of the perch floor test.
Returns
True if the current location is a valid spot at which to perch.

◆ ComputeSlideVector()

FVector UCharacterMovementComponent::ComputeSlideVector ( const FVector Delta,
const float  Time,
const FVector Normal,
const FHitResult Hit 
) const
overrideprotectedvirtual

Calculate slide vector along a surface. Has special treatment when falling, to avoid boosting up slopes (calling HandleSlopeBoosting() in this case).

Parameters
DeltaAttempted move.
TimeAmount of move to apply (between 0 and 1).
NormalNormal opposed to movement. Not necessarily equal to Hit.Normal (but usually is).
HitHitResult of the move that resulted in the slide.
Returns
New deflected vector of movement.

Reimplemented from UMovementComponent.

◆ ConstrainAnimRootMotionVelocity()

FVector UCharacterMovementComponent::ConstrainAnimRootMotionVelocity ( const FVector RootMotionVelocity,
const FVector CurrentVelocity 
) const
virtual

Constrain components of root motion velocity that may not be appropriate given the current movement mode (e.g. when falling Z may be ignored).

◆ ConstrainInputAcceleration()

FVector UCharacterMovementComponent::ConstrainInputAcceleration ( const FVector InputAcceleration) const
protectedvirtual

Enforce constraints on input given current state. For instance, don't move upwards if walking and looking up.

◆ ControlledCharacterMove()

void UCharacterMovementComponent::ControlledCharacterMove ( const FVector InputVector,
float  DeltaSeconds 
)
protectedvirtual

Updates acceleration and perform movement, called from the TickComponent on the authoritative side for controlled characters, or on the client for characters without a controller when either playing root motion or bRunPhysicsWithNoController is true.

◆ ConvertLocalRootMotionToWorld()

FTransform UCharacterMovementComponent::ConvertLocalRootMotionToWorld ( const FTransform InLocalRootMotion,
float  DeltaSeconds 
)

◆ ConvertRootMotionServerIDsToLocalIDs()

void UCharacterMovementComponent::ConvertRootMotionServerIDsToLocalIDs ( const FRootMotionSourceGroup LocalRootMotionToMatchWith,
FRootMotionSourceGroup InOutServerRootMotion,
float  TimeStamp 
)

Converts received server IDs in a root motion group to local IDs

◆ Crouch()

void UCharacterMovementComponent::Crouch ( bool  bClientSimulation = false)
virtual

Checks if new capsule size fits (no encroachment), and call CharacterOwner->OnStartCrouch() if successful. In general you should set bWantsToCrouch instead to have the crouch persist during movement, or just use the crouch functions on the owning Character.

Parameters
bClientSimulationtrue when called when bIsCrouched is replicated to non owned clients, to update collision cylinder and offset.

◆ Deactivate()

void UCharacterMovementComponent::Deactivate ( )
overridevirtual

Deactivates the SceneComponent.

Reimplemented from UMovementComponent.

◆ DecayFormerBaseVelocity()

void UCharacterMovementComponent::DecayFormerBaseVelocity ( float  deltaTime)
protected

Reduces former base velocity according to FormerBaseVelocityDecayHalfLife

◆ DisableMovement()

void UCharacterMovementComponent::DisableMovement ( )
virtual

Make movement impossible (sets movement mode to MOVE_None).

◆ DisplayDebug()

void UCharacterMovementComponent::DisplayDebug ( class UCanvas Canvas,
const FDebugDisplayInfo DebugDisplay,
float YL,
float YPos 
)
virtual

Draw important variables on canvas. Character will call DisplayDebug() on the current ViewTarget when the ShowDebug exec is used

Parameters
Canvas- Canvas to draw on
DebugDisplay- Contains information about what debug data to display
YL- Height of the current font
YPos- Y position on Canvas. YPos += YL, gives position to draw text for next debug line.

◆ DoJump() [1/2]

bool UCharacterMovementComponent::DoJump ( bool  bReplayingMoves)
virtual

NOTE: THIS FUNCTION IS DEPRECATED, PLEASE CALL DoJump(bool bReplayingMoves, float DeltaTime) ...

◆ DoJump() [2/2]

bool UCharacterMovementComponent::DoJump ( bool  bReplayingMoves,
float  DeltaTime 
)
virtual

Perform jump. Called by Character when a jump has been detected because Character->bPressedJump was true. Checks Character->CanJump(). Note that you should usually trigger a jump through Character::Jump() instead.

Parameters
bReplayingMovestrue if this is being done as part of replaying moves on a locally controlled client after a server correction.
DeltaTimetime slice for this jump move
Returns
True if the jump was triggered successfully.

◆ FillAsyncInput()

void UCharacterMovementComponent::FillAsyncInput ( const FVector InputVector,
FCharacterMovementComponentAsyncInput AsyncInput 
)
protectedvirtual

◆ FindBestNavMeshLocation()

void UCharacterMovementComponent::FindBestNavMeshLocation ( const FVector TraceStart,
const FVector TraceEnd,
const FVector CurrentFeetLocation,
const FVector TargetNavLocation,
FHitResult OutHitResult 
) const
protectedvirtual

Performs trace for ProjectLocationFromNavMesh

◆ FindFloor()

void UCharacterMovementComponent::FindFloor ( const FVector CapsuleLocation,
FFindFloorResult OutFloorResult,
bool  bCanUseCachedLocation,
const FHitResult DownwardSweepResult = NULL 
) const
virtual

Sweeps a vertical trace to find the floor for the capsule at the given location. Will attempt to perch if ShouldComputePerchResult() returns true for the downward sweep result. No floor will be found if collision is disabled on the capsule!

Parameters
CapsuleLocationLocation where the capsule sweep should originate
OutFloorResult[Out] Contains the result of the floor check. The HitResult will contain the valid sweep or line test upon success, or the result of the sweep upon failure.
bCanUseCachedLocationIf true, may use a cached value (can be used to avoid unnecessary floor tests, if for example the capsule was not moving since the last test).
DownwardSweepResultIf non-null and it contains valid blocking hit info, this will be used as the result of a downward sweep test instead of doing it as part of the update.

◆ FindNavFloor()

bool UCharacterMovementComponent::FindNavFloor ( const FVector TestLocation,
FNavLocation NavFloorLocation 
) const
virtual

Project a location to navmesh to find adjusted height.

Parameters
TestLocationLocation to project
NavFloorLocationLocation on navmesh
Returns
True if projection was performed (successfully or not)

◆ FindWaterLine()

FVector UCharacterMovementComponent::FindWaterLine ( FVector  Start,
FVector  End 
)

Get as close to waterline as possible, staying on same side as currently.

◆ FloorSweepTest()

bool UCharacterMovementComponent::FloorSweepTest ( struct FHitResult OutHit,
const FVector Start,
const FVector End,
ECollisionChannel  TraceChannel,
const struct FCollisionShape CollisionShape,
const struct FCollisionQueryParams Params,
const struct FCollisionResponseParams ResponseParam 
) const
virtual

Sweep against the world and return the first blocking hit. Intended for tests against the floor, because it may change the result of impacts on the lower area of the test (especially if bUseFlatBaseForFloorChecks is true).

Parameters
OutHitFirst blocking hit found.
StartStart location of the capsule.
EndEnd location of the capsule.
TraceChannelThe 'channel' that this trace is in, used to determine which components to hit.
CollisionShapeCapsule collision shape.
ParamsAdditional parameters used for the trace.
ResponseParamResponseContainer to be used for this trace.
Returns
True if OutHit contains a blocking hit entry.

◆ FlushServerMoves()

void UCharacterMovementComponent::FlushServerMoves ( )
virtual

◆ ForceClientAdjustment()

void UCharacterMovementComponent::ForceClientAdjustment ( )

Force a client adjustment. Resets ServerLastClientAdjustmentTime.

◆ ForcePositionUpdate()

bool UCharacterMovementComponent::ForcePositionUpdate ( float  DeltaTime)
overridevirtual

◆ ForceReplicationUpdate()

void UCharacterMovementComponent::ForceReplicationUpdate ( )
virtual

Force a client update by making it appear on the server that the client hasn't updated in a long time.

◆ GetActorFeetLocation()

FVector UCharacterMovementComponent::GetActorFeetLocation ( ) const
overridevirtual

Returns location of controlled actor's "feet" meaning center of bottom of collision bounding box

Reimplemented from UNavMovementComponent.

◆ GetAirControl()

FVector UCharacterMovementComponent::GetAirControl ( float  DeltaTime,
float  TickAirControl,
const FVector FallAcceleration 
)
virtual

Get the air control to use during falling movement. Given an initial air control (TickAirControl), applies the result of BoostAirControl(). This function is used internally by GetFallingLateralAcceleration().

Parameters
DeltaTimeTime step for the current update.
TickAirControlCurrent air control value.
FallAccelerationAcceleration used during movement.
Returns
Air control to use during falling movement.
See also
AirControl, BoostAirControl(), LimitAirControl(), GetFallingLateralAcceleration()

◆ GetAnalogInputModifier()

float UCharacterMovementComponent::GetAnalogInputModifier ( ) const

Returns modifier [0..1] based on the magnitude of the last input vector, which is used to modify the acceleration and max speed during movement.

◆ GetAvoidanceGroupMask()

int32 UCharacterMovementComponent::GetAvoidanceGroupMask ( )
overridevirtual

This actor's avoidance group mask

Implements IRVOAvoidanceInterface.

◆ GetBestDirectionOffActor()

FVector UCharacterMovementComponent::GetBestDirectionOffActor ( AActor BaseActor) const
virtual

Can be overridden to choose to jump based on character velocity, base actor dimensions, etc.

◆ GetCharacterOwner()

ACharacter * UCharacterMovementComponent::GetCharacterOwner ( ) const
inline

Get the Character that owns UpdatedComponent.

◆ GetClientNetSendDeltaTime()

float UCharacterMovementComponent::GetClientNetSendDeltaTime ( const APlayerController PC,
const FNetworkPredictionData_Client_Character ClientData,
const FSavedMovePtr NewMove 
) const
protectedvirtual

Determine minimum delay between sending client updates to the server. If updates occur more frequently this than this time, moves may be combined delayed.

◆ GetCrouchedHalfHeight()

float UCharacterMovementComponent::GetCrouchedHalfHeight ( ) const

Returns the collision half-height when crouching (component scale is applied separately)

◆ GetCurrentAcceleration()

FVector UCharacterMovementComponent::GetCurrentAcceleration ( ) const

Returns current acceleration, computed from input vector each update.

◆ GetCurrentNetworkMoveData()

FCharacterNetworkMoveData * UCharacterMovementComponent::GetCurrentNetworkMoveData ( ) const
inlineprotected

Current move data being processed or handled. This is set before MoveAutonomous (for replayed moves and server moves), and cleared thereafter. Useful for being able to access custom movement data during internal movement functions such as MoveAutonomous() or UpdateFromCompressedFlags() to be able to maintain backwards API compatibility.

◆ GetCurrentReplayedSavedMove()

const FSavedMove_Character * UCharacterMovementComponent::GetCurrentReplayedSavedMove ( ) const
inline

Gets the SavedMove being replayed on the client after a correction is received.

See also
: ClientUpdatePositionAfterServerUpdate

◆ GetDeltaRotation()

FRotator UCharacterMovementComponent::GetDeltaRotation ( float  DeltaTime) const
virtual

Returns how far to rotate character during the time interval DeltaTime.

◆ GetFallingLateralAcceleration()

FVector UCharacterMovementComponent::GetFallingLateralAcceleration ( float  DeltaTime)
virtual

Get the lateral acceleration to use during falling movement. The Z component of the result is ignored. Default implementation returns current Acceleration value modified by GetAirControl(), with Z component removed, with magnitude clamped to GetMaxAcceleration(). This function is used internally by PhysFalling().

Parameters
DeltaTimeTime step for the current update.
Returns
Acceleration to use during falling movement.

◆ GetGravityDirection()

FVector UCharacterMovementComponent::GetGravityDirection ( ) const
inline

Returns the current gravity direction.

◆ GetGravitySpaceComponentZ()

FVector UCharacterMovementComponent::GetGravitySpaceComponentZ ( const FVector Vector) const
inline

Returns the component of the vector in the gravity-space vertical direction.

◆ GetGravitySpaceZ()

FVector::FReal UCharacterMovementComponent::GetGravitySpaceZ ( const FVector Vector) const
inline

Returns the size of a vector in the gravity-space vertical direction.

◆ GetGravityToWorldTransform()

FQuat UCharacterMovementComponent::GetGravityToWorldTransform ( ) const
inline

Returns a quaternion transforming from gravity to world space.

◆ GetGravityZ()

float UCharacterMovementComponent::GetGravityZ ( ) const
overridevirtual

Returns gravity that affects this component

Reimplemented from UMovementComponent.

◆ GetGroundMovementMode()

EMovementMode UCharacterMovementComponent::GetGroundMovementMode ( ) const
inline

Get current GroundMovementMode value.

Returns
current GroundMovementMode
See also
GroundMovementMode, SetGroundMovementMode()

◆ GetGroupsToAvoidMask()

int32 UCharacterMovementComponent::GetGroupsToAvoidMask ( )
overridevirtual

Agent groups to avoid mask

Implements IRVOAvoidanceInterface.

◆ GetGroupsToIgnoreMask()

int32 UCharacterMovementComponent::GetGroupsToIgnoreMask ( )
overridevirtual

Agent groups to ignore

Implements IRVOAvoidanceInterface.

◆ GetImpartedMovementBaseVelocity()

FVector UCharacterMovementComponent::GetImpartedMovementBaseVelocity ( ) const
virtual

If we have a movement base, get the velocity that should be imparted by that base, usually when jumping off of it. Only applies the components of the velocity enabled by bImpartBaseVelocityX, bImpartBaseVelocityY, bImpartBaseVelocityZ.

◆ GetLastServerMovementBase()

UPrimitiveComponent * UCharacterMovementComponent::GetLastServerMovementBase ( ) const
inline

Accessor to the Last Server Movement Base, only relevant during server update

◆ GetLastUpdateLocation()

FVector UCharacterMovementComponent::GetLastUpdateLocation ( ) const
inline

Returns the location at the end of the last tick.

◆ GetLastUpdateQuat()

FQuat UCharacterMovementComponent::GetLastUpdateQuat ( ) const
inline

Returns the rotation Quat at the end of the last tick.

◆ GetLastUpdateRequestedVelocity()

FVector UCharacterMovementComponent::GetLastUpdateRequestedVelocity ( ) const

Returns velocity requested by path following

◆ GetLastUpdateRotation()

FRotator UCharacterMovementComponent::GetLastUpdateRotation ( ) const
inline

Returns the rotation at the end of the last tick.

◆ GetLastUpdateVelocity()

FVector UCharacterMovementComponent::GetLastUpdateVelocity ( ) const
inline

Returns the velocity at the end of the last tick.

◆ GetLedgeMove()

FVector UCharacterMovementComponent::GetLedgeMove ( const FVector OldLocation,
const FVector Delta,
const FFindFloorResult OldFloor 
) const
virtual
Parameters
Deltais the current move delta (which ended up going over a ledge).
Returns
new delta which moves along the ledge

◆ GetMaxAcceleration()

float UCharacterMovementComponent::GetMaxAcceleration ( ) const
virtual

Returns maximum acceleration for the current state.

◆ GetMaxBrakingDeceleration()

float UCharacterMovementComponent::GetMaxBrakingDeceleration ( ) const
virtual

Returns maximum deceleration for the current state when braking (ie when there is no acceleration).

◆ GetMaxJumpHeight()

float UCharacterMovementComponent::GetMaxJumpHeight ( ) const
virtual

Compute the max jump height based on the JumpZVelocity velocity and gravity. This does not take into account the CharacterOwner's MaxJumpHoldTime.

◆ GetMaxJumpHeightWithJumpTime()

float UCharacterMovementComponent::GetMaxJumpHeightWithJumpTime ( ) const
virtual

Compute the max jump height based on the JumpZVelocity velocity and gravity. This does take into account the CharacterOwner's MaxJumpHoldTime.

◆ GetMaxSpeed()

float UCharacterMovementComponent::GetMaxSpeed ( ) const
overridevirtual

Returns maximum speed of component in current movement mode.

Reimplemented from UMovementComponent.

◆ GetMinAnalogSpeed()

float UCharacterMovementComponent::GetMinAnalogSpeed ( ) const
virtual

Returns maximum acceleration for the current state.

◆ GetMovementBase()

UPrimitiveComponent * UCharacterMovementComponent::GetMovementBase ( ) const

Return PrimitiveComponent we are based on (standing and walking on).

◆ GetMovementName()

FString UCharacterMovementComponent::GetMovementName ( ) const
virtual

Returns MovementMode string

◆ GetMoveResponseDataContainer()

FCharacterMoveResponseDataContainer & UCharacterMovementComponent::GetMoveResponseDataContainer ( ) const
inlineprotected

Get the struct used for server response RPC serialization.

See also
SetMoveResponseDataContainer(), ClientHandleMoveResponse(), ServerSendMoveResponse().

◆ GetNavData()

const INavigationDataInterface * UCharacterMovementComponent::GetNavData ( ) const
protected

Get Navigation data for the Character. Returns null if there is no associated nav data.

◆ GetNetworkMoveDataContainer()

FCharacterNetworkMoveDataContainer & UCharacterMovementComponent::GetNetworkMoveDataContainer ( ) const
inlineprotected

Get the struct used for client to server move RPC serialization.

See also
SetNetworkMoveDataContainer()

◆ GetNetworkSafeRandomAngleDegrees()

float UCharacterMovementComponent::GetNetworkSafeRandomAngleDegrees ( ) const
virtual

Generate a random angle in degrees that is approximately equal between client and server. Note that in networked games this result changes with low frequency and has a low period, so should not be used for frequent randomization.

◆ GetPathFollowingBrakingDistance()

float UCharacterMovementComponent::GetPathFollowingBrakingDistance ( float  MaxSpeed) const
overridevirtual

Returns braking distance for acceleration driven path following

Reimplemented from INavMovementInterface.

◆ GetPawnCapsuleCollisionShape()

FCollisionShape UCharacterMovementComponent::GetPawnCapsuleCollisionShape ( const EShrinkCapsuleExtent  ShrinkMode,
const float  CustomShrinkAmount = 0.f 
) const
protected

Get the collision shape for the Pawn owner, possibly reduced in size depending on ShrinkMode.

Parameters
ShrinkModeControls the way the capsule is resized.
CustomShrinkAmountThe amount to shrink the capsule, used only for ShrinkModes that specify custom.
Returns
The capsule extent of the Pawn owner, possibly reduced in size depending on ShrinkMode.

◆ GetPawnCapsuleExtent()

FVector UCharacterMovementComponent::GetPawnCapsuleExtent ( const EShrinkCapsuleExtent  ShrinkMode,
const float  CustomShrinkAmount = 0.f 
) const
protected

Get the capsule extent for the Pawn owner, possibly reduced in size depending on ShrinkMode.

Parameters
ShrinkModeControls the way the capsule is resized.
CustomShrinkAmountThe amount to shrink the capsule, used only for ShrinkModes that specify custom.
Returns
The capsule extent of the Pawn owner, possibly reduced in size depending on ShrinkMode.

◆ GetPenetrationAdjustment()

FVector UCharacterMovementComponent::GetPenetrationAdjustment ( const FHitResult Hit) const
overrideprotectedvirtual

Overridden to enforce max distances based on hit geometry.

Reimplemented from UMovementComponent.

◆ GetPerchRadiusThreshold()

float UCharacterMovementComponent::GetPerchRadiusThreshold ( ) const

Returns The distance from the edge of the capsule within which we don't allow the character to perch on the edge of a surface.

◆ GetPredictionData_Client()

FNetworkPredictionData_Client * UCharacterMovementComponent::GetPredictionData_Client ( ) const
overridevirtual

Get prediction data for a client game. Should not be used if not running as a client. Allocates the data on demand and can be overridden to allocate a custom override if desired. Result must be a FNetworkPredictionData_Client_Character.

◆ GetPredictionData_Client_Character()

FNetworkPredictionData_Client_Character * UCharacterMovementComponent::GetPredictionData_Client_Character ( ) const

◆ GetPredictionData_Server()

FNetworkPredictionData_Server * UCharacterMovementComponent::GetPredictionData_Server ( ) const
overridevirtual

Get prediction data for a server game. Should not be used if not running as a server. Allocates the data on demand and can be overridden to allocate a custom override if desired. Result must be a FNetworkPredictionData_Server_Character.

◆ GetPredictionData_Server_Character()

FNetworkPredictionData_Server_Character * UCharacterMovementComponent::GetPredictionData_Server_Character ( ) const

◆ GetRootMotionSource()

TSharedPtr< FRootMotionSource > UCharacterMovementComponent::GetRootMotionSource ( FName  InstanceName)

Get a RootMotionSource from current root motion by name

◆ GetRootMotionSourceByID()

TSharedPtr< FRootMotionSource > UCharacterMovementComponent::GetRootMotionSourceByID ( uint16  RootMotionSourceID)

Get a RootMotionSource from current root motion by ID

◆ GetRVOAvoidanceConsiderationRadius()

float UCharacterMovementComponent::GetRVOAvoidanceConsiderationRadius ( )
overridevirtual

The scaled collider radius to consider for RVO avoidance

Implements IRVOAvoidanceInterface.

◆ GetRVOAvoidanceHeight()

float UCharacterMovementComponent::GetRVOAvoidanceHeight ( )
overridevirtual

The scaled collider height to consider for RVO avoidance

Implements IRVOAvoidanceInterface.

◆ GetRVOAvoidanceOrigin()

FVector UCharacterMovementComponent::GetRVOAvoidanceOrigin ( )
overridevirtual

Get the Location from where the RVO avoidance should originate

Implements IRVOAvoidanceInterface.

◆ GetRVOAvoidanceRadius()

float UCharacterMovementComponent::GetRVOAvoidanceRadius ( )
overridevirtual

The scaled collider radius to consider for RVO avoidance

Implements IRVOAvoidanceInterface.

◆ GetRVOAvoidanceUID()

int32 UCharacterMovementComponent::GetRVOAvoidanceUID ( )
overridevirtual

Return the AvoidanceUID assigned by the Avoidance Manager during registration

Implements IRVOAvoidanceInterface.

◆ GetRVOAvoidanceUIDFast()

int32 UCharacterMovementComponent::GetRVOAvoidanceUIDFast ( ) const
inline

END IRVOAvoidanceInterface a shortcut function to be called instead of GetRVOAvoidanceUID when callee knows it's dealing with a char movement comp

◆ GetRVOAvoidanceWeight()

float UCharacterMovementComponent::GetRVOAvoidanceWeight ( )
overridevirtual

Returns the AvoidanceWeight assigned by the Avoidance Manager during registration

Implements IRVOAvoidanceInterface.

◆ GetServerLastTransformUpdateTimeStamp()

float UCharacterMovementComponent::GetServerLastTransformUpdateTimeStamp ( ) const
inline

Get the value of ServerLastTransformUpdateTimeStamp.

◆ GetSimulationTimeStep()

float UCharacterMovementComponent::GetSimulationTimeStep ( float  RemainingTime,
int32  Iterations 
) const

Compute remaining time step given remaining time and current iterations. The last iteration (limited by MaxSimulationIterations) always returns the remaining time, which may violate MaxSimulationTimeStep.

Parameters
RemainingTimeRemaining time in the tick.
IterationsCurrent iteration of the tick (starting at 1).
Returns
The remaining time step to use for the next sub-step of iteration.
See also
MaxSimulationTimeStep, MaxSimulationIterations

◆ GetTeleportType()

ETeleportType UCharacterMovementComponent::GetTeleportType ( ) const

When moving the character, we should inform physics as to whether we are teleporting. This allows physics to avoid injecting forces into simulations from client corrections (etc.)

◆ GetValidPerchRadius()

float UCharacterMovementComponent::GetValidPerchRadius ( ) const

Returns the radius within which we can stand on the edge of a surface without falling (if this is a walkable surface). Simply computed as the capsule radius minus the result of GetPerchRadiusThreshold().

◆ GetVelocityForRVOConsideration()

FVector UCharacterMovementComponent::GetVelocityForRVOConsideration ( )
overridevirtual

The velocity of the avoiding entity

Implements IRVOAvoidanceInterface.

◆ GetWalkableFloorAngle()

float UCharacterMovementComponent::GetWalkableFloorAngle ( ) const
inline

Get the max angle in degrees of a walkable surface for the character.

◆ GetWalkableFloorZ()

float UCharacterMovementComponent::GetWalkableFloorZ ( ) const
inline

Get the Z component of the normal of the steepest walkable surface for the character. Any lower than this and it is not walkable.

◆ GetWorldToGravityTransform()

FQuat UCharacterMovementComponent::GetWorldToGravityTransform ( ) const
inline

Returns a quaternion transforming from world to gravity space.

◆ HandleImpact()

void UCharacterMovementComponent::HandleImpact ( const FHitResult Hit,
float  TimeSlice = 0.f,
const FVector MoveDelta = FVector::ZeroVector 
)
overrideprotectedvirtual

Handle a blocking impact. Calls ApplyImpactPhysicsForces for the hit, if bEnablePhysicsInteraction is true.

Reimplemented from UMovementComponent.

◆ HandlePendingLaunch()

bool UCharacterMovementComponent::HandlePendingLaunch ( )
virtual

Handle a pending launch during an update. Returns true if the launch was triggered.

◆ HandleSlopeBoosting()

FVector UCharacterMovementComponent::HandleSlopeBoosting ( const FVector SlideResult,
const FVector Delta,
const float  Time,
const FVector Normal,
const FHitResult Hit 
) const
protectedvirtual

Limit the slide vector when falling if the resulting slide might boost the character faster upwards.

Parameters
SlideResultVector of movement for the slide (usually the result of ComputeSlideVector)
DeltaOriginal attempted move
TimeAmount of move to apply (between 0 and 1).
NormalNormal opposed to movement. Not necessarily equal to Hit.Normal (but usually is).
HitHitResult of the move that resulted in the slide.
Returns
: New slide result.

◆ HandleSwimmingWallHit()

void UCharacterMovementComponent::HandleSwimmingWallHit ( const FHitResult Hit,
float  DeltaTime 
)
protectedvirtual

◆ HandleWalkingOffLedge()

void UCharacterMovementComponent::HandleWalkingOffLedge ( const FVector PreviousFloorImpactNormal,
const FVector PreviousFloorContactNormal,
const FVector PreviousLocation,
float  TimeDelta 
)
virtual

Trigger OnWalkingOffLedge event on CharacterOwner.

◆ HasAnimRootMotion()

bool UCharacterMovementComponent::HasAnimRootMotion ( ) const
inline

Returns true if we have Root Motion from animation to use in PerformMovement() physics. Not valid outside of the scope of that function. Since RootMotion is extracted and used in it.

◆ HasCustomGravity()

bool UCharacterMovementComponent::HasCustomGravity ( ) const
inline

Whether the gravity direction is different from UCharacterMovementComponent::DefaultGravityDirection.

◆ HasPredictionData_Client()

bool UCharacterMovementComponent::HasPredictionData_Client ( ) const
overridevirtual

◆ HasPredictionData_Server()

bool UCharacterMovementComponent::HasPredictionData_Server ( ) const
overridevirtual

◆ HasRootMotionSources()

bool UCharacterMovementComponent::HasRootMotionSources ( ) const

Returns true if we have Root Motion from any source to use in PerformMovement() physics.

Root Motion

◆ HasValidData()

bool UCharacterMovementComponent::HasValidData ( ) const
virtual

Return true if we have a valid CharacterOwner and UpdatedComponent.

◆ ImmersionDepth()

float UCharacterMovementComponent::ImmersionDepth ( ) const
virtual

◆ IsAsyncCallbackRegistered()

bool UCharacterMovementComponent::IsAsyncCallbackRegistered ( ) const
protectedvirtual

◆ IsClientTimeStampValid()

bool UCharacterMovementComponent::IsClientTimeStampValid ( float  TimeStamp,
const FNetworkPredictionData_Server_Character ServerData,
bool bTimeStampResetDetected 
) const
protected

Internal const check for client timestamp validity without side-effects.

See also
VerifyClientTimeStamp

◆ IsCrouching()

bool UCharacterMovementComponent::IsCrouching ( ) const
overridevirtual

Returns true if currently crouching

Reimplemented from UNavMovementComponent.

◆ IsFalling()

bool UCharacterMovementComponent::IsFalling ( ) const
overridevirtual

Returns true if currently falling (not flying, in a non-fluid volume, and not on the ground)

Reimplemented from UNavMovementComponent.

◆ IsFlying()

bool UCharacterMovementComponent::IsFlying ( ) const
overridevirtual

Returns true if currently flying (moving through a non-fluid volume without resting on the ground)

Reimplemented from UNavMovementComponent.

◆ IsMovementInProgress()

bool UCharacterMovementComponent::IsMovementInProgress ( ) const
inline

Returns true if currently performing a movement update.

See also
bMovementInProgress

◆ IsMovingOnGround()

bool UCharacterMovementComponent::IsMovingOnGround ( ) const
overridevirtual

Returns true if currently moving on the ground (e.g. walking or driving)

Reimplemented from UNavMovementComponent.

◆ IsSwimming()

bool UCharacterMovementComponent::IsSwimming ( ) const
overridevirtual

Returns true if currently swimming (moving through a fluid volume)

Reimplemented from UNavMovementComponent.

◆ IsValidLandingSpot()

bool UCharacterMovementComponent::IsValidLandingSpot ( const FVector CapsuleLocation,
const FHitResult Hit 
) const
virtual

Verify that the supplied hit result is a valid landing spot when falling.

◆ IsWalkable()

bool UCharacterMovementComponent::IsWalkable ( const FHitResult Hit) const
virtual

Return true if the hit result should be considered a walkable surface for the character.

◆ IsWalking()

bool UCharacterMovementComponent::IsWalking ( ) const
inline

Returns true if the character is in the 'Walking' movement mode.

◆ IsWithinEdgeTolerance()

bool UCharacterMovementComponent::IsWithinEdgeTolerance ( const FVector CapsuleLocation,
const FVector TestImpactPoint,
const float  CapsuleRadius 
) const
virtual

Return true if the 2D distance to the impact point is inside the edge tolerance (CapsuleRadius minus a small rejection threshold). Useful for rejecting adjacent hits when finding a floor or landing spot.

◆ JumpOff()

void UCharacterMovementComponent::JumpOff ( AActor MovementBaseActor)
virtual

Force this pawn to bounce off its current base, which isn't an acceptable base for it.

◆ JumpOutOfWater()

void UCharacterMovementComponent::JumpOutOfWater ( FVector  WallNormal)
virtual

Jump onto shore from water

◆ K2_ComputeFloorDist()

void UCharacterMovementComponent::K2_ComputeFloorDist ( FVector  CapsuleLocation,
float  LineDistance,
float  SweepDistance,
float  SweepRadius,
FFindFloorResult FloorResult 
) const
virtual

Compute distance to the floor from bottom sphere of capsule and store the result in FloorResult. This distance is the swept distance of the capsule to the first point impacted by the lower hemisphere, or distance from the bottom of the capsule in the case of a line trace. This function does not care if collision is disabled on the capsule (unlike FindFloor).

Parameters
CapsuleLocationLocation where the capsule sweep should originate
LineDistanceIf non-zero, max distance to test for a simple line check from the capsule base. Used only if the sweep test fails to find a walkable floor, and only returns a valid result if the impact normal is a walkable normal.
SweepDistanceIf non-zero, max distance to use when sweeping a capsule downwards for the test. MUST be greater than or equal to the line distance.
SweepRadiusThe radius to use for sweep tests. Should be <= capsule radius.
FloorResultResult of the floor check

◆ K2_FindFloor()

void UCharacterMovementComponent::K2_FindFloor ( FVector  CapsuleLocation,
FFindFloorResult FloorResult 
) const
virtual

Sweeps a vertical trace to find the floor for the capsule at the given location. Will attempt to perch if ShouldComputePerchResult() returns true for the downward sweep result. No floor will be found if collision is disabled on the capsule!

Parameters
CapsuleLocationLocation where the capsule sweep should originate
FloorResultResult of the floor check

◆ K2_GetWalkableFloorAngle()

float UCharacterMovementComponent::K2_GetWalkableFloorAngle ( ) const

Get the max angle in degrees of a walkable surface for the character.

◆ K2_GetWalkableFloorZ()

float UCharacterMovementComponent::K2_GetWalkableFloorZ ( ) const

Get the Z component of the normal of the steepest walkable surface for the character. Any lower than this and it is not walkable.

◆ Launch()

void UCharacterMovementComponent::Launch ( FVector const &  LaunchVel)
virtual

Queue a pending launch with velocity LaunchVel.

◆ LimitAirControl()

FVector UCharacterMovementComponent::LimitAirControl ( float  DeltaTime,
const FVector FallAcceleration,
const FHitResult HitResult,
bool  bCheckForValidLandingSpot 
)
protectedvirtual

Limits the air control to use during falling movement, given an impact while falling. This function is used internally by PhysFalling().

Parameters
DeltaTimeTime step for the current update.
FallAccelerationAcceleration used during movement.
HitResultResult of impact.
bCheckForValidLandingSpotIf true, will use IsValidLandingSpot() to determine if HitResult is a walkable surface. If false, this check is skipped.
Returns
Modified air control acceleration to use during falling movement.
See also
PhysFalling()

◆ MaintainHorizontalGroundVelocity()

void UCharacterMovementComponent::MaintainHorizontalGroundVelocity ( )
protectedvirtual

Adjusts velocity when walking so that Z velocity is zero. When bMaintainHorizontalGroundVelocity is false, also rescales the velocity vector to maintain the original magnitude, but in the horizontal direction.

◆ MaybeSaveBaseLocation()

void UCharacterMovementComponent::MaybeSaveBaseLocation ( )
virtual

Call SaveBaseLocation() if not deferring updates (bDeferUpdateBasedMovement is false).

◆ MaybeUpdateBasedMovement()

void UCharacterMovementComponent::MaybeUpdateBasedMovement ( float  DeltaSeconds)
virtual

Update or defer updating of position based on Base movement

◆ MoveAlongFloor()

void UCharacterMovementComponent::MoveAlongFloor ( const FVector InVelocity,
float  DeltaSeconds,
FStepDownResult OutStepDownResult = NULL 
)
protectedvirtual

Move along the floor, using CurrentFloor and ComputeGroundMovementDelta() to get a movement direction. If a second walkable surface is hit, it will also be moved along using the same approach.

Parameters
InVelocityVelocity of movement
DeltaSecondsTime over which movement occurs
OutStepDownResult[Out] If non-null, and a floor check is performed, this will be updated to reflect that result.

◆ MoveAutonomous()

void UCharacterMovementComponent::MoveAutonomous ( float  ClientTimeStamp,
float  DeltaTime,
uint8  CompressedFlags,
const FVector NewAccel 
)
protectedvirtual

◆ MoveResponsePacked_ClientReceive()

void UCharacterMovementComponent::MoveResponsePacked_ClientReceive ( const FCharacterMoveResponsePackedBits PackedBits)

◆ MoveResponsePacked_ServerSend()

void UCharacterMovementComponent::MoveResponsePacked_ServerSend ( const FCharacterMoveResponsePackedBits PackedBits)

◆ MoveSmooth()

void UCharacterMovementComponent::MoveSmooth ( const FVector InVelocity,
const float  DeltaSeconds,
FStepDownResult OutStepDownResult = NULL 
)
virtual

Moves along the given movement direction using simple movement rules based on the current movement mode (usually used by simulated proxies).

Parameters
InVelocityVelocity of movement
DeltaSecondsTime over which movement occurs
OutStepDownResult[Out] If non-null, and a floor check is performed, this will be updated to reflect that result.

◆ NewFallVelocity()

FVector UCharacterMovementComponent::NewFallVelocity ( const FVector InitialVelocity,
const FVector Gravity,
float  DeltaTime 
) const
virtual

Compute new falling velocity from given velocity and gravity. Applies the limits of the current Physics Volume's TerminalVelocity.

◆ NotifyBumpedPawn()

void UCharacterMovementComponent::NotifyBumpedPawn ( APawn *  BumpedPawn)
overridevirtual

Notify of collision in case we want to react, such as waking up avoidance or pathing code.

Reimplemented from UPawnMovementComponent.

◆ NotifyJumpApex()

void UCharacterMovementComponent::NotifyJumpApex ( )
virtual

Called if bNotifyApex is true and character has just passed the apex of its jump.

◆ OnCharacterStuckInGeometry()

void UCharacterMovementComponent::OnCharacterStuckInGeometry ( const FHitResult Hit)
protectedvirtual

Notification that the character is stuck in geometry. Only called during walking movement.

◆ OnClientCorrectionReceived()

void UCharacterMovementComponent::OnClientCorrectionReceived ( class FNetworkPredictionData_Client_Character ClientData,
float  TimeStamp,
FVector  NewLocation,
FVector  NewVelocity,
UPrimitiveComponent *  NewBase,
FName  NewBaseBoneName,
bool  bHasBase,
bool  bBaseRelativePosition,
uint8  ServerMovementMode,
FVector  ServerGravityDirection 
)
protectedvirtual

Event notification when client receives correction data from the server, before applying the data. Base implementation logs relevant data and draws debug info if "p.NetShowCorrections" is not equal to 0.

UE_BUILD_SHIPPING

◆ OnClientTimeStampResetDetected()

void UCharacterMovementComponent::OnClientTimeStampResetDetected ( )
protectedvirtual

Called by UCharacterMovementComponent::VerifyClientTimeStamp() when a client timestamp reset has been detected and is valid.

◆ OnMovementModeChanged()

void UCharacterMovementComponent::OnMovementModeChanged ( EMovementMode  PreviousMovementMode,
uint8  PreviousCustomMode 
)
protectedvirtual

Called after MovementMode has changed. Base implementation does special handling for starting certain modes, then notifies the CharacterOwner.

◆ OnMovementUpdated()

void UCharacterMovementComponent::OnMovementUpdated ( float  DeltaSeconds,
const FVector OldLocation,
const FVector OldVelocity 
)
protectedvirtual

Event triggered at the end of a movement update. If scoped movement updates are enabled (bEnableScopedMovementUpdates), this is within such a scope. If that is not desired, bind to the CharacterOwner's OnMovementUpdated event instead, as that is triggered after the scoped movement update.

◆ OnRegister()

void UCharacterMovementComponent::OnRegister ( )
overridevirtual

Overridden to update component properties that should be updated while being edited.

Reimplemented from UMovementComponent.

◆ OnRootMotionSourceBeingApplied()

void UCharacterMovementComponent::OnRootMotionSourceBeingApplied ( const FRootMotionSource Source)
virtual

Called during ApplyRootMotionSource call, useful for project-specific alerts for "something is about to be altering our movement"

◆ OnTeleported()

void UCharacterMovementComponent::OnTeleported ( )
overridevirtual

Called by owning Character upon successful teleport from AActor::TeleportTo().

Reimplemented from UPawnMovementComponent.

◆ OnTimeDiscrepancyDetected()

void UCharacterMovementComponent::OnTimeDiscrepancyDetected ( float  CurrentTimeDiscrepancy,
float  LifetimeRawTimeDiscrepancy,
float  Lifetime,
float  CurrentMoveError 
)
protectedvirtual

Called by UCharacterMovementComponent::ProcessClientTimeStampForTimeDiscrepancy() (on server) when the time from client moves significantly differs from the server time, indicating potential time manipulation by clients (speed hacks, significant network issues, client performance problems)

Parameters
CurrentTimeDiscrepancyAccumulated time difference between client ServerMove and server time - this is bounded by MovementTimeDiscrepancy config variables in AGameNetworkManager, and is the value with which we test against to trigger this function. This is reset when MovementTimeDiscrepancy resolution is enabled
LifetimeRawTimeDiscrepancyAccumulated time difference between client ServerMove and server time - this is unbounded and does NOT get affected by MovementTimeDiscrepancy resolution, and is useful as a longer-term view of how the given client is performing. High magnitude unbounded error points to intentional tampering by a client vs. occasional "naturally caused" spikes in error due to burst packet loss/performance hitches
LifetimeGame time over which LifetimeRawTimeDiscrepancy has accrued (useful for determining severity of LifetimeUnboundedError)
CurrentMoveErrorTime difference between client ServerMove and how much time has passed on the server for the current move that has caused TimeDiscrepancy to accumulate enough to trigger detection.

◆ OnUnableToFollowBaseMove()

void UCharacterMovementComponent::OnUnableToFollowBaseMove ( const FVector DeltaPosition,
const FVector OldLocation,
const FHitResult MoveOnBaseHit 
)
protectedvirtual

Event triggered when we are moving on a base but we are not able to move the full DeltaPosition because something has blocked us. Note: MoveComponentFlags includes the flag to ignore the movement base while this event is fired.

Parameters
DeltaPositionHow far we tried to move with the base.
OldLocationLocation before we tried to move with the base.
MoveOnBaseHitHit result for the object we hit when trying to move with the base.

◆ PackNetworkMovementMode()

uint8 UCharacterMovementComponent::PackNetworkMovementMode ( ) const
virtual

◆ PackYawAndPitchTo32()

uint32 UCharacterMovementComponent::PackYawAndPitchTo32 ( const float  Yaw,
const float  Pitch 
)
inlinestatic

◆ PerformAirControlForPathFollowing()

void UCharacterMovementComponent::PerformAirControlForPathFollowing ( FVector  Direction,
float  ZDiff 
)
virtual

If ShouldPerformAirControlForPathFollowing() returns true, it will update Velocity and Acceleration to air control in the desired Direction for character using path following.

Parameters
Directionis the desired direction of movement
ZDiffis the height difference between the destination and the Pawn's current position
See also
RequestDirectMove()

◆ PerformMovement()

void UCharacterMovementComponent::PerformMovement ( float  DeltaTime)
protectedvirtual

Perform movement on an autonomous client

◆ PhysCustom()

void UCharacterMovementComponent::PhysCustom ( float  deltaTime,
int32  Iterations 
)
protectedvirtual
Note
Movement update functions should only be called through StartNewPhysics()

◆ PhysFalling()

void UCharacterMovementComponent::PhysFalling ( float  deltaTime,
int32  Iterations 
)
virtual

Handle falling movement.

◆ PhysFlying()

void UCharacterMovementComponent::PhysFlying ( float  deltaTime,
int32  Iterations 
)
protectedvirtual
Note
Movement update functions should only be called through StartNewPhysics()

◆ PhysicsRotation()

void UCharacterMovementComponent::PhysicsRotation ( float  DeltaTime)
virtual

Perform rotation over deltaTime

◆ PhysicsVolumeChanged()

void UCharacterMovementComponent::PhysicsVolumeChanged ( class APhysicsVolume NewVolume)
overridevirtual

Delegate when PhysicsVolume of UpdatedComponent has been changed

Reimplemented from UMovementComponent.

◆ PhysNavWalking()

void UCharacterMovementComponent::PhysNavWalking ( float  deltaTime,
int32  Iterations 
)
protectedvirtual
Note
Movement update functions should only be called through StartNewPhysics()

◆ PhysSwimming()

void UCharacterMovementComponent::PhysSwimming ( float  deltaTime,
int32  Iterations 
)
protectedvirtual
Note
Movement update functions should only be called through StartNewPhysics()

◆ PhysWalking()

void UCharacterMovementComponent::PhysWalking ( float  deltaTime,
int32  Iterations 
)
protectedvirtual
Note
Movement update functions should only be called through StartNewPhysics()

◆ PostBuildAsyncInput()

void UCharacterMovementComponent::PostBuildAsyncInput ( )
protectedvirtual

◆ PostLoad()

void UCharacterMovementComponent::PostLoad ( )
overridevirtual

Do any object-specific cleanup required immediately after loading an object. This is not called for newly-created objects, and by default will always execute on the game thread.

Reimplemented from UMovementComponent.

◆ PostPhysicsTickComponent()

void UCharacterMovementComponent::PostPhysicsTickComponent ( float  DeltaTime,
FCharacterMovementComponentPostPhysicsTickFunction ThisTickFunction 
)
virtual

Tick function called after physics (sync scene) has finished simulation, before cloth

◆ PostProcessAvoidanceVelocity()

void UCharacterMovementComponent::PostProcessAvoidanceVelocity ( FVector NewVelocity)
virtual

allows modifing avoidance velocity, called when bUseRVOPostProcess is set

◆ PrePhysicsTickComponent()

void UCharacterMovementComponent::PrePhysicsTickComponent ( float  DeltaTime,
FCharacterMovementComponentPrePhysicsTickFunction ThisTickFunction 
)
virtual

Tick function called before physics

◆ ProcessAsyncOutput()

void UCharacterMovementComponent::ProcessAsyncOutput ( )
protectedvirtual

◆ ProcessClientTimeStampForTimeDiscrepancy()

void UCharacterMovementComponent::ProcessClientTimeStampForTimeDiscrepancy ( float  ClientTimeStamp,
FNetworkPredictionData_Server_Character ServerData 
)
protectedvirtual

Processes client timestamps from ServerMoves, detects and protects against time discrepancy between client-reported times and server time Called by UCharacterMovementComponent::VerifyClientTimeStamp() for valid timestamps.

◆ ProcessLanded()

void UCharacterMovementComponent::ProcessLanded ( const FHitResult Hit,
float  remainingTime,
int32  Iterations 
)
protectedvirtual

Handle landing against Hit surface over remaingTime and iterations, calling SetPostLandedPhysics() and starting the new movement mode.

◆ ProjectLocationFromNavMesh()

FVector UCharacterMovementComponent::ProjectLocationFromNavMesh ( float  DeltaSeconds,
const FVector CurrentFeetLocation,
const FVector TargetNavLocation,
float  UpOffset,
float  DownOffset 
)
protectedvirtual

Attempts to better align navmesh walking characters with underlying geometry (sometimes navmesh can differ quite significantly from geometry). Updates CachedProjectedNavMeshHitResult, access this for more info about hits.

◆ ProjectToGravityFloor()

FVector UCharacterMovementComponent::ProjectToGravityFloor ( const FVector Vector) const
inline

Project a vector onto the floor defined by the gravity direction.

◆ RegisterAsyncCallback()

void UCharacterMovementComponent::RegisterAsyncCallback ( )
protectedvirtual

◆ RegisterComponentTickFunctions()

void UCharacterMovementComponent::RegisterComponentTickFunctions ( bool  bRegister)
overridevirtual

Virtual call chain to register all tick functions

Parameters
bRegister- true to register, false, to unregister

Reimplemented from UMovementComponent.

◆ RemoveRootMotionSource()

void UCharacterMovementComponent::RemoveRootMotionSource ( FName  InstanceName)

Remove a RootMotionSource from current root motion by name

◆ RemoveRootMotionSourceByID()

void UCharacterMovementComponent::RemoveRootMotionSourceByID ( uint16  RootMotionSourceID)

Remove a RootMotionSource from current root motion by ID

◆ ReplicateMoveToServer()

void UCharacterMovementComponent::ReplicateMoveToServer ( float  DeltaTime,
const FVector NewAcceleration 
)
protectedvirtual

Perform local movement and send the move to the server.

◆ RequestDirectMove()

void UCharacterMovementComponent::RequestDirectMove ( const FVector MoveVelocity,
bool  bForceMaxSpeed 
)
overridevirtual

path following: request new velocity

Reimplemented from UNavMovementComponent.

◆ RequestPathMove()

void UCharacterMovementComponent::RequestPathMove ( const FVector MoveInput)
overridevirtual

path following: request new move input (normal vector = full strength)

Reimplemented from UPawnMovementComponent.

◆ ResetPredictionData_Client()

void UCharacterMovementComponent::ResetPredictionData_Client ( )
overridevirtual

◆ ResetPredictionData_Server()

void UCharacterMovementComponent::ResetPredictionData_Server ( )
overridevirtual

◆ ResolvePenetrationImpl()

bool UCharacterMovementComponent::ResolvePenetrationImpl ( const FVector Adjustment,
const FHitResult Hit,
const FQuat NewRotation 
)
overrideprotectedvirtual

Overridden to set bJustTeleported to true, so we don't make incorrect velocity calculations based on adjusted movement.

Reimplemented from UMovementComponent.

◆ RestorePreAdditiveRootMotionVelocity()

void UCharacterMovementComponent::RestorePreAdditiveRootMotionVelocity ( )
protectedvirtual

Restores Velocity to LastPreAdditiveVelocity during Root Motion Phys*() function calls

◆ RevertMove()

void UCharacterMovementComponent::RevertMove ( const FVector OldLocation,
UPrimitiveComponent *  OldBase,
const FVector InOldBaseLocation,
const FFindFloorResult OldFloor,
bool  bFailMove 
)

Revert to previous position OldLocation, return to being based on OldBase. if bFailMove, stop movement and notify controller

◆ RotateGravityToWorld()

FVector UCharacterMovementComponent::RotateGravityToWorld ( const FVector World) const
inline

Rotate a vector from world to gravity space.

◆ RotateWorldToGravity()

FVector UCharacterMovementComponent::RotateWorldToGravity ( const FVector Gravity) const
inline

Rotate a vector from gravity to world space.

◆ RoundAcceleration()

FVector UCharacterMovementComponent::RoundAcceleration ( FVector  InAccel) const
virtual

Round acceleration, for better consistency and lower bandwidth in networked games.

◆ SaveBaseLocation()

void UCharacterMovementComponent::SaveBaseLocation ( )
virtual

Update OldBaseLocation and OldBaseQuat if there is a valid movement base, and store the relative location/rotation if necessary. Ignores bDeferUpdateBasedMovement and forces the update.

◆ ScaleInputAcceleration()

FVector UCharacterMovementComponent::ScaleInputAcceleration ( const FVector InputAcceleration) const
protectedvirtual

Scale input acceleration, based on movement acceleration rate.

◆ SendClientAdjustment()

void UCharacterMovementComponent::SendClientAdjustment ( )
overridevirtual

◆ Serialize()

void UCharacterMovementComponent::Serialize ( FArchive Ar)
overridevirtual

Handles reading, writing, and reference collecting using FArchive. This implementation handles all FProperty serialization, but can be overridden for native variables.

Reimplemented from UPawnMovementComponent.

◆ ServerAutonomousProxyTick()

virtual void UCharacterMovementComponent::ServerAutonomousProxyTick ( float  DeltaSeconds)
inlineprotectedvirtual

Special Tick to allow custom server-side functionality on Autonomous Proxies. Called for all remote APs, including APs controlled on Listen Servers such as the hosting player's Character. If full server-side control is desired, you may need to override ControlledCharacterMove as well.

◆ ServerCheckClientError()

bool UCharacterMovementComponent::ServerCheckClientError ( float  ClientTimeStamp,
float  DeltaTime,
const FVector Accel,
const FVector ClientWorldLocation,
const FVector RelativeClientLocation,
UPrimitiveComponent *  ClientMovementBase,
FName  ClientBaseBoneName,
uint8  ClientMovementMode 
)
protectedvirtual

Check for Server-Client disagreement in position or other movement state important enough to trigger a client correction.

See also
ServerMoveHandleClientError()

◆ ServerExceedsAllowablePositionError()

bool UCharacterMovementComponent::ServerExceedsAllowablePositionError ( float  ClientTimeStamp,
float  DeltaTime,
const FVector Accel,
const FVector ClientWorldLocation,
const FVector RelativeClientLocation,
UPrimitiveComponent *  ClientMovementBase,
FName  ClientBaseBoneName,
uint8  ClientMovementMode 
)
protectedvirtual

Check position error within ServerCheckClientError(). Set bNetworkLargeClientCorrection to true if the correction should be prioritized (delayed less in SendClientAdjustment).

◆ ServerMove()

void UCharacterMovementComponent::ServerMove ( float  TimeStamp,
FVector_NetQuantize10  InAccel,
FVector_NetQuantize100  ClientLoc,
uint8  CompressedMoveFlags,
uint8  ClientRoll,
uint32  View,
UPrimitiveComponent *  ClientMovementBase,
FName  ClientBaseBoneName,
uint8  ClientMovementMode 
)
virtual

Replicated function sent by client to server - contains client movement and view info. Calls either CharacterOwner->ServerMove() or CharacterOwner->ServerMoveNoBase() depending on whehter ClientMovementBase is null.

◆ ServerMove_HandleMoveData()

void UCharacterMovementComponent::ServerMove_HandleMoveData ( const FCharacterNetworkMoveDataContainer MoveDataContainer)
virtual

Handle movement data after it's unpacked from the ServerMovePacked_ServerReceive() call. Default implementation passes through to ServerMove_PerformMovement(), which may be called twice in the case of a "dual move", and one additional time for an "old important move".

◆ ServerMove_Implementation()

void UCharacterMovementComponent::ServerMove_Implementation ( float  TimeStamp,
FVector_NetQuantize10  InAccel,
FVector_NetQuantize100  ClientLoc,
uint8  CompressedMoveFlags,
uint8  ClientRoll,
uint32  View,
UPrimitiveComponent *  ClientMovementBase,
FName  ClientBaseBoneName,
uint8  ClientMovementMode 
)
virtual

◆ ServerMove_PerformMovement()

void UCharacterMovementComponent::ServerMove_PerformMovement ( const FCharacterNetworkMoveData MoveData)
virtual

Check timestamps, generate a delta time, and pass through movement params to MoveAutonomous. Error checking is optionally done on the final location, compared to 'ClientLoc'. The FCharacterNetworkMoveData parameter to this function is also the same returned by GetCurrentNetworkMoveData(), to assist in migration of code that may want to access the data without changing function signatures. (Note: this is similar to "ServerMove_Implementation" in legacy versions).

◆ ServerMove_Validate()

bool UCharacterMovementComponent::ServerMove_Validate ( float  TimeStamp,
FVector_NetQuantize10  InAccel,
FVector_NetQuantize100  ClientLoc,
uint8  CompressedMoveFlags,
uint8  ClientRoll,
uint32  View,
UPrimitiveComponent *  ClientMovementBase,
FName  ClientBaseBoneName,
uint8  ClientMovementMode 
)
virtual

◆ ServerMoveDual()

void UCharacterMovementComponent::ServerMoveDual ( float  TimeStamp0,
FVector_NetQuantize10  InAccel0,
uint8  PendingFlags,
uint32  View0,
float  TimeStamp,
FVector_NetQuantize10  InAccel,
FVector_NetQuantize100  ClientLoc,
uint8  NewFlags,
uint8  ClientRoll,
uint32  View,
UPrimitiveComponent *  ClientMovementBase,
FName  ClientBaseBoneName,
uint8  ClientMovementMode 
)
virtual

Replicated function sent by client to server - contains client movement and view info for two moves. Calls either CharacterOwner->ServerMoveDual() or CharacterOwner->ServerMoveDualNoBase() depending on whehter ClientMovementBase is null.

◆ ServerMoveDual_Implementation()

void UCharacterMovementComponent::ServerMoveDual_Implementation ( float  TimeStamp0,
FVector_NetQuantize10  InAccel0,
uint8  PendingFlags,
uint32  View0,
float  TimeStamp,
FVector_NetQuantize10  InAccel,
FVector_NetQuantize100  ClientLoc,
uint8  NewFlags,
uint8  ClientRoll,
uint32  View,
UPrimitiveComponent *  ClientMovementBase,
FName  ClientBaseBoneName,
uint8  ClientMovementMode 
)
virtual

◆ ServerMoveDual_Validate()

bool UCharacterMovementComponent::ServerMoveDual_Validate ( float  TimeStamp0,
FVector_NetQuantize10  InAccel0,
uint8  PendingFlags,
uint32  View0,
float  TimeStamp,
FVector_NetQuantize10  InAccel,
FVector_NetQuantize100  ClientLoc,
uint8  NewFlags,
uint8  ClientRoll,
uint32  View,
UPrimitiveComponent *  ClientMovementBase,
FName  ClientBaseBoneName,
uint8  ClientMovementMode 
)
virtual

◆ ServerMoveDualHybridRootMotion()

void UCharacterMovementComponent::ServerMoveDualHybridRootMotion ( float  TimeStamp0,
FVector_NetQuantize10  InAccel0,
uint8  PendingFlags,
uint32  View0,
float  TimeStamp,
FVector_NetQuantize10  InAccel,
FVector_NetQuantize100  ClientLoc,
uint8  NewFlags,
uint8  ClientRoll,
uint32  View,
UPrimitiveComponent *  ClientMovementBase,
FName  ClientBaseBoneName,
uint8  ClientMovementMode 
)
virtual

Replicated function sent by client to server - contains client movement and view info for two moves. First move is non root motion, second is root motion.

◆ ServerMoveDualHybridRootMotion_Implementation()

void UCharacterMovementComponent::ServerMoveDualHybridRootMotion_Implementation ( float  TimeStamp0,
FVector_NetQuantize10  InAccel0,
uint8  PendingFlags,
uint32  View0,
float  TimeStamp,
FVector_NetQuantize10  InAccel,
FVector_NetQuantize100  ClientLoc,
uint8  NewFlags,
uint8  ClientRoll,
uint32  View,
UPrimitiveComponent *  ClientMovementBase,
FName  ClientBaseBoneName,
uint8  ClientMovementMode 
)
virtual

◆ ServerMoveDualHybridRootMotion_Validate()

bool UCharacterMovementComponent::ServerMoveDualHybridRootMotion_Validate ( float  TimeStamp0,
FVector_NetQuantize10  InAccel0,
uint8  PendingFlags,
uint32  View0,
float  TimeStamp,
FVector_NetQuantize10  InAccel,
FVector_NetQuantize100  ClientLoc,
uint8  NewFlags,
uint8  ClientRoll,
uint32  View,
UPrimitiveComponent *  ClientMovementBase,
FName  ClientBaseBoneName,
uint8  ClientMovementMode 
)
virtual

◆ ServerMoveHandleClientError()

void UCharacterMovementComponent::ServerMoveHandleClientError ( float  ClientTimeStamp,
float  DeltaTime,
const FVector Accel,
const FVector RelativeClientLocation,
UPrimitiveComponent *  ClientMovementBase,
FName  ClientBaseBoneName,
uint8  ClientMovementMode 
)
protectedvirtual

Have the server check if the client is outside an error tolerance, and queue a client adjustment if so. If either GetPredictionData_Server_Character()->bForceClientUpdate or ServerCheckClientError() are true, the client adjustment will be sent. RelativeClientLocation will be a relative location if MovementBaseUtility::UseRelativePosition(ClientMovementBase) is true, or a world location if false.

See also
ServerCheckClientError()

◆ ServerMoveOld()

void UCharacterMovementComponent::ServerMoveOld ( float  OldTimeStamp,
FVector_NetQuantize10  OldAccel,
uint8  OldMoveFlags 
)
virtual

◆ ServerMoveOld_Implementation()

void UCharacterMovementComponent::ServerMoveOld_Implementation ( float  OldTimeStamp,
FVector_NetQuantize10  OldAccel,
uint8  OldMoveFlags 
)
virtual

◆ ServerMoveOld_Validate()

bool UCharacterMovementComponent::ServerMoveOld_Validate ( float  OldTimeStamp,
FVector_NetQuantize10  OldAccel,
uint8  OldMoveFlags 
)
virtual

◆ ServerMovePacked_ClientSend()

void UCharacterMovementComponent::ServerMovePacked_ClientSend ( const FCharacterServerMovePackedBits PackedBits)

The actual network RPCs for character movement are passed to ACharacter, which wrap to the _Implementation call here, to avoid Component RPC overhead. For example: Client: UCharacterMovementComponent::ServerMovePacked_ClientSend() => Calls CharacterOwner->ServerMove() triggering RPC on the server. Server: ACharacter::ServerMovePacked_Implementation() from the RPC => Calls CharacterMovement->ServerMove_ServerReceive(), unpacked and sent to ServerMove_ServerHandleMoveData().

ServerMove_ClientSend() and ServerMove_ServerReceive() use a bitstream created from the current FCharacterNetworkMoveData data container that contains the client move. See GetNetworkMoveDataContainer()/SetNetworkMoveDataContainer() for details on setting a custom container with custom unpacking through FCharacterNetworkMoveData::Serialize(). Wrapper to send packed move data to the server, through the Character.

See also
CallServerMovePacked()

◆ ServerMovePacked_ServerReceive()

void UCharacterMovementComponent::ServerMovePacked_ServerReceive ( const FCharacterServerMovePackedBits PackedBits)

On the server, receives packed move data from the Character RPC, unpacks them into the FCharacterNetworkMoveDataContainer returned from GetNetworkMoveDataContainer(), and passes the data container to ServerMove_HandleMoveData().

◆ ServerSendMoveResponse()

void UCharacterMovementComponent::ServerSendMoveResponse ( const FClientAdjustment PendingAdjustment)

On the server, sends a packed move response to the client. First the FCharacterMoveResponseDataContainer from GetMoveResponseDataContainer() is filled in with ServerFillResponseData(). Then this data is serialized to a bit stream that is sent to the client via MoveResponsePacked_ServerSend().

◆ ServerShouldUseAuthoritativePosition()

bool UCharacterMovementComponent::ServerShouldUseAuthoritativePosition ( float  ClientTimeStamp,
float  DeltaTime,
const FVector Accel,
const FVector ClientWorldLocation,
const FVector RelativeClientLocation,
UPrimitiveComponent *  ClientMovementBase,
FName  ClientBaseBoneName,
uint8  ClientMovementMode 
)
protectedvirtual

If ServerCheckClientError() does not find an error, this determines if the server should also copy the client's movement params rather than keep the server sim result.

◆ SetAvoidanceEnabled()

void UCharacterMovementComponent::SetAvoidanceEnabled ( bool  bEnable)

Change avoidance state and registers in RVO manager if needed

◆ SetAvoidanceGroup()

void UCharacterMovementComponent::SetAvoidanceGroup ( int32  GroupFlags)

◆ SetAvoidanceGroupMask() [1/2]

void UCharacterMovementComponent::SetAvoidanceGroupMask ( const FNavAvoidanceMask GroupMask)

◆ SetAvoidanceGroupMask() [2/2]

void UCharacterMovementComponent::SetAvoidanceGroupMask ( int32  GroupFlags)
overridevirtual

Store the avoidance group mask

Implements IRVOAvoidanceInterface.

◆ SetAvoidanceVelocityLock()

void UCharacterMovementComponent::SetAvoidanceVelocityLock ( class UAvoidanceManager Avoidance,
float  Duration 
)

lock avoidance velocity

◆ SetBase()

void UCharacterMovementComponent::SetBase ( UPrimitiveComponent *  NewBase,
const FName  BoneName = NAME_None,
bool  bNotifyActor = true 
)
virtual

Update the base of the character, which is the PrimitiveComponent we are standing on.

◆ SetBaseFromFloor()

void UCharacterMovementComponent::SetBaseFromFloor ( const FFindFloorResult FloorResult)

Update the base of the character, using the given floor result if it is walkable, or null if not. Calls SetBase().

◆ SetCrouchedHalfHeight()

void UCharacterMovementComponent::SetCrouchedHalfHeight ( const float  NewValue)

Sets collision half-height when crouching and updates dependent computations

◆ SetCurrentNetworkMoveData()

void UCharacterMovementComponent::SetCurrentNetworkMoveData ( FCharacterNetworkMoveData CurrentData)
inlineprotected

Used internally to set the FCharacterNetworkMoveData currently being processed, either being serialized or replayed on the client, or being received and processed on the server.

See also
GetCurrentNetworkMoveData()

◆ SetCurrentReplayedSavedMove()

void UCharacterMovementComponent::SetCurrentReplayedSavedMove ( FSavedMove_Character SavedMove)
inlineprotected

Used internally to save the SavedMove currently being replayed on the client so it is accessible to any functions that might need it.

See also
: ClientUpdatePositionAfterServerUpdate

◆ SetDefaultMovementMode()

void UCharacterMovementComponent::SetDefaultMovementMode ( )
virtual

Set movement mode to the default based on the current physics volume.

◆ SetGravityDirection()

void UCharacterMovementComponent::SetGravityDirection ( const FVector GravityDir)
virtual

Set a custom, local gravity direction to use during movement simulation. The gravity direction must be synchronized by external systems between the autonomous and authority processes. The gravity direction will be corrected as part of movement corrections should the movement state diverge. SetGravityDirection is responsible for initializing cached values used to tranform to from gravity relative space.

Parameters
GravityDirA non-zero vector representing the new gravity direction. The vector will be normalized.

◆ SetGravitySpaceZ()

void UCharacterMovementComponent::SetGravitySpaceZ ( FVector Vector,
const FVector::FReal  Z 
) const
inline

Set the vertical component of the vector to the given value in the gravity-space vertical direction.

◆ SetGroundMovementMode()

void UCharacterMovementComponent::SetGroundMovementMode ( EMovementMode  NewGroundMovementMode)

Set movement mode to use when returning to walking movement (either MOVE_Walking or MOVE_NavWalking). If movement mode is currently one of Walking or NavWalking, this will also change the current movement mode (via SetMovementMode()) if the new mode is not the current ground mode.

Parameters
NewGroundMovementModeNew ground movement mode. Must be either MOVE_Walking or MOVE_NavWalking, other values are ignored.
See also
GroundMovementMode

◆ SetGroupsToAvoid()

void UCharacterMovementComponent::SetGroupsToAvoid ( int32  GroupFlags)

◆ SetGroupsToAvoidMask() [1/2]

void UCharacterMovementComponent::SetGroupsToAvoidMask ( const FNavAvoidanceMask GroupMask)

◆ SetGroupsToAvoidMask() [2/2]

void UCharacterMovementComponent::SetGroupsToAvoidMask ( int32  GroupFlags)
overridevirtual

Store the groups to avoid mask

Implements IRVOAvoidanceInterface.

◆ SetGroupsToIgnore()

void UCharacterMovementComponent::SetGroupsToIgnore ( int32  GroupFlags)

◆ SetGroupsToIgnoreMask() [1/2]

void UCharacterMovementComponent::SetGroupsToIgnoreMask ( const FNavAvoidanceMask GroupMask)

◆ SetGroupsToIgnoreMask() [2/2]

void UCharacterMovementComponent::SetGroupsToIgnoreMask ( int32  GroupFlags)
overridevirtual

Store the groups to ignore mask

Implements IRVOAvoidanceInterface.

◆ SetMovementMode()

void UCharacterMovementComponent::SetMovementMode ( EMovementMode  NewMovementMode,
uint8  NewCustomMode = 0 
)
virtual

Change movement mode.

Parameters
NewMovementModeThe new movement mode
NewCustomModeThe new custom sub-mode, only applicable if NewMovementMode is Custom.

◆ SetMoveResponseDataContainer()

void UCharacterMovementComponent::SetMoveResponseDataContainer ( FCharacterMoveResponseDataContainer PersistentDataStorage)
inlineprotected

Set custom struct used for server response RPC serialization. This is typically set in the constructor for this component and should persist for the lifetime of the component.

See also
GetMoveResponseDataContainer()

◆ SetNavWalkingPhysics()

void UCharacterMovementComponent::SetNavWalkingPhysics ( bool  bEnable)
protectedvirtual

Switch collision settings for NavWalking mode (ignore world collisions)

◆ SetNetworkMoveDataContainer()

void UCharacterMovementComponent::SetNetworkMoveDataContainer ( FCharacterNetworkMoveDataContainer PersistentDataStorage)
inlineprotected

Set custom struct used for client to server move RPC serialization. This is typically set in the constructor for this component and should persist for the lifetime of the component.

See also
GetNetworkMoveDataContainer(), ServerMovePacked_ServerReceive(), ServerMove_HandleMoveData()

◆ SetPostLandedPhysics()

void UCharacterMovementComponent::SetPostLandedPhysics ( const FHitResult Hit)
protectedvirtual

Use new physics after landing. Defaults to swimming if in water, walking otherwise.

◆ SetRVOAvoidanceUID()

void UCharacterMovementComponent::SetRVOAvoidanceUID ( int32  UID)
overridevirtual

◆ SetRVOAvoidanceWeight()

void UCharacterMovementComponent::SetRVOAvoidanceWeight ( float  Weight)
overridevirtual

Store the AvoidanceWeight generated by the Avoidance Manager

Implements IRVOAvoidanceInterface.

◆ SetUpdatedComponent()

void UCharacterMovementComponent::SetUpdatedComponent ( USceneComponent *  NewUpdatedComponent)
overridevirtual

Overridden to only allow registration with components owned by a Pawn.

Reimplemented from UPawnMovementComponent.

◆ SetWalkableFloorAngle()

void UCharacterMovementComponent::SetWalkableFloorAngle ( float  InWalkableFloorAngle)

Set the max angle in degrees of a walkable surface for the character. Also computes WalkableFloorZ.

◆ SetWalkableFloorZ()

void UCharacterMovementComponent::SetWalkableFloorZ ( float  InWalkableFloorZ)

Set the Z component of the normal of the steepest walkable surface for the character. Also computes WalkableFloorAngle.

◆ ShouldCancelAdaptiveReplication()

bool UCharacterMovementComponent::ShouldCancelAdaptiveReplication ( ) const
protectedvirtual

On the server if we know we are having our replication rate throttled, this method checks if important replicated properties have changed that should cause us to return to the normal replication rate.

◆ ShouldCatchAir()

bool UCharacterMovementComponent::ShouldCatchAir ( const FFindFloorResult OldFloor,
const FFindFloorResult NewFloor 
)
virtual

Whether Character should go into falling mode when walking and changing position, based on an old and new floor result (both of which are considered walkable). Default implementation always returns false.

Returns
true if Character should start falling

◆ ShouldCheckForValidLandingSpot()

bool UCharacterMovementComponent::ShouldCheckForValidLandingSpot ( float  DeltaTime,
const FVector Delta,
const FHitResult Hit 
) const
virtual

Determine whether we should try to find a valid landing spot after an impact with an invalid one (based on the Hit result). For example, landing on the lower portion of the capsule on the edge of geometry may be a walkable surface, but could have reported an unwalkable impact normal.

◆ ShouldComputeAccelerationToReachRequestedVelocity()

bool UCharacterMovementComponent::ShouldComputeAccelerationToReachRequestedVelocity ( const float  RequestedSpeed) const
protectedvirtual

When a character requests a velocity (like when following a path), this method returns true if when we should compute the acceleration toward requested velocity (including friction). If it returns false, it will snap instantly to requested velocity.

◆ ShouldComputePerchResult()

bool UCharacterMovementComponent::ShouldComputePerchResult ( const FHitResult InHit,
bool  bCheckRadius = true 
) const
virtual

Check if the result of a sweep test (passed in InHit) might be a valid location to perch, in which case we should use ComputePerchResult to validate the location.

See also
ComputePerchResult
Parameters
InHitResult of the last sweep test before this query.
bCheckRadiusIf true, only allow the perch test if the impact point is outside the radius returned by GetValidPerchRadius().
Returns
Whether perching may be possible, such that ComputePerchResult can return a valid result.

◆ ShouldCorrectRotation()

virtual bool UCharacterMovementComponent::ShouldCorrectRotation ( ) const
inlinevirtual

Returns if the character rotation should be corrected on clients when sending a server move response correction.

◆ ShouldJumpOutOfWater()

bool UCharacterMovementComponent::ShouldJumpOutOfWater ( FVector JumpDir)
virtual

Determine whether the Character should jump when exiting water.

Parameters
JumpDiris the desired direction to jump out of water
Returns
true if Pawn should jump out of water

◆ ShouldLimitAirControl()

bool UCharacterMovementComponent::ShouldLimitAirControl ( float  DeltaTime,
const FVector FallAcceleration 
) const
virtual

Returns true if falling movement should limit air control. Limiting air control prevents input acceleration during falling movement from allowing velocity to redirect forces upwards while falling, which could result in slower falling or even upward boosting.

See also
GetFallingLateralAcceleration(), BoostAirControl(), GetAirControl(), LimitAirControl()

◆ ShouldPerformAirControlForPathFollowing()

bool UCharacterMovementComponent::ShouldPerformAirControlForPathFollowing ( ) const
virtual

Whether Character should perform air control via PerformAirControlForPathFollowing when falling and following a path at the same time Default implementation always returns true during MOVE_Falling.

◆ ShouldRemainVertical()

bool UCharacterMovementComponent::ShouldRemainVertical ( ) const
virtual

if true, DesiredRotation will be restricted to only Yaw component in PhysicsRotation()

◆ ShouldUsePackedMovementRPCs()

bool UCharacterMovementComponent::ShouldUsePackedMovementRPCs ( ) const
virtual

Determines whether to use packed movement RPCs with variable length payloads, or legacy code which has multiple functions required for different situations. The default implementation checks the console variable "p.NetUsePackedMovementRPCs" and returns true if it is non-zero.

◆ SimulatedTick()

void UCharacterMovementComponent::SimulatedTick ( float  DeltaSeconds)
protectedvirtual

Special Tick for Simulated Proxies

◆ SimulateMovement()

void UCharacterMovementComponent::SimulateMovement ( float  DeltaTime)
protectedvirtual

Simulate movement on a non-owning client. Called by SimulatedTick().

◆ SimulateRootMotion()

void UCharacterMovementComponent::SimulateRootMotion ( float  DeltaSeconds,
const FTransform LocalRootMotionTransform 
)

Simulate Root Motion physics on Simulated Proxies

◆ SlideAlongSurface()

float UCharacterMovementComponent::SlideAlongSurface ( const FVector Delta,
float  Time,
const FVector Normal,
FHitResult Hit,
bool  bHandleImpact 
)
overrideprotectedvirtual

Custom version of SlideAlongSurface that handles different movement modes separately; namely during walking physics we might not want to slide up slopes.

Reimplemented from UMovementComponent.

◆ SmoothClientPosition()

void UCharacterMovementComponent::SmoothClientPosition ( float  DeltaSeconds)
protectedvirtual

Smooth mesh location for network interpolation, based on values set up by SmoothCorrection. Internally this simply calls SmoothClientPosition_Interpolate() then SmoothClientPosition_UpdateVisuals(). This function is not called when bNetworkSmoothingComplete is true.

Parameters
DeltaSecondsTime since last update.

◆ SmoothClientPosition_Interpolate()

void UCharacterMovementComponent::SmoothClientPosition_Interpolate ( float  DeltaSeconds)
protected

Update interpolation values for client smoothing. Does not change actual mesh location. Sets bNetworkSmoothingComplete to true when the interpolation reaches the target.

◆ SmoothClientPosition_UpdateVisuals()

void UCharacterMovementComponent::SmoothClientPosition_UpdateVisuals ( )
protected

Update mesh location based on interpolated values.

◆ SmoothCorrection()

void UCharacterMovementComponent::SmoothCorrection ( const FVector OldLocation,
const FQuat OldRotation,
const FVector NewLocation,
const FQuat NewRotation 
)
overridevirtual

React to new transform from network update. Sets bNetworkSmoothingComplete to false to ensure future smoothing updates. IMPORTANT: It is expected that this function triggers any movement/transform updates to match the network update if desired.

◆ StartFalling()

void UCharacterMovementComponent::StartFalling ( int32  Iterations,
float  remainingTime,
float  timeTick,
const FVector Delta,
const FVector subLoc 
)
virtual

Transition from walking to falling

◆ StartNewPhysics()

void UCharacterMovementComponent::StartNewPhysics ( float  deltaTime,
int32  Iterations 
)
virtual

changes physics based on MovementMode

◆ StartSwimming()

void UCharacterMovementComponent::StartSwimming ( FVector  OldLocation,
FVector  OldVelocity,
float  timeTick,
float  remainingTime,
int32  Iterations 
)
virtual

Handle start swimming functionality

Parameters
OldLocation- Location on last tick
OldVelocity- velocity at last tick
timeTick- time since at OldLocation
remainingTime- DeltaTime to complete transition to swimming
Iterations- physics iteration count

◆ StepUp()

bool UCharacterMovementComponent::StepUp ( const FVector GravDir,
const FVector Delta,
const FHitResult Hit,
FStepDownResult OutStepDownResult = NULL 
)
virtual

Move up steps or slope. Does nothing and returns false if CanStepUp(Hit) returns false.

Parameters
GravDirGravity vector direction (assumed normalized or zero)
DeltaRequested move
Hit[In] The hit before the step up.
OutStepDownResult[Out] If non-null, a floor check will be performed if possible as part of the final step down, and it will be updated to reflect this result.
Returns
true if the step up was successful.

◆ StopActiveMovement()

void UCharacterMovementComponent::StopActiveMovement ( )
overridevirtual

Stops applying further movement (usually zeros acceleration).

Reimplemented from INavMovementInterface.

◆ Swim()

float UCharacterMovementComponent::Swim ( FVector  Delta,
FHitResult Hit 
)

◆ TickCharacterPose()

void UCharacterMovementComponent::TickCharacterPose ( float  DeltaTime)
protectedvirtual

Ticks the characters pose and accumulates root motion

◆ TickComponent()

void UCharacterMovementComponent::TickComponent ( float  DeltaTime,
enum ELevelTick  TickType,
FActorComponentTickFunction ThisTickFunction 
)
overridevirtual

Function called every frame on this ActorComponent. Override this function to implement custom logic to be executed every frame. Only executes if the component is registered, and also PrimaryComponentTick.bCanEverTick must be set to true.

Parameters
DeltaTime- The time since the last tick.
TickType- The kind of tick this is, for example, are we paused, or 'simulating' in the editor
ThisTickFunction- Internal tick function struct that caused this to run

Reimplemented from UMovementComponent.

◆ TryToLeaveNavWalking()

bool UCharacterMovementComponent::TryToLeaveNavWalking ( )
protectedvirtual

Checks to see if the current location is not encroaching blocking geometry so the character can leave NavWalking. Restores collision settings and adjusts character location to avoid getting stuck in geometry. If it's not possible, MovementMode change will be delayed until character reach collision free spot.

Returns
True if movement mode was successfully changed

◆ TwoWallAdjust()

void UCharacterMovementComponent::TwoWallAdjust ( FVector WorldSpaceDelta,
const FHitResult Hit,
const FVector OldHitNormal 
) const
overrideprotectedvirtual

Custom version that allows upwards slides when walking if the surface is walkable.

Reimplemented from UMovementComponent.

◆ UnCrouch()

void UCharacterMovementComponent::UnCrouch ( bool  bClientSimulation = false)
virtual

Checks if default capsule size fits (no encroachment), and trigger OnEndCrouch() on the owner if successful.

Parameters
bClientSimulationtrue when called when bIsCrouched is replicated to non owned clients, to update collision cylinder and offset.

◆ UnpackNetworkMovementMode()

void UCharacterMovementComponent::UnpackNetworkMovementMode ( const uint8  ReceivedMode,
TEnumAsByte< EMovementMode > &  OutMode,
uint8 OutCustomMode,
TEnumAsByte< EMovementMode > &  OutGroundMode 
) const
virtual

◆ UpdateBasedMovement()

void UCharacterMovementComponent::UpdateBasedMovement ( float  DeltaSeconds)
virtual

Update position based on Base movement

◆ UpdateBasedRotation()

void UCharacterMovementComponent::UpdateBasedRotation ( FRotator FinalRotation,
const FRotator ReducedRotation 
)
virtual

Update controller's view rotation as pawn's base rotates

◆ UpdateCharacterStateAfterMovement()

void UCharacterMovementComponent::UpdateCharacterStateAfterMovement ( float  DeltaSeconds)
virtual

Update the character state in PerformMovement after the position change. Some rotation updates happen after this.

◆ UpdateCharacterStateBeforeMovement()

void UCharacterMovementComponent::UpdateCharacterStateBeforeMovement ( float  DeltaSeconds)
virtual

Update the character state in PerformMovement right before doing the actual position change

◆ UpdateDefaultAvoidance()

void UCharacterMovementComponent::UpdateDefaultAvoidance ( )
protected

called in Tick to update data in RVO avoidance manager

◆ UpdateFloorFromAdjustment()

void UCharacterMovementComponent::UpdateFloorFromAdjustment ( )
virtual

React to instantaneous change in position. Invalidates cached floor recomputes it if possible if there is a current movement base.

◆ UpdateFromCompressedFlags()

void UCharacterMovementComponent::UpdateFromCompressedFlags ( uint8  Flags)
protectedvirtual

Unpack compressed flags from a saved move and set state accordingly. See FSavedMove_Character.

◆ UpdateProxyAcceleration()

void UCharacterMovementComponent::UpdateProxyAcceleration ( )
virtual

Used during SimulateMovement for proxies, this computes a new value for Acceleration before running proxy simulation. The base implementation simply derives a value from the normalized Velocity value, which may help animations that want some indication of the direction of movement. Proxies don't implement predictive acceleration by default so this value is not used for the actual simulation.

◆ UpdateVelocityBeforeMovement()

virtual void UCharacterMovementComponent::UpdateVelocityBeforeMovement ( float  DeltaSeconds)
inlinevirtual

Give one final chance to update the velocity right before doing the actual position change.

◆ UPROPERTY() [1/26]

UCharacterMovementComponent::UPROPERTY ( Category  = "Character Movement (General Settings)",
EditAnywhere  ,
BlueprintReadWrite  ,
AdvancedDisplay  ,
meta  = (ClampMin="0", UIMin="0", ForceUnits=cm) 
)

Max distance we allow simulated proxies to depenetrate when moving out of anything but Pawns. This is generally more tolerant than with Pawns, because other geometry is either not moving, or is moving predictably with a bit of delay compared to on the server.

See also
MaxDepenetrationWithGeometryAsProxy, MaxDepenetrationWithPawn, MaxDepenetrationWithPawnAsProxy

◆ UPROPERTY() [2/26]

UCharacterMovementComponent::UPROPERTY ( Category  = "Character Movement (General Settings)",
EditAnywhere  ,
BlueprintReadWrite  ,
AdvancedDisplay  ,
meta  = (ClampMin="0", UIMin="0", ForceUnits=cm) 
)

Max distance we allow simulated proxies to depenetrate when moving out of anything but Pawns. This is generally more tolerant than with Pawns, because other geometry is either not moving, or is moving predictably with a bit of delay compared to on the server.

See also
MaxDepenetrationWithGeometry, MaxDepenetrationWithPawn, MaxDepenetrationWithPawnAsProxy

◆ UPROPERTY() [3/26]

UCharacterMovementComponent::UPROPERTY ( Category  = "Character Movement (General Settings)",
EditAnywhere  ,
BlueprintReadWrite  ,
AdvancedDisplay  ,
meta  = (ClampMin="0", UIMin="0", ForceUnits=cm) 
)

Max distance we are allowed to depenetrate when moving out of other Pawns.

See also
MaxDepenetrationWithGeometry, MaxDepenetrationWithGeometryAsProxy, MaxDepenetrationWithPawnAsProxy

◆ UPROPERTY() [4/26]

UCharacterMovementComponent::UPROPERTY ( Category  = "Character Movement (General Settings)",
EditAnywhere  ,
BlueprintReadWrite  ,
AdvancedDisplay  ,
meta  = (ClampMin="0", UIMin="0", ForceUnits=cm) 
)

Max distance we allow simulated proxies to depenetrate when moving out of other Pawns. Typically we don't want a large value, because we receive a server authoritative position that we should not then ignore by pushing them out of the local player.

See also
MaxDepenetrationWithGeometry, MaxDepenetrationWithGeometryAsProxy, MaxDepenetrationWithPawn

◆ UPROPERTY() [5/26]

UCharacterMovementComponent::UPROPERTY ( Category  = "Character Movement (General Settings)",
EditAnywhere  ,
BlueprintReadWrite  ,
AdvancedDisplay  ,
meta  = (ClampMin="0.0166", ClampMax="0.05", UIMin="0.0166", UIMax="0.05") 
)

Time substepping when applying braking friction. Smaller time steps increase accuracy at the slight cost of performance, especially if there are large frame times.

◆ UPROPERTY() [6/26]

UCharacterMovementComponent::UPROPERTY ( Category  = "Character Movement (General Settings)",
EditAnywhere  ,
BlueprintReadWrite  ,
AdvancedDisplay  ,
meta  = (ClampMin="0.0166", ClampMax="0.50", UIMin="0.0166", UIMax="0.50") 
)

Max time delta for each discrete simulation step. Used primarily in the the more advanced movement modes that break up larger time steps (usually those applying gravity such as falling and walking). Lowering this value can address issues with fast-moving objects or complex collision scenarios, at the cost of performance.

WARNING: if (MaxSimulationTimeStep * MaxSimulationIterations) is too low for the min framerate, the last simulation step may exceed MaxSimulationTimeStep to complete the simulation.

See also
MaxSimulationIterations

◆ UPROPERTY() [7/26]

UCharacterMovementComponent::UPROPERTY ( Category  = "Character Movement (General Settings)",
EditAnywhere  ,
BlueprintReadWrite  ,
AdvancedDisplay  ,
meta  = (ClampMin="1", ClampMax="25", UIMin="1", UIMax="25") 
)

Max number of iterations used for each discrete simulation step. Used primarily in the the more advanced movement modes that break up larger time steps (usually those applying gravity such as falling and walking). Increasing this value can address issues with fast-moving objects or complex collision scenarios, at the cost of performance.

WARNING: if (MaxSimulationTimeStep * MaxSimulationIterations) is too low for the min framerate, the last simulation step may exceed MaxSimulationTimeStep to complete the simulation.

See also
MaxSimulationTimeStep

◆ UPROPERTY() [8/26]

UCharacterMovementComponent::UPROPERTY ( Category  = "Character Movement (General Settings)",
EditAnywhere  ,
BlueprintReadWrite  ,
AdvancedDisplay  ,
meta  = (ClampMin="1", ClampMax="4", UIMin="1", UIMax="4") 
)

Max number of attempts per simulation to attempt to exactly reach the jump apex when falling movement reaches the top of the arc. Limiting this prevents deep recursion when special cases cause collision or other conditions which reactivate the apex condition.

◆ UPROPERTY() [9/26]

UCharacterMovementComponent::UPROPERTY ( Category  = "Character Movement (General Settings)",
EditAnywhere  ,
BlueprintReadWrite  ,
BlueprintSetter  = SetCrouchedHalfHeight,
BlueprintGetter  = GetCrouchedHalfHeight,
meta  = (ClampMin="0", UIMin="0", ForceUnits=cm) 
)

Collision half-height when crouching (component scale is applied separately)

◆ UPROPERTY() [10/26]

UCharacterMovementComponent::UPROPERTY ( Category  = "Character Movement (General Settings)",
EditAnywhere  ,
BlueprintReadWrite  ,
meta  = (ClampMin="0", UIMin="0") 
)

Factor used to multiply actual value of friction used when braking. This applies to any friction value that is currently used, which may depend on bUseSeparateBrakingFriction.

Note
This is 2 by default for historical reasons, a value of 1 gives the true drag equation.
See also
bUseSeparateBrakingFriction, GroundFriction, BrakingFriction

◆ UPROPERTY() [11/26]

UCharacterMovementComponent::UPROPERTY ( Category  = "Character Movement (General Settings)",
EditAnywhere  ,
BlueprintReadWrite  ,
meta  = (ClampMin="0", UIMin="0") 
)

Mass of pawn (for when momentum is imparted to it).

◆ UPROPERTY() [12/26]

UCharacterMovementComponent::UPROPERTY ( Category  = "Character Movement (General Settings)",
EditAnywhere  ,
BlueprintReadWrite  ,
meta  = (ClampMin="0", UIMin="0") 
)

Max Acceleration (rate of change of velocity)

◆ UPROPERTY() [13/26]

UCharacterMovementComponent::UPROPERTY ( Category  = "Character Movement (General Settings)",
EditAnywhere  ,
BlueprintReadWrite  ,
meta  = (ClampMin="0", UIMin="0", EditCondition="bUseSeparateBrakingFriction") 
)

Friction (drag) coefficient applied when braking (whenever Acceleration = 0, or if character is exceeding max speed); actual value used is this multiplied by BrakingFrictionFactor. When braking, this property allows you to control how much friction is applied when moving across the ground, applying an opposing force that scales with current velocity. Braking is composed of friction (velocity-dependent drag) and constant deceleration. This is the current value, used in all movement modes; if this is not desired, override it or bUseSeparateBrakingFriction when movement mode changes.

Note
Only used if bUseSeparateBrakingFriction setting is true, otherwise current friction such as GroundFriction is used.
See also
bUseSeparateBrakingFriction, BrakingFrictionFactor, GroundFriction, BrakingDecelerationWalking

◆ UPROPERTY() [14/26]

UCharacterMovementComponent::UPROPERTY ( Category  = "Character Movement (Networking)",
EditDefaultsOnly  ,
AdvancedDisplay  ,
meta  = (ClampMin="0.0", ClampMax="1.0", UIMin="0.0", UIMax="1.0", ForceUnits=s) 
)

Similar setting as NetworkSimulatedSmoothLocationTime but only used on Listen servers.

◆ UPROPERTY() [15/26]

UCharacterMovementComponent::UPROPERTY ( Category  = "Character Movement (Networking)",
EditDefaultsOnly  ,
AdvancedDisplay  ,
meta  = (ClampMin="0.0", ClampMax="1.0", UIMin="0.0", UIMax="1.0", ForceUnits=s) 
)

Similar setting as NetworkSimulatedSmoothRotationTime but only used on Listen servers.

◆ UPROPERTY() [16/26]

UCharacterMovementComponent::UPROPERTY ( Category  = "Character Movement (Networking)",
EditDefaultsOnly  ,
AdvancedDisplay  ,
meta  = (ClampMin="0.0", ClampMax="1.0", UIMin="0.0", UIMax="1.0", ForceUnits=s) 
)

How long to take to smoothly interpolate from the old pawn position on the client to the corrected one sent by the server. Not used by Linear smoothing.

◆ UPROPERTY() [17/26]

UCharacterMovementComponent::UPROPERTY ( Category  = "Character Movement (Networking)",
EditDefaultsOnly  ,
AdvancedDisplay  ,
meta  = (ClampMin="0.0", ClampMax="1.0", UIMin="0.0", UIMax="1.0", ForceUnits=s) 
)

How long to take to smoothly interpolate from the old pawn rotation on the client to the corrected one sent by the server. Not used by Linear smoothing.

◆ UPROPERTY() [18/26]

UCharacterMovementComponent::UPROPERTY ( Category  = "Character Movement (Networking)",
EditDefaultsOnly  ,
AdvancedDisplay  ,
meta  = (ClampMin="0.0", UIMin="0.0", ForceUnits=cm) 
)

Shrink simulated proxy capsule half height by this amount, to account for network rounding that may cause encroachment. Changing during gameplay is not supported.

See also
AdjustProxyCapsuleSize()

◆ UPROPERTY() [19/26]

UCharacterMovementComponent::UPROPERTY ( Category  = "Character Movement (Networking)",
EditDefaultsOnly  ,
AdvancedDisplay  ,
meta  = (ClampMin="0.0", UIMin="0.0", ForceUnits=cm) 
)

Shrink simulated proxy capsule radius by this amount, to account for network rounding that may cause encroachment. Changing during gameplay is not supported.

See also
AdjustProxyCapsuleSize()

◆ UPROPERTY() [20/26]

UCharacterMovementComponent::UPROPERTY ( Category  = "Character Movement (Networking)",
EditDefaultsOnly  ,
meta  = (ClampMin="0.0", UIMin="0.0", ForceUnits=cm) 
)

If client error is larger than this, sets bNetworkLargeClientCorrection to reduce delay between client adjustments.

See also
NetworkMinTimeBetweenClientAdjustments, NetworkMinTimeBetweenClientAdjustmentsLargeCorrection

◆ UPROPERTY() [21/26]

UCharacterMovementComponent::UPROPERTY ( Category  = "Character Movement (Networking)",
EditDefaultsOnly  ,
meta  = (ClampMin="0.0", UIMin="0.0", ForceUnits=cm) 
)

Maximum distance character is allowed to lag behind server location when interpolating between updates.

◆ UPROPERTY() [22/26]

UCharacterMovementComponent::UPROPERTY ( Category  = "Character Movement (Networking)",
EditDefaultsOnly  ,
meta  = (ClampMin="0.0", UIMin="0.0", ForceUnits=cm) 
)

Maximum distance beyond which character is teleported to the new server location without any smoothing.

◆ UPROPERTY() [23/26]

UCharacterMovementComponent::UPROPERTY ( Category  = "Character Movement (Networking)",
EditDefaultsOnly  ,
meta  = (ClampMin="0.0", UIMin="0.0", ForceUnits=s) 
)

Minimum time on the server between acknowledging good client moves. This can save on bandwidth. Set to 0 to disable throttling.

◆ UPROPERTY() [24/26]

UCharacterMovementComponent::UPROPERTY ( Category  = "Character Movement (Networking)",
EditDefaultsOnly  ,
meta  = (ClampMin="0.0", UIMin="0.0", ForceUnits=s) 
)

Minimum time on the server between sending client adjustments when client has exceeded allowable position error. Should be >= NetworkMinTimeBetweenClientAdjustmentsLargeCorrection (the larger value is used regardless). This can save on bandwidth. Set to 0 to disable throttling.

See also
ServerLastClientAdjustmentTime

◆ UPROPERTY() [25/26]

UCharacterMovementComponent::UPROPERTY ( Category  = "Character Movement (Networking)",
EditDefaultsOnly  ,
meta  = (ClampMin="0.0", UIMin="0.0", ForceUnits=s) 
)

Minimum time on the server between sending client adjustments when client has exceeded allowable position error by a large amount (NetworkLargeClientCorrectionDistance). Should be <= NetworkMinTimeBetweenClientAdjustments (the smaller value is used regardless).

See also
NetworkMinTimeBetweenClientAdjustments

◆ UPROPERTY() [26/26]

UCharacterMovementComponent::UPROPERTY ( Category  = "Character Movement: Physics Interaction",
EditAnywhere  ,
BlueprintReadWrite  ,
meta  = (UIMin="-1.0", UIMax="1.0"),
meta  = (editcondition="bEnablePhysicsInteraction") 
)

Z-Offset for the position the force is applied to. 0.0f is the center of the physics object, 1.0f is the top and -1.0f is the bottom of the object.

◆ VerifyClientTimeStamp()

bool UCharacterMovementComponent::VerifyClientTimeStamp ( float  TimeStamp,
FNetworkPredictionData_Server_Character ServerData 
)
virtual

On the Server, verify that an incoming client TimeStamp is valid and has not yet expired. It will also handle TimeStamp resets if it detects a gap larger than MinTimeBetweenTimeStampResets / 2.f !! ServerData.CurrentClientTimeStamp can be reset !!

Returns
true if TimeStamp is valid, or false if it has expired.

◆ VisualizeMovement()

float UCharacterMovementComponent::VisualizeMovement ( ) const
virtual

Draw in-world debug information for character movement (called with p.VisualizeMovement > 0).

Member Data Documentation

◆ Acceleration

FVector UCharacterMovementComponent::Acceleration
protected

Current acceleration vector (with magnitude). This is calculated each update based on the input vector and the constraints of MaxAcceleration and the current movement mode.

◆ AirControl

float UCharacterMovementComponent::AirControl

When falling, amount of lateral movement control available to the character. 0 = no control, 1 = full control at max speed of MaxWalkSpeed.

◆ AirControlBoostMultiplier

float UCharacterMovementComponent::AirControlBoostMultiplier

When falling, multiplier applied to AirControl when lateral velocity is less than AirControlBoostVelocityThreshold. Setting this to zero will disable air control boosting. Final result is clamped at 1.

◆ AirControlBoostVelocityThreshold

float UCharacterMovementComponent::AirControlBoostVelocityThreshold

When falling, if lateral velocity magnitude is less than this value, AirControl is multiplied by AirControlBoostMultiplier. Setting this to zero will disable air control boosting.

◆ AnalogInputModifier

float UCharacterMovementComponent::AnalogInputModifier
protected

Modifier to applied to values such as acceleration and max speed due to analog input.

◆ AnimRootMotionVelocity

FVector UCharacterMovementComponent::AnimRootMotionVelocity

Velocity extracted from RootMotionParams when there is anim root motion active. Invalid to use when HasAnimRootMotion() returns false.

◆ AsyncRootMotion

FRootMotionAsyncData UCharacterMovementComponent::AsyncRootMotion

◆ AsyncSimState

TSharedPtr<FCharacterMovementComponentAsyncOutput, ESPMode::ThreadSafe> UCharacterMovementComponent::AsyncSimState
protected

◆ AvoidanceConsiderationRadius

float UCharacterMovementComponent::AvoidanceConsiderationRadius

◆ AvoidanceGroup

FNavAvoidanceMask UCharacterMovementComponent::AvoidanceGroup

Moving actor's group mask

◆ AvoidanceLockTimer

float UCharacterMovementComponent::AvoidanceLockTimer
protected

remaining time of avoidance velocity lock

◆ AvoidanceLockVelocity

FVector UCharacterMovementComponent::AvoidanceLockVelocity
protected

forced avoidance velocity, used when AvoidanceLockTimer is > 0

◆ AvoidanceUID

int32 UCharacterMovementComponent::AvoidanceUID

No default value, for now it's assumed to be valid if GetAvoidanceManager() returns non-NULL.

◆ AvoidanceWeight

float UCharacterMovementComponent::AvoidanceWeight

De facto default value 0.5 (due to that being the default in the avoidance registration function), indicates RVO behavior.

◆ bAllowPhysicsRotationDuringAnimRootMotion

uint8 UCharacterMovementComponent::bAllowPhysicsRotationDuringAnimRootMotion

◆ bAlwaysCheckFloor

uint8 UCharacterMovementComponent::bAlwaysCheckFloor

Whether we always force floor checks for stationary Characters while walking. Normally floor checks are avoided if possible when not moving, but this can be used to force them if there are use-cases where they are being skipped erroneously (such as objects moving up into the character from below).

◆ bApplyGravityWhileJumping

uint8 UCharacterMovementComponent::bApplyGravityWhileJumping

Apply gravity while the character is actively jumping (e.g. holding the jump key). Helps remove frame-rate dependent jump height, but may alter base jump height.

◆ bBasedMovementIgnorePhysicsBase

bool UCharacterMovementComponent::bBasedMovementIgnorePhysicsBase = false

Property to set if UpdateBasedMovement should ignore collision with actors part of the current MovementBase, if the base is simulated by physics

◆ bBaseOnAttachmentRoot

bool UCharacterMovementComponent::bBaseOnAttachmentRoot = false

Property to set if characters should stay based on objects attachment root instead of the traced object

◆ bCanTrustClientOnLanding

bool UCharacterMovementComponent::bCanTrustClientOnLanding = false

Whether we're stepping off a moving platform (and should trust the client somewhat when landing).

◆ bCanWalkOffLedges

uint8 UCharacterMovementComponent::bCanWalkOffLedges

If true, Character can walk off a ledge.

◆ bCanWalkOffLedgesWhenCrouching

uint8 UCharacterMovementComponent::bCanWalkOffLedgesWhenCrouching

If true, Character can walk off a ledge when crouching.

◆ bCheatFlying

uint8 UCharacterMovementComponent::bCheatFlying

Instantly stop when in flying mode and no acceleration is being applied.

◆ bCrouchMaintainsBaseLocation

uint8 UCharacterMovementComponent::bCrouchMaintainsBaseLocation

If true, crouching should keep the base of the capsule in place by lowering the center of the shrunken capsule. If false, the base of the capsule moves up and the center stays in place. The same behavior applies when the character uncrouches: if true, the base is kept in the same location and the center moves up. If false, the capsule grows and only moves up if the base impacts something. By default this variable is set when the movement mode changes: set to true when walking and false otherwise. Feel free to override the behavior when the movement mode changes.

◆ bDeferUpdateBasedMovement

uint8 UCharacterMovementComponent::bDeferUpdateBasedMovement
protected

Flag set in pre-physics update to indicate that based movement should be updated post-physics

◆ bDeferUpdateMoveComponent

uint8 UCharacterMovementComponent::bDeferUpdateMoveComponent

true to update CharacterOwner and UpdatedComponent after movement ends

◆ bDontFallBelowJumpZVelocityDuringJump

uint8 UCharacterMovementComponent::bDontFallBelowJumpZVelocityDuringJump

True means while the jump key is held, we will not allow the vertical speed to fall below the JumpZVelocity tuning value even if a stronger force, such as gravity, is opposing the jump.

◆ bEnablePhysicsInteraction

uint8 UCharacterMovementComponent::bEnablePhysicsInteraction

If enabled, the player will interact with physics objects when walking into them.

◆ bEnableScopedMovementUpdates

uint8 UCharacterMovementComponent::bEnableScopedMovementUpdates

If true, high-level movement updates will be wrapped in a movement scope that accumulates updates and defers a bulk of the work until the end. When enabled, touch and hit events will not be triggered until the end of multiple moves within an update, which can improve performance.

See also
FScopedMovementUpdate

◆ bEnableServerDualMoveScopedMovementUpdates

uint8 UCharacterMovementComponent::bEnableServerDualMoveScopedMovementUpdates

Optional scoped movement update to combine moves for cheaper performance on the server when the client sends two moves in one packet. Be warned that since this wraps a larger scope than is normally done with bEnableScopedMovementUpdates, this can result in subtle changes in behavior in regards to when overlap events are handled, when attached components are moved, etc.

See also
bEnableScopedMovementUpdates

◆ bFastAttachedMove

uint8 UCharacterMovementComponent::bFastAttachedMove

Set this to true if riding on a moving base that you know is clear from non-moving world obstructions. Optimization to avoid sweeps during based movement, use with care.

◆ bForceMaxAccel

uint8 UCharacterMovementComponent::bForceMaxAccel

Ignores size of acceleration component, and forces max acceleration to drive character at full velocity.

◆ bForceNextFloorCheck

uint8 UCharacterMovementComponent::bForceNextFloorCheck

Force the Character in MOVE_Walking to do a check for a valid floor even if it hasn't moved. Cleared after next floor check. Normally if bAlwaysCheckFloor is false we try to avoid the floor check unless some conditions are met, but this can be used to force the next check to always run.

◆ bHasRequestedVelocity

uint8 UCharacterMovementComponent::bHasRequestedVelocity
protected

Was velocity requested by path following?

◆ bIgnoreBaseRotation

uint8 UCharacterMovementComponent::bIgnoreBaseRotation

Whether the character ignores changes in rotation of the base it is standing on. If true, the character maintains current world rotation. If false, the character rotates with the moving base.

◆ bIgnoreClientMovementErrorChecksAndCorrection

uint8 UCharacterMovementComponent::bIgnoreClientMovementErrorChecksAndCorrection

If true, we should ignore server location difference checks for client error on this movement component. This can be useful when character is moving at extreme speeds for a duration and you need it to look smooth on clients without the server correcting the client. Make sure to disable when done, as this would break this character's server-client movement correction.

See also
bServerAcceptClientAuthoritativePosition, ServerCheckClientError()

◆ bImpartBaseAngularVelocity

uint8 UCharacterMovementComponent::bImpartBaseAngularVelocity

If true, impart the base component's tangential components of angular velocity when jumping or falling off it. Only those components of the velocity allowed by the separate component settings (bImpartBaseVelocityX etc) will be applied.

See also
bImpartBaseVelocityX, bImpartBaseVelocityY, bImpartBaseVelocityZ

◆ bImpartBaseVelocityX

uint8 UCharacterMovementComponent::bImpartBaseVelocityX

If true, impart the base actor's X velocity when falling off it (which includes jumping)

◆ bImpartBaseVelocityY

uint8 UCharacterMovementComponent::bImpartBaseVelocityY

If true, impart the base actor's Y velocity when falling off it (which includes jumping)

◆ bImpartBaseVelocityZ

uint8 UCharacterMovementComponent::bImpartBaseVelocityZ

If true, impart the base actor's Z velocity when falling off it (which includes jumping)

◆ bIsNavWalkingOnServer

uint8 UCharacterMovementComponent::bIsNavWalkingOnServer

Set on clients when server's movement mode is NavWalking

◆ bJustTeleported

uint8 UCharacterMovementComponent::bJustTeleported

Used by movement code to determine if a change in position is based on normal movement or a teleport. If not a teleport, velocity can be recomputed based on the change in position.

◆ bLastClientIsFalling

bool UCharacterMovementComponent::bLastClientIsFalling = false

Remember if the client was previously falling so we can tell when they've just landed.

◆ bLastServerIsFalling

bool UCharacterMovementComponent::bLastServerIsFalling = false

Remember if the server was previously falling so we can tell when they've just landed.

◆ bLastServerIsWalking

bool UCharacterMovementComponent::bLastServerIsWalking = false

Whether we were just walking on something, used to help with transitions off moving objects.

◆ bMaintainHorizontalGroundVelocity

uint8 UCharacterMovementComponent::bMaintainHorizontalGroundVelocity

If true, walking movement always maintains horizontal velocity when moving up ramps, which causes movement up ramps to be faster parallel to the ramp surface. If false, then walking movement maintains velocity magnitude parallel to the ramp surface.

◆ bMovementInProgress

uint8 UCharacterMovementComponent::bMovementInProgress
protected

True during movement update. Used internally so that attempts to change CharacterOwner and UpdatedComponent are deferred until after an update.

See also
IsMovementInProgress()

◆ bMovementModeDirty

bool UCharacterMovementComponent::bMovementModeDirty = false
protected

◆ bNetworkAlwaysReplicateTransformUpdateTimestamp

uint8 UCharacterMovementComponent::bNetworkAlwaysReplicateTransformUpdateTimestamp

Flag used on the server to determine whether to always replicate ReplicatedServerLastTransformUpdateTimeStamp to clients. Normally this is only sent when the network smoothing mode on character movement is set to Linear smoothing (on the server), to save bandwidth. Setting this to true will force the timestamp to replicate regardless, in case the server doesn't know about the smoothing mode, or if the timestamp is used for another purpose.

◆ bNetworkGravityDirectionChanged

uint8 UCharacterMovementComponent::bNetworkGravityDirectionChanged

True when the networked gravity direction has been replicated.

◆ bNetworkLargeClientCorrection

uint8 UCharacterMovementComponent::bNetworkLargeClientCorrection

Flag indicating the client correction was larger than NetworkLargeClientCorrectionThreshold.

◆ bNetworkMovementModeChanged

uint8 UCharacterMovementComponent::bNetworkMovementModeChanged

True when the networked movement mode has been replicated.

◆ bNetworkSkipProxyPredictionOnNetUpdate

uint8 UCharacterMovementComponent::bNetworkSkipProxyPredictionOnNetUpdate

Whether we skip prediction on frames where a proxy receives a network update. This can avoid expensive prediction on those frames, with the side-effect of predicting with a frame of additional latency.

◆ bNetworkSmoothingComplete

uint8 UCharacterMovementComponent::bNetworkSmoothingComplete

Signals that smoothed position/rotation has reached target, and no more smoothing is necessary until a future update. This is used as an optimization to skip calls to SmoothClientPosition() when true. SmoothCorrection() sets it false when a new network update is received. SmoothClientPosition_Interpolate() sets this to true when the interpolation reaches the target, before one last call to SmoothClientPosition_UpdateVisuals(). If this is not desired, override SmoothClientPosition() to always set this to false to avoid this feature.

◆ bNetworkUpdateReceived

uint8 UCharacterMovementComponent::bNetworkUpdateReceived

True when a network replication update is received for simulated proxies.

◆ bNotifyApex

uint8 UCharacterMovementComponent::bNotifyApex

If true, event NotifyJumpApex() to CharacterOwner's controller when at apex of jump. Is cleared when event is triggered. By default this is off, and if you want the event to fire you typically set it to true when movement mode changes to "Falling" from another mode (see OnMovementModeChanged).

◆ bOrientRotationToMovement

uint8 UCharacterMovementComponent::bOrientRotationToMovement

If true, rotate the Character toward the direction of acceleration, using RotationRate as the rate of rotation change. Overrides UseControllerDesiredRotation. Normally you will want to make sure that other settings are cleared, such as bUseControllerRotationYaw on the Character.

◆ bPerformingJumpOff

uint8 UCharacterMovementComponent::bPerformingJumpOff

Used to prevent reentry of JumpOff()

◆ bProjectNavMeshOnBothWorldChannels

uint8 UCharacterMovementComponent::bProjectNavMeshOnBothWorldChannels
protected

Use both WorldStatic and WorldDynamic channels for NavWalking geometry conforming

◆ bProjectNavMeshWalking

uint8 UCharacterMovementComponent::bProjectNavMeshWalking
protected

Whether to raycast to underlying geometry to better conform navmesh-walking characters

◆ bPushForceScaledToMass

uint8 UCharacterMovementComponent::bPushForceScaledToMass

If enabled, the PushForceFactor is applied per kg mass of the affected object.

◆ bPushForceUsingZOffset

uint8 UCharacterMovementComponent::bPushForceUsingZOffset

If enabled, the PushForce location is moved using PushForcePointZOffsetFactor. Otherwise simply use the impact point.

◆ BRAKE_TO_STOP_VELOCITY

const float UCharacterMovementComponent::BRAKE_TO_STOP_VELOCITY = 10.f
static

Stop completely when braking and velocity magnitude is lower than this.

◆ BrakingDecelerationFalling

float UCharacterMovementComponent::BrakingDecelerationFalling

Lateral deceleration when falling and not applying acceleration.

See also
MaxAcceleration

◆ BrakingDecelerationFlying

float UCharacterMovementComponent::BrakingDecelerationFlying

Deceleration when flying and not applying acceleration.

See also
MaxAcceleration

◆ BrakingDecelerationSwimming

float UCharacterMovementComponent::BrakingDecelerationSwimming

Deceleration when swimming and not applying acceleration.

See also
MaxAcceleration

◆ BrakingDecelerationWalking

float UCharacterMovementComponent::BrakingDecelerationWalking

Deceleration when walking and not applying acceleration. This is a constant opposing force that directly lowers velocity by a constant value.

See also
GroundFriction, MaxAcceleration

◆ bRequestedMoveUseAcceleration

uint8 UCharacterMovementComponent::bRequestedMoveUseAcceleration

Should use acceleration for path following? If true, acceleration is applied when path following to reach the target velocity. If false, path following velocity is set directly, disregarding acceleration.

◆ bRequestedMoveWithMaxSpeed

uint8 UCharacterMovementComponent::bRequestedMoveWithMaxSpeed
protected

Was acceleration requested to be always max speed?

◆ bRunPhysicsWithNoController

uint8 UCharacterMovementComponent::bRunPhysicsWithNoController

If true, movement will be performed even if there is no Controller for the Character owner. Normally without a Controller, movement will be aborted and velocity and acceleration are zeroed if the character is walking. Characters that are spawned without a Controller but with this flag enabled will initialize the movement mode to DefaultLandMovementMode or DefaultWaterMovementMode appropriately.

See also
DefaultLandMovementMode, DefaultWaterMovementMode

◆ bScalePushForceToVelocity

uint8 UCharacterMovementComponent::bScalePushForceToVelocity

If enabled, the applied push force will try to get the physics object to the same velocity than the player, not faster. This will only scale the force down, it will never apply more force than defined by PushForceFactor.

◆ bServerAcceptClientAuthoritativePosition

uint8 UCharacterMovementComponent::bServerAcceptClientAuthoritativePosition

If true, and server does not detect client position error, server will copy the client movement location/velocity/etc after simulating the move. This can be useful for short bursts of movement that are difficult to sync over the network. Note that if bIgnoreClientMovementErrorChecksAndCorrection is used, this means the server will not detect an error. Also see GameNetworkManager->ClientAuthorativePosition which permanently enables this behavior.

See also
bIgnoreClientMovementErrorChecksAndCorrection, ServerShouldUseAuthoritativePosition()

◆ bShrinkProxyCapsule

uint8 UCharacterMovementComponent::bShrinkProxyCapsule

If true, the capsule needs to be shrunk on this simulated proxy, to avoid replication rounding putting us in geometry. Whenever this is set to true, this will cause the capsule to be shrunk again on the next update, and then set to false.

◆ bSlideAlongNavMeshEdge

uint8 UCharacterMovementComponent::bSlideAlongNavMeshEdge
protected

Should we attempt to slide along a navmesh instead of projecting a point on the navmesh and moving to that

◆ bStayBasedInAir

bool UCharacterMovementComponent::bStayBasedInAir = false

Property to set if characters should stay based on objects while jumping

◆ bSweepWhileNavWalking

uint8 UCharacterMovementComponent::bSweepWhileNavWalking

Whether or not the character should sweep for collision geometry while walking.

See also
USceneComponent::MoveComponent.

◆ bTeleportedSinceLastUpdate

bool UCharacterMovementComponent::bTeleportedSinceLastUpdate = false

True if the UpdatedComponent was moved outside of this CharacterMovementComponent since the last move – its starting location for this update doesn't match its ending position for the previous update.

◆ bTouchForceScaledToMass

uint8 UCharacterMovementComponent::bTouchForceScaledToMass

If enabled, the TouchForceFactor is applied per kg mass of the affected object.

◆ Buoyancy

float UCharacterMovementComponent::Buoyancy

Water buoyancy. A ratio (1.0 = neutral buoyancy, 0.0 = no buoyancy)

◆ bUseControllerDesiredRotation

uint8 UCharacterMovementComponent::bUseControllerDesiredRotation

If true, smoothly rotate the Character toward the Controller's desired rotation (typically Controller->ControlRotation), using RotationRate as the rate of rotation change. Overridden by OrientRotationToMovement. Normally you will want to make sure that other settings are cleared, such as bUseControllerRotationYaw on the Character.

◆ bUseFlatBaseForFloorChecks

uint8 UCharacterMovementComponent::bUseFlatBaseForFloorChecks

Performs floor checks as if the character is using a shape with a flat base. This avoids the situation where characters slowly lower off the side of a ledge (as their capsule 'balances' on the edge).

◆ bUseRVOAvoidance

uint8 UCharacterMovementComponent::bUseRVOAvoidance

If set, component will use RVO avoidance. This only runs on the server.

◆ bUseRVOPostProcess

uint8 UCharacterMovementComponent::bUseRVOPostProcess
protected

if set, PostProcessAvoidanceVelocity will be called

◆ bUseSeparateBrakingFriction

uint8 UCharacterMovementComponent::bUseSeparateBrakingFriction

If true, BrakingFriction will be used to slow the character to a stop (when there is no Acceleration). If false, braking uses the same friction passed to CalcVelocity() (ie GroundFriction when walking), multiplied by BrakingFrictionFactor. This setting applies to all movement modes; if only desired in certain modes, consider toggling it when movement modes change.

See also
BrakingFriction

◆ bWantsToCrouch

uint8 UCharacterMovementComponent::bWantsToCrouch

If true, try to crouch (or keep crouching) on next update. If false, try to stop crouching on next update.

◆ bWantsToLeaveNavWalking

uint8 UCharacterMovementComponent::bWantsToLeaveNavWalking

Used to safely leave NavWalking movement mode

◆ bWasAvoidanceUpdated

uint8 UCharacterMovementComponent::bWasAvoidanceUpdated
protected

Was avoidance updated in this frame?

◆ bWasSimulatingRootMotion

uint8 UCharacterMovementComponent::bWasSimulatingRootMotion

True when SimulatedProxies are simulating RootMotion

◆ CachedNavLocation

FNavLocation UCharacterMovementComponent::CachedNavLocation

last known location projected on navmesh, used by NavWalking mode

◆ CachedProjectedNavMeshHitResult

FHitResult UCharacterMovementComponent::CachedProjectedNavMeshHitResult

Last valid projected hit result from raycast to geometry from navmesh

◆ CharacterOwner

TObjectPtr<ACharacter> UCharacterMovementComponent::CharacterOwner
protected

Character movement component belongs to

◆ ClientPredictionData

class FNetworkPredictionData_Client_Character* UCharacterMovementComponent::ClientPredictionData
protected

◆ CurrentFloor

FFindFloorResult UCharacterMovementComponent::CurrentFloor

Information about the floor the Character is standing on (updated only during walking movement).

◆ CurrentRootMotion

FRootMotionSourceGroup UCharacterMovementComponent::CurrentRootMotion

Root Motion Group containing active root motion sources being applied to movement

◆ CustomMovementMode

uint8 UCharacterMovementComponent::CustomMovementMode

Current custom sub-mode if MovementMode is set to Custom. This is automatically replicated through the Character owner and for client-server movement functions.

See also
SetMovementMode()

◆ DecayingFormerBaseVelocity

FVector UCharacterMovementComponent::DecayingFormerBaseVelocity = FVector::ZeroVector

Left over velocity when leaving a moving base. Helps with airborne root motion.

◆ DefaultGravityDirection

const FVector UCharacterMovementComponent::DefaultGravityDirection = FVector(0.0, 0.0, -1.0)
static

The default direction that gravity points for movement simulation.

◆ DefaultLandMovementMode

TEnumAsByte<enum EMovementMode> UCharacterMovementComponent::DefaultLandMovementMode

Default movement mode when not in water. Used at player startup or when teleported.

See also
DefaultWaterMovementMode
bRunPhysicsWithNoController

◆ DefaultWaterMovementMode

TEnumAsByte<enum EMovementMode> UCharacterMovementComponent::DefaultWaterMovementMode

Default movement mode when in water. Used at player startup or when teleported.

See also
DefaultLandMovementMode
bRunPhysicsWithNoController

◆ DeferredUpdatedMoveComponent

TObjectPtr<USceneComponent> UCharacterMovementComponent::DeferredUpdatedMoveComponent

What to update CharacterOwner and UpdatedComponent after movement ends

◆ FallingLateralFriction

float UCharacterMovementComponent::FallingLateralFriction

Friction to apply to lateral air movement when falling. If bUseSeparateBrakingFriction is false, also affects the ability to stop more quickly when braking (whenever Acceleration is zero).

See also
BrakingFriction, bUseSeparateBrakingFriction

◆ FormerBaseVelocityDecayHalfLife

float UCharacterMovementComponent::FormerBaseVelocityDecayHalfLife = 0.f

When applying a root motion override while falling off a moving object, this controls how long it takes to lose half the former base's velocity (in seconds). Set to 0 to ignore former bases (default). Set to -1 for no decay. Any other positive value sets the half-life for exponential decay.

◆ GravityScale

float UCharacterMovementComponent::GravityScale

Custom gravity scale. Gravity is multiplied by this amount for the character.

◆ GroundFriction

float UCharacterMovementComponent::GroundFriction

Setting that affects movement control. Higher values allow faster changes in direction. If bUseSeparateBrakingFriction is false, also affects the ability to stop more quickly when braking (whenever Acceleration is zero), where it is multiplied by BrakingFrictionFactor. When braking, this property allows you to control how much friction is applied when moving across the ground, applying an opposing force that scales with current velocity. This can be used to simulate slippery surfaces such as ice or oil by changing the value (possibly based on the material pawn is standing on).

See also
BrakingDecelerationWalking, BrakingFriction, bUseSeparateBrakingFriction, BrakingFrictionFactor

◆ GroupsToAvoid

FNavAvoidanceMask UCharacterMovementComponent::GroupsToAvoid

Will avoid other agents if they are in one of specified groups

◆ GroupsToIgnore

FNavAvoidanceMask UCharacterMovementComponent::GroupsToIgnore

Will NOT avoid other agents if they are in one of specified groups, higher priority than GroupsToAvoid

◆ InitialPushForceFactor

float UCharacterMovementComponent::InitialPushForceFactor

Initial impulse force to apply when the player bounces into a blocking physics object.

◆ JumpOffJumpZFactor

float UCharacterMovementComponent::JumpOffJumpZFactor

Fraction of JumpZVelocity to use when automatically "jumping off" of a base actor that's not allowed to be a base for a character. (For example, if you're not allowed to stand on other players.)

◆ JumpOutOfWaterPitch

float UCharacterMovementComponent::JumpOutOfWaterPitch

When exiting water, jump if control pitch angle is this high or above.

◆ JumpZVelocity

float UCharacterMovementComponent::JumpZVelocity

Initial velocity (instantaneous vertical acceleration) when jumping.

◆ LastServerMovementBaseBoneName

FName UCharacterMovementComponent::LastServerMovementBaseBoneName = NAME_None

Remember last server movement base bone so we can detect mounts/dismounts and respond accordingly.

◆ LastStuckWarningTime

float UCharacterMovementComponent::LastStuckWarningTime
protected

Used for throttling "stuck in geometry" logging.

◆ LastTimeStampResetServerTime

float UCharacterMovementComponent::LastTimeStampResetServerTime
protected

Clock time on the server of the last timestamp reset.

◆ LastUpdateLocation

FVector UCharacterMovementComponent::LastUpdateLocation
protected

Location after last PerformMovement or SimulateMovement update. Used internally to detect changes in position from outside character movement to try to validate the current floor.

◆ LastUpdateRequestedVelocity

FVector UCharacterMovementComponent::LastUpdateRequestedVelocity

Velocity requested by path following during last Update Updated when we consume the value

◆ LastUpdateRotation

FQuat UCharacterMovementComponent::LastUpdateRotation
protected

Rotation after last PerformMovement or SimulateMovement update.

◆ LastUpdateVelocity

FVector UCharacterMovementComponent::LastUpdateVelocity
protected

Velocity after last PerformMovement or SimulateMovement update. Used internally to detect changes in velocity from external sources.

◆ LedgeCheckThreshold

float UCharacterMovementComponent::LedgeCheckThreshold

Used in determining if pawn is going off ledge. If the ledge is "shorter" than this value then the pawn will be able to walk off it.

◆ MAX_FLOOR_DIST

const float UCharacterMovementComponent::MAX_FLOOR_DIST = 2.4f
static

Maximum acceptable distance for Character capsule to float above floor when walking.

◆ MaxCustomMovementSpeed

float UCharacterMovementComponent::MaxCustomMovementSpeed

The maximum speed when using Custom movement mode.

◆ MaxFlySpeed

float UCharacterMovementComponent::MaxFlySpeed

The maximum flying speed.

◆ MaxOutOfWaterStepHeight

float UCharacterMovementComponent::MaxOutOfWaterStepHeight

Maximum step height for getting out of water

◆ MaxServerClientErrorWhileFalling

float UCharacterMovementComponent::MaxServerClientErrorWhileFalling = 0.f

How loosely the client can follow the server location during this fall.

◆ MaxStepHeight

float UCharacterMovementComponent::MaxStepHeight

Maximum height character can step up

◆ MaxSwimSpeed

float UCharacterMovementComponent::MaxSwimSpeed

The maximum swimming speed.

◆ MaxTouchForce

float UCharacterMovementComponent::MaxTouchForce

Maximum force applied to touched physics objects. If < 0.0f, there is no maximum.

◆ MaxWalkSpeed

float UCharacterMovementComponent::MaxWalkSpeed

The maximum ground speed when walking. Also determines maximum lateral speed when falling.

◆ MaxWalkSpeedCrouched

float UCharacterMovementComponent::MaxWalkSpeedCrouched

The maximum ground speed when walking and crouched.

◆ MIN_FLOOR_DIST

const float UCharacterMovementComponent::MIN_FLOOR_DIST = 1.9f
static

Minimum acceptable distance for Character capsule to float above floor when walking.

◆ MIN_TICK_TIME

const float UCharacterMovementComponent::MIN_TICK_TIME = 1e-6f
static

Minimum delta time considered when ticking. Delta times below this are not considered. This is a very small non-zero value to avoid potential divide-by-zero in simulation code.

◆ MinAnalogWalkSpeed

float UCharacterMovementComponent::MinAnalogWalkSpeed

The ground speed that we should accelerate up to when walking at minimum analog stick tilt

◆ MinTimeBetweenTimeStampResets

float UCharacterMovementComponent::MinTimeBetweenTimeStampResets

Minimum time between client TimeStamp resets. !! This has to be large enough so that we don't confuse the server if the client can stall or timeout. We do this as we use floats for TimeStamps, and server derives DeltaTime from two TimeStamps. As time goes on, accuracy decreases from those floating point numbers. So we trigger a TimeStamp reset at regular intervals to maintain a high level of accuracy.

◆ MinTouchForce

float UCharacterMovementComponent::MinTouchForce

Minimum Force applied to touched physics objects. If < 0.0f, there is no minimum.

◆ MovementMode

TEnumAsByte<enum EMovementMode> UCharacterMovementComponent::MovementMode

Actor's current movement mode (walking, falling, etc).

  • walking: Walking on a surface, under the effects of friction, and able to "step up" barriers. Vertical velocity is zero.
  • falling: Falling under the effects of gravity, after jumping or walking off the edge of a surface.
  • flying: Flying, ignoring the effects of gravity.
  • swimming: Swimming through a fluid volume, under the effects of gravity and buoyancy.
  • custom: User-defined custom movement mode, including many possible sub-modes. This is automatically replicated through the Character owner and for client-server movement functions.
    See also
    SetMovementMode(), CustomMovementMode

◆ NavMeshProjectionHeightScaleDown

float UCharacterMovementComponent::NavMeshProjectionHeightScaleDown

Scale of the total capsule height to use for projection from navmesh to underlying geometry in the downward direction. In other words, trace down to [CapsuleHeight * NavMeshProjectionHeightScaleDown] below nav mesh.

◆ NavMeshProjectionHeightScaleUp

float UCharacterMovementComponent::NavMeshProjectionHeightScaleUp

Scale of the total capsule height to use for projection from navmesh to underlying geometry in the upward direction. In other words, start the trace at [CapsuleHeight * NavMeshProjectionHeightScaleUp] above nav mesh.

◆ NavMeshProjectionInterpSpeed

float UCharacterMovementComponent::NavMeshProjectionInterpSpeed

Speed at which to interpolate agent navmesh offset between traces. 0: Instant (no interp) > 0: Interp speed")

◆ NavMeshProjectionInterval

float UCharacterMovementComponent::NavMeshProjectionInterval

How often we should raycast to project from navmesh to underlying geometry

◆ NavMeshProjectionTimer

float UCharacterMovementComponent::NavMeshProjectionTimer

◆ NavWalkingFloorDistTolerance

float UCharacterMovementComponent::NavWalkingFloorDistTolerance

Ignore small differences in ground height between server and client data during NavWalking mode

◆ NetworkSmoothingMode

ENetworkSmoothingMode UCharacterMovementComponent::NetworkSmoothingMode

Smoothing mode for simulated proxies in network game.

◆ NumJumpApexAttempts

int32 UCharacterMovementComponent::NumJumpApexAttempts
protected

Used to limit number of jump apex attempts per tick.

See also
MaxJumpApexAttemptsPerSimulation

◆ OldBaseLocation

FVector UCharacterMovementComponent::OldBaseLocation

Saved location of object we are standing on, for UpdateBasedMovement() to determine if base moved in the last frame, and therefore pawn needs an update.

◆ OldBaseQuat

FQuat UCharacterMovementComponent::OldBaseQuat

Saved location of object we are standing on, for UpdateBasedMovement() to determine if base moved in the last frame, and therefore pawn needs an update.

◆ OutofWaterZ

float UCharacterMovementComponent::OutofWaterZ

Z velocity applied when pawn tries to get out of water

◆ PendingForceToApply

FVector UCharacterMovementComponent::PendingForceToApply
protected

Accumulated force to be added next tick.

◆ PendingImpulseToApply

FVector UCharacterMovementComponent::PendingImpulseToApply
protected

Accumulated impulse to be added next tick.

◆ PendingLaunchVelocity

FVector UCharacterMovementComponent::PendingLaunchVelocity

Temporarily holds launch velocity when pawn is to be launched so it happens at end of movement.

◆ PerchAdditionalHeight

float UCharacterMovementComponent::PerchAdditionalHeight

When perching on a ledge, add this additional distance to MaxStepHeight when determining how high above a walkable floor we can perch. Note that we still enforce MaxStepHeight to start the step up; this just allows the character to hang off the edge or step slightly higher off the floor. (

See also
PerchRadiusThreshold)

◆ PerchRadiusThreshold

float UCharacterMovementComponent::PerchRadiusThreshold

Don't allow the character to perch on the edge of a surface if the contact is this close to the edge of the capsule. Note that characters will not fall off if they are within MaxStepHeight of a walkable surface below.

◆ PostPhysicsTickFunction

struct FCharacterMovementComponentPostPhysicsTickFunction UCharacterMovementComponent::PostPhysicsTickFunction

Post-physics tick function for this character

◆ PrePhysicsTickFunction

struct FCharacterMovementComponentPrePhysicsTickFunction UCharacterMovementComponent::PrePhysicsTickFunction

Pre-physics tick function for this character

◆ ProcessRootMotionPostConvertToWorld

FOnProcessRootMotion UCharacterMovementComponent::ProcessRootMotionPostConvertToWorld

◆ ProcessRootMotionPreConvertToWorld

FOnProcessRootMotion UCharacterMovementComponent::ProcessRootMotionPreConvertToWorld

◆ PushForceFactor

float UCharacterMovementComponent::PushForceFactor

Force to apply when the player collides with a blocking physics object.

◆ RandomStream

FRandomStream UCharacterMovementComponent::RandomStream
protected

◆ RepulsionForce

float UCharacterMovementComponent::RepulsionForce

Force per kg applied constantly to all overlapping components.

◆ RequestedVelocity

FVector UCharacterMovementComponent::RequestedVelocity

Velocity requested by path following.

See also
RequestDirectMove()

◆ RootMotionIDMappings

TArray<FRootMotionServerToLocalIDMapping, TInlineAllocator<(uint32)ERootMotionMapping::MapSize> > UCharacterMovementComponent::RootMotionIDMappings

◆ RootMotionParams

FRootMotionMovementParams UCharacterMovementComponent::RootMotionParams

Animation root motion (special case for now) Root Motion movement params. Holds result of anim montage root motion during PerformMovement(), and is overridden during autonomous move playback to force historical root motion for MoveAutonomous() calls

◆ RotationRate

FRotator UCharacterMovementComponent::RotationRate

Change in rotation per second, used when UseControllerDesiredRotation or OrientRotationToMovement are true. Set a negative value for infinite rotation rate and instant turns.

◆ ServerCorrectionRootMotion

FRootMotionSourceGroup UCharacterMovementComponent::ServerCorrectionRootMotion

◆ ServerLastClientAdjustmentTime

float UCharacterMovementComponent::ServerLastClientAdjustmentTime
protected

Timestamp of last client adjustment sent. See NetworkMinTimeBetweenClientAdjustments.

◆ ServerLastClientGoodMoveAckTime

float UCharacterMovementComponent::ServerLastClientGoodMoveAckTime
protected

Timestamp of last client adjustment sent. See NetworkMinTimeBetweenClientAdjustments.

◆ ServerLastTransformUpdateTimeStamp

float UCharacterMovementComponent::ServerLastTransformUpdateTimeStamp
protected

Timestamp when location or rotation last changed during an update. Only valid on the server.

◆ ServerPredictionData

class FNetworkPredictionData_Server_Character* UCharacterMovementComponent::ServerPredictionData
protected

◆ StandingDownwardForceScale

float UCharacterMovementComponent::StandingDownwardForceScale

Force applied to objects we stand on (due to Mass and Gravity) is scaled by this amount.

◆ StayBasedInAirHeight

float UCharacterMovementComponent::StayBasedInAirHeight = 1000.0f

Property used to set how high above base characters should stay based on objects while jumping if bStayBasedInAir is set

◆ StuckWarningCountSinceNotify

uint32 UCharacterMovementComponent::StuckWarningCountSinceNotify
protected

Used when throttling "stuck in geometry" logging, to output the number of events we skipped if throttling.

◆ SWEEP_EDGE_REJECT_DISTANCE

const float UCharacterMovementComponent::SWEEP_EDGE_REJECT_DISTANCE = 0.15f
static

Reject sweep impacts that are this close to the edge of the vertical portion of the capsule when performing vertical sweeps, and try again with a smaller capsule.

◆ TouchForceFactor

float UCharacterMovementComponent::TouchForceFactor

Force to apply to physics objects that are touched by the player.


The documentation for this class was generated from the following files: