UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
CharacterMovementComponent.cpp File Reference

Classes

struct  FScopedMeshBoneUpdateOverride
 
struct  FScopedCapsuleMovementUpdate
 
struct  FScopedMeshMovementUpdate
 

Namespaces

namespace  CharacterMovementConstants
 
namespace  CharacterMovementCVars
 
namespace  PackedMovementModeConstants
 
namespace  UE
 
namespace  UE::Private
 

Macros

#define devCode(...)
 

Functions

 CSV_DEFINE_CATEGORY (CharacterMovement, true)
 
 CSV_DEFINE_CATEGORY (CharacterMovementDetailed,(!UE_BUILD_SHIPPING))
 
 DEFINE_LOG_CATEGORY_STATIC (LogCharacterMovement, Log, All)
 
 DEFINE_LOG_CATEGORY_STATIC (LogNavMeshMovement, Log, All)
 
 DEFINE_LOG_CATEGORY_STATIC (LogCharacterNetSmoothing, Log, All)
 
 DECLARE_CYCLE_STAT (TEXT("Char Tick"), STAT_CharacterMovementTick, STATGROUP_Character)
 
 DECLARE_CYCLE_STAT (TEXT("Char NonSimulated Time"), STAT_CharacterMovementNonSimulated, STATGROUP_Character)
 
 DECLARE_CYCLE_STAT (TEXT("Char Simulated Time"), STAT_CharacterMovementSimulated, STATGROUP_Character)
 
 DECLARE_CYCLE_STAT (TEXT("Char PerformMovement"), STAT_CharacterMovementPerformMovement, STATGROUP_Character)
 
 DECLARE_CYCLE_STAT (TEXT("Char ReplicateMoveToServer"), STAT_CharacterMovementReplicateMoveToServer, STATGROUP_Character)
 
 DECLARE_CYCLE_STAT (TEXT("Char CallServerMove"), STAT_CharacterMovementCallServerMove, STATGROUP_Character)
 
 DECLARE_CYCLE_STAT (TEXT("Char ServerMove"), STAT_CharacterMovementServerMove, STATGROUP_Character)
 
 DECLARE_CYCLE_STAT (TEXT("Char ServerForcePositionUpdate"), STAT_CharacterMovementForcePositionUpdate, STATGROUP_Character)
 
 DECLARE_CYCLE_STAT (TEXT("Char RootMotionSource Calculate"), STAT_CharacterMovementRootMotionSourceCalculate, STATGROUP_Character)
 
 DECLARE_CYCLE_STAT (TEXT("Char RootMotionSource Apply"), STAT_CharacterMovementRootMotionSourceApply, STATGROUP_Character)
 
 DECLARE_CYCLE_STAT (TEXT("Char ClientUpdatePositionAfterServerUpdate"), STAT_CharacterMovementClientUpdatePositionAfterServerUpdate, STATGROUP_Character)
 
 DECLARE_CYCLE_STAT (TEXT("Char CombineNetMove"), STAT_CharacterMovementCombineNetMove, STATGROUP_Character)
 
 DECLARE_CYCLE_STAT (TEXT("Char NetSmoothCorrection"), STAT_CharacterMovementSmoothCorrection, STATGROUP_Character)
 
 DECLARE_CYCLE_STAT (TEXT("Char SmoothClientPosition"), STAT_CharacterMovementSmoothClientPosition, STATGROUP_Character)
 
 DECLARE_CYCLE_STAT (TEXT("Char SmoothClientPosition_Interp"), STAT_CharacterMovementSmoothClientPosition_Interp, STATGROUP_Character)
 
 DECLARE_CYCLE_STAT (TEXT("Char SmoothClientPosition_Visual"), STAT_CharacterMovementSmoothClientPosition_Visual, STATGROUP_Character)
 
 DECLARE_CYCLE_STAT (TEXT("Char Physics Interation"), STAT_CharPhysicsInteraction, STATGROUP_Character)
 
 DECLARE_CYCLE_STAT (TEXT("Char StepUp"), STAT_CharStepUp, STATGROUP_Character)
 
 DECLARE_CYCLE_STAT (TEXT("Char FindFloor"), STAT_CharFindFloor, STATGROUP_Character)
 
 DECLARE_CYCLE_STAT (TEXT("Char AdjustFloorHeight"), STAT_CharAdjustFloorHeight, STATGROUP_Character)
 
 DECLARE_CYCLE_STAT (TEXT("Char Update Acceleration"), STAT_CharUpdateAcceleration, STATGROUP_Character)
 
 DECLARE_CYCLE_STAT (TEXT("Char MoveUpdateDelegate"), STAT_CharMoveUpdateDelegate, STATGROUP_Character)
 
 DECLARE_CYCLE_STAT (TEXT("Char PhysWalking"), STAT_CharPhysWalking, STATGROUP_Character)
 
 DECLARE_CYCLE_STAT (TEXT("Char PhysFalling"), STAT_CharPhysFalling, STATGROUP_Character)
 
 DECLARE_CYCLE_STAT (TEXT("Char PhysNavWalking"), STAT_CharPhysNavWalking, STATGROUP_Character)
 
 DECLARE_CYCLE_STAT (TEXT("Char NavProjectPoint"), STAT_CharNavProjectPoint, STATGROUP_Character)
 
 DECLARE_CYCLE_STAT (TEXT("Char NavProjectLocation"), STAT_CharNavProjectLocation, STATGROUP_Character)
 
 DECLARE_CYCLE_STAT (TEXT("Char ProcessLanded"), STAT_CharProcessLanded, STATGROUP_Character)
 
 DECLARE_CYCLE_STAT (TEXT("Char HandleImpact"), STAT_CharHandleImpact, STATGROUP_Character)
 
float GetAxisDeltaRotation (float InAxisRotationRate, float DeltaTime)
 

Variables

const float CharacterMovementConstants::MAX_STEP_SIDE_Z = 0.08f
 
const float CharacterMovementConstants::SWIMBOBSPEED = -80.f
 
const float CharacterMovementConstants::VERTICAL_SLOPE_NORMAL_Z = 0.001f
 
FAutoConsoleVariableRef CharacterMovementCVars::CVarNetUsePackedMovementRPCs (TEXT("p.NetUsePackedMovementRPCs"), NetUsePackedMovementRPCs, TEXT("0: Disable, 1: Enable"), ECVF_Default)
 
FAutoConsoleVariableRef CharacterMovementCVars::CVarNetPackedMovementMaxBits (TEXT("p.NetPackedMovementMaxBits"), NetPackedMovementMaxBits, TEXT("Max number of bits allowed in each packed movement RPC. Used to protect against bad data causing the server to allocate too much memory.\n"), ECVF_Default)
 
FAutoConsoleVariableRef CharacterMovementCVars::CVarNetEnableListenServerSmoothing (TEXT("p.NetEnableListenServerSmoothing"), NetEnableListenServerSmoothing, TEXT("0: Disable, 1: Enable"), ECVF_Default)
 
FAutoConsoleVariableRef CharacterMovementCVars::CVarNetEnableSkipProxyPredictionOnNetUpdate (TEXT("p.NetEnableSkipProxyPredictionOnNetUpdate"), NetEnableSkipProxyPredictionOnNetUpdate, TEXT("0: Disable, 1: Enable"), ECVF_Default)
 
FAutoConsoleVariableRef CharacterMovementCVars::CVarEnableQueuedAnimEventsOnServer (TEXT("a.EnableQueuedAnimEventsOnServer"), EnableQueuedAnimEventsOnServer, TEXT("0: Disable, 1: Enable"), ECVF_Default)
 
FAutoConsoleVariableRef CharacterMovementCVars::CVarStuckWarningPeriod (TEXT("p.CharacterStuckWarningPeriod"), StuckWarningPeriod, TEXT("<0: Disable, >=0: Enable and log this often, in seconds."), ECVF_Default)
 
FAutoConsoleVariableRef CharacterMovementCVars::CVarNetEnableMoveCombining (TEXT("p.NetEnableMoveCombining"), NetEnableMoveCombining, TEXT("0: Disable, 1: Enable"), ECVF_Default)
 
FAutoConsoleVariableRef CharacterMovementCVars::CVarNetEnableMoveCombiningOnStaticBaseChange (TEXT("p.NetEnableMoveCombiningOnStaticBaseChange"), NetEnableMoveCombiningOnStaticBaseChange, TEXT("0: Disable, 1: Enable"), ECVF_Default)
 
FAutoConsoleVariableRef CharacterMovementCVars::CVarNetMoveCombiningAttachedLocationTolerance (TEXT("p.NetMoveCombiningAttachedLocationTolerance"), NetMoveCombiningAttachedLocationTolerance, TEXT("Tolerance for relative location attachment change when combining moves. Small tolerances allow for very slight jitter due to transform updates."), ECVF_Default)
 
FAutoConsoleVariableRef CharacterMovementCVars::CVarNetMoveCombiningAttachedRotationTolerance (TEXT("p.NetMoveCombiningAttachedRotationTolerance"), NetMoveCombiningAttachedRotationTolerance, TEXT("Tolerance for relative rotation attachment change when combining moves. Small tolerances allow for very slight jitter due to transform updates."), ECVF_Default)
 
FAutoConsoleVariableRef CharacterMovementCVars::CVarNetStationaryRotationTolerance (TEXT("p.NetStationaryRotationTolerance"), NetStationaryRotationTolerance, TEXT("Tolerance for GetClientNetSendDeltaTime() to remain throttled when small control rotation changes occur."), ECVF_Default)
 
FAutoConsoleVariableRef CharacterMovementCVars::CVarNetUseClientTimestampForReplicatedTransform (TEXT("p.NetUseClientTimestampForReplicatedTransform"), NetUseClientTimestampForReplicatedTransform, TEXT("0: Disable, 1: Enable"), ECVF_Default)
 
FAutoConsoleVariableRef CharacterMovementCVars::CVarNetServerForcePositionUpdateSyncToClient (TEXT("p.NetServerForcePositionUpdateSyncToClient"), bNetServerForcePositionUpdateSyncToClient, TEXT("If enabled, the server will always sync to the client timestamp when receiving a valid move after forcing updates (true is the old default behavior).\n"), ECVF_Default)
 
FAutoConsoleVariableRef CharacterMovementCVars::CVarNetServerMaxMoveDeltaTimeScalar (TEXT("p.NetServerMaxMoveDeltaTimeScalar"), NetServerMaxMoveDeltaTimeScalar, TEXT("Allows the server to accept longer moves than the client is normally allowed to send, to avoid corrections (a value of 1 is old default behavior).\n"), ECVF_Default)
 
FAutoConsoleVariableRef CharacterMovementCVars::CVarReplayLerpAcceleration (TEXT("p.ReplayLerpAcceleration"), ReplayLerpAcceleration, TEXT(""), ECVF_Default)
 
FAutoConsoleVariableRef CharacterMovementCVars::CVarFixReplayOverSampling (TEXT("p.FixReplayOverSampling"), FixReplayOverSampling, TEXT("If 1, remove invalid replay samples that can occur due to oversampling (sampling at higher rate than physics is being ticked)"), ECVF_Default)
 
FAutoConsoleVariableRef CharacterMovementCVars::CVarForceJumpPeakSubstep (TEXT("p.ForceJumpPeakSubstep"), ForceJumpPeakSubstep, TEXT("If 1, force a jump substep to always reach the peak position of a jump, which can often be cut off as framerate lowers."), ECVF_Default)
 
FAutoConsoleVariableRef CharacterMovementCVars::CVarNetServerMoveTimestampExpiredWarningThreshold (TEXT("net.NetServerMoveTimestampExpiredWarningThreshold"), NetServerMoveTimestampExpiredWarningThreshold, TEXT("Tolerance for ServerMove() to warn when client moves are expired more than this time threshold behind the server."), ECVF_Default)
 
FAutoConsoleVariableRef CharacterMovementCVars::CVarAsyncCharacterMovement (TEXT("p.AsyncCharacterMovement"), AsyncCharacterMovement, TEXT("1 enables asynchronous simulation of character movement on physics thread. Toggling this at runtime is not recommended. This feature is not fully developed, and its use is discouraged."))
 
int32 CharacterMovementCVars::BasedMovementMode = 2
 
FAutoConsoleVariableRef CharacterMovementCVars::CVarBasedMovementMode (TEXT("p.BasedMovementMode"), BasedMovementMode, TEXT("0 means always on regular tick (default); 1 means only if not deferring updates; 2 means update and save based movement both on regular ticks and post physics when on a physics base."))
 
FAutoConsoleVariableRef CharacterMovementCVars::CVarNetUseBaseRelativeAcceleration (TEXT("p.NetUseBaseRelativeAcceleration"), NetUseBaseRelativeAcceleration, TEXT("If enabled, character acceleration will be treated as relative to dynamic movement bases."))
 
FAutoConsoleVariableRef CharacterMovementCVars::CVarNetUseBaseRelativeVelocity (TEXT("p.NetUseBaseRelativeVelocity"), NetUseBaseRelativeVelocity, TEXT("If enabled, character velocity corrections will be treated as relative to dynamic movement bases."))
 
FAutoConsoleVariableRef CharacterMovementCVars::CVarUseTargetVelocityOnImpact (TEXT("p.UseTargetVelocityOnImpact"), UseTargetVelocityOnImpact, TEXT("When disabled, we recalculate velocity after impact by comparing our position before we moved to our position after we moved. This doesn't work correctly when colliding with physics objects, so setting this to 1 fixes this one the hit object is moving."))
 
FAutoConsoleVariableRef CharacterMovementCVars::CVarClientAuthorityThresholdOnBaseChange (TEXT("p.ClientAuthorityThresholdOnBaseChange"), ClientAuthorityThresholdOnBaseChange, TEXT("When a pawn moves onto or off of a moving base, this can cause an abrupt correction. In these cases, trust the client up to this distance away from the server component location."), ECVF_Default)
 
FAutoConsoleVariableRef CharacterMovementCVars::CVarMaxFallingCorrectionLeash (TEXT("p.MaxFallingCorrectionLeash"), MaxFallingCorrectionLeash, TEXT("When airborne, some distance between the server and client locations may remain to avoid sudden corrections as clients jump from moving bases. This value is the maximum allowed distance."), ECVF_Default)
 
FAutoConsoleVariableRef CharacterMovementCVars::CVarMaxFallingCorrectionLeashBuffer (TEXT("p.MaxFallingCorrectionLeashBuffer"), MaxFallingCorrectionLeashBuffer, TEXT("To avoid constant corrections, when an airborne server and client are further than p.MaxFallingCorrectionLeash cm apart, they'll be pulled in to that distance minus this value."), ECVF_Default)
 
FAutoConsoleVariableRef CharacterMovementCVars::CVarAddFormerBaseVelocityToRootMotionOverrideWhenFalling (TEXT("p.AddFormerBaseVelocityToRootMotionOverrideWhenFalling"), bAddFormerBaseVelocityToRootMotionOverrideWhenFalling, TEXT("To avoid sudden velocity changes when a root motion source moves the pawn from a moving base to free fall, this CVar will enable the FormerBaseVelocityDecayHalfLife property on CharacterMovementComponent."), ECVF_Default)
 
FAutoConsoleVariableRef CharacterMovementCVars::CVarGeometryCollectionImpulseWorkAround (TEXT("p.CVarGeometryCollectionImpulseWorkAround"), bGeometryCollectionImpulseWorkAround, TEXT("This enabled a workaround to allow impulses to be applied to geometry collection.\n"), ECVF_Default)
 
FAutoConsoleVariableRef CharacterMovementCVars::CVarUseLastGoodRotationDuringCorrection (TEXT("p.UseLastGoodRotationDuringCorrection"), bUseLastGoodRotationDuringCorrection, TEXT("When enabled, during a correction, restore the last good rotation before re-simulating saved moves if the server didn't specify one. This improves visual quality with options like bOrientToMovement or bUseControllerDesiredRotation that rotate over time."), ECVF_Default)
 
FAutoConsoleVariableRef CharacterMovementCVars::CVarPreventNonVerticalOrientationBlock (TEXT("p.PreventNonVerticalOrientationBlock"), bPreventNonVerticalOrientationBlock, TEXT("When enabled, this allows a character that's supposed to remain vertical to snap to a vertical orientation even if RotationRate settings would block it. See @ShouldRemainVertical and @RotationRate."), ECVF_Default)
 
FAutoConsoleVariableRef CharacterMovementCVars::CVarDeferCharacterMeshMovement (TEXT("p.DeferCharacterMeshMovement"), bDeferCharacterMeshMovement, TEXT("Optimization - When enabled, defers CharacterMesh move propagation until the end of larger scoped moves. The mesh will still move, but all attached components will wait until all mesh movement is done within the scope."), ECVF_Default)
 
FAutoConsoleVariableRef CharacterMovementCVars::CVarDeferCharacterMeshMovementForAllCorrections (TEXT("p.DeferCharacterMeshMovementForAllCorrections"), bDeferCharacterMeshMovementForAllCorrections, TEXT("Optimization - When enabled, defers CharacterMesh move propagation for all corrections until the end of larger scoped moves. Requires `bDeferCharacterMeshMovement=true'."), ECVF_Default)
 
FAutoConsoleVariableRef CharacterMovementCVars::CVarLedgeMovementDetectEdgeNormal (TEXT("p.LedgeMovement.DetectEdgeNormal"), bLedgeMovementDetectEdgeNormal, TEXT("Detect the normal of the ledge when avoiding walking off ledges, to try to find a better movement direction."), ECVF_Default)
 
FAutoConsoleVariableRef CharacterMovementCVars::CVarLedgeMovementApplyDirectMove (TEXT("p.LedgeMovement.ApplyDirectMove"), bLedgeMovementApplyDirectMove, TEXT("Apply the ledge movement vector directly, rather than the old method that reapplied acceleration."), ECVF_Default)
 
FAutoConsoleVariableRef CharacterMovementCVars::CVarEnableClientAuthScheduledPushForces (TEXT("np2.CMC.EnableClientAuthScheduledPushForces"), bEnableClientAuthScheduledPushForces, TEXT("Enable a client-authoritative network flow for adding forces to pushed physics objects, requires physics prediction to be enabled in the project settings. NOTE: This is not recommended for networked physics and can produce inconsistency bugs where the client adds multiple forces for a single physics tick on the server, especially if async physics is not enabled."), ECVF_Default)
 
FAutoConsoleVariableRef CharacterMovementCVars::CVarApplyCharacterCollisionForceAsImpulse (TEXT("p.ApplyCharacterCollisionForceAsImpulse"), bApplyCharacterCollisionForceAsImpulse, TEXT("Whether to apply character impact physics force as impulse when the object hit is not moving."), ECVF_Default)
 
FAutoConsoleVariableRef CharacterMovementCVars::CVarResetJumpStateDuringResimIfNotFalling (TEXT("p.ResetJumpStateDuringResimIfNotFalling"), bResetJumpStateDuringResimIfNotFalling, TEXT("If true, we'll reset jump state during a correction & resimulation if not falling (e.g. walking). This fixes a bug that locks jump input, which could occur under poor net conditions."), ECVF_Default)
 
FAutoConsoleVariableRef CharacterMovementCVars::CVarRestoreFloorWhenMissingBaseComponent (TEXT("p.RestoreFloorWhenMissingBaseComponent"), bRestoreFloorWhenMissingBaseComponent, TEXT("If true, when we have a valid floor result, but no PrimitiveComponent, try to keep the CurrentFloorValid if possible."), ECVF_Default)
 
int32 CharacterMovementCVars::NetShowCorrections = 0
 
FAutoConsoleVariableRef CharacterMovementCVars::CVarNetShowCorrections (TEXT("p.NetShowCorrections"), NetShowCorrections, TEXT("0: Disable, 1: Enable"), ECVF_Cheat)
 
float CharacterMovementCVars::NetCorrectionLifetime = 4.f
 
FAutoConsoleVariableRef CharacterMovementCVars::CVarNetCorrectionLifetime (TEXT("p.NetCorrectionLifetime"), NetCorrectionLifetime, TEXT("Time in seconds each visualized network correction persists."), ECVF_Cheat)
 
FAutoConsoleVariableRef CharacterMovementCVars::CVarNetForceClientAdjustmentPercent (TEXT("p.NetForceClientAdjustmentPercent"), NetForceClientAdjustmentPercent, TEXT("<=0: Disable, 0.05: 5% of checks will return failed, 1.0: Always send client adjustments"), ECVF_Cheat)
 
FAutoConsoleVariableRef CharacterMovementCVars::CVarNetForceClientServerMoveLossPercent (TEXT("p.NetForceClientServerMoveLossPercent"), NetForceClientServerMoveLossPercent, TEXT("<=0: Disable, 0.05: 5% of checks will return failed, 1.0: never send server moves"), ECVF_Cheat)
 
FAutoConsoleVariableRef CharacterMovementCVars::CVarNetForceClientServerMoveLossDuration (TEXT("p.NetForceClientServerMoveLossDuration"), NetForceClientServerMoveLossDuration, TEXT("Duration of zero means single frame loss."), ECVF_Cheat)
 
FAutoConsoleVariableRef CharacterMovementCVars::CVarVisualizeMovement (TEXT("p.VisualizeMovement"), VisualizeMovement, TEXT("0: Disable, 1: Enable"), ECVF_Cheat)
 
FAutoConsoleVariableRef CharacterMovementCVars::CVarNetVisualizeSimulatedCorrections (TEXT("p.NetVisualizeSimulatedCorrections"), NetVisualizeSimulatedCorrections, TEXT("0: Disable, 1: Enable"), ECVF_Cheat)
 
FAutoConsoleVariableRef CharacterMovementCVars::CVarDebugTimeDiscrepancy (TEXT("p.DebugTimeDiscrepancy"), DebugTimeDiscrepancy, TEXT("0: Disable, 1: Enable Detection logging, 2: Enable Detection and Resolution logging"), ECVF_Cheat)
 

Macro Definition Documentation

◆ devCode

#define devCode (   ...)

Function Documentation

◆ CSV_DEFINE_CATEGORY() [1/2]

CSV_DEFINE_CATEGORY ( CharacterMovement  ,
true   
)

◆ CSV_DEFINE_CATEGORY() [2/2]

CSV_DEFINE_CATEGORY ( CharacterMovementDetailed  ,
(!UE_BUILD_SHIPPING  
)

◆ DECLARE_CYCLE_STAT() [1/29]

DECLARE_CYCLE_STAT ( TEXT("Char AdjustFloorHeight" ,
STAT_CharAdjustFloorHeight  ,
STATGROUP_Character   
)

◆ DECLARE_CYCLE_STAT() [2/29]

◆ DECLARE_CYCLE_STAT() [3/29]

◆ DECLARE_CYCLE_STAT() [4/29]

◆ DECLARE_CYCLE_STAT() [5/29]

DECLARE_CYCLE_STAT ( TEXT("Char FindFloor" ,
STAT_CharFindFloor  ,
STATGROUP_Character   
)

◆ DECLARE_CYCLE_STAT() [6/29]

DECLARE_CYCLE_STAT ( TEXT("Char HandleImpact" ,
STAT_CharHandleImpact  ,
STATGROUP_Character   
)

◆ DECLARE_CYCLE_STAT() [7/29]

DECLARE_CYCLE_STAT ( TEXT("Char MoveUpdateDelegate" ,
STAT_CharMoveUpdateDelegate  ,
STATGROUP_Character   
)

◆ DECLARE_CYCLE_STAT() [8/29]

DECLARE_CYCLE_STAT ( TEXT("Char NavProjectLocation" ,
STAT_CharNavProjectLocation  ,
STATGROUP_Character   
)

◆ DECLARE_CYCLE_STAT() [9/29]

DECLARE_CYCLE_STAT ( TEXT("Char NavProjectPoint" ,
STAT_CharNavProjectPoint  ,
STATGROUP_Character   
)

◆ DECLARE_CYCLE_STAT() [10/29]

◆ DECLARE_CYCLE_STAT() [11/29]

◆ DECLARE_CYCLE_STAT() [12/29]

◆ DECLARE_CYCLE_STAT() [13/29]

DECLARE_CYCLE_STAT ( TEXT("Char PhysFalling" ,
STAT_CharPhysFalling  ,
STATGROUP_Character   
)

◆ DECLARE_CYCLE_STAT() [14/29]

DECLARE_CYCLE_STAT ( TEXT("Char Physics Interation" ,
STAT_CharPhysicsInteraction  ,
STATGROUP_Character   
)

◆ DECLARE_CYCLE_STAT() [15/29]

DECLARE_CYCLE_STAT ( TEXT("Char PhysNavWalking" ,
STAT_CharPhysNavWalking  ,
STATGROUP_Character   
)

◆ DECLARE_CYCLE_STAT() [16/29]

DECLARE_CYCLE_STAT ( TEXT("Char PhysWalking" ,
STAT_CharPhysWalking  ,
STATGROUP_Character   
)

◆ DECLARE_CYCLE_STAT() [17/29]

DECLARE_CYCLE_STAT ( TEXT("Char ProcessLanded" ,
STAT_CharProcessLanded  ,
STATGROUP_Character   
)

◆ DECLARE_CYCLE_STAT() [18/29]

◆ DECLARE_CYCLE_STAT() [19/29]

◆ DECLARE_CYCLE_STAT() [20/29]

◆ DECLARE_CYCLE_STAT() [21/29]

◆ DECLARE_CYCLE_STAT() [22/29]

DECLARE_CYCLE_STAT ( TEXT("Char ServerMove" ,
STAT_CharacterMovementServerMove  ,
STATGROUP_Character   
)

◆ DECLARE_CYCLE_STAT() [23/29]

DECLARE_CYCLE_STAT ( TEXT("Char Simulated Time" ,
STAT_CharacterMovementSimulated  ,
STATGROUP_Character   
)

◆ DECLARE_CYCLE_STAT() [24/29]

◆ DECLARE_CYCLE_STAT() [25/29]

◆ DECLARE_CYCLE_STAT() [26/29]

◆ DECLARE_CYCLE_STAT() [27/29]

DECLARE_CYCLE_STAT ( TEXT("Char StepUp" ,
STAT_CharStepUp  ,
STATGROUP_Character   
)

◆ DECLARE_CYCLE_STAT() [28/29]

DECLARE_CYCLE_STAT ( TEXT("Char Tick" ,
STAT_CharacterMovementTick  ,
STATGROUP_Character   
)

Character stats

◆ DECLARE_CYCLE_STAT() [29/29]

DECLARE_CYCLE_STAT ( TEXT("Char Update Acceleration" ,
STAT_CharUpdateAcceleration  ,
STATGROUP_Character   
)

◆ DEFINE_LOG_CATEGORY_STATIC() [1/3]

DEFINE_LOG_CATEGORY_STATIC ( LogCharacterMovement  ,
Log  ,
All   
)

◆ DEFINE_LOG_CATEGORY_STATIC() [2/3]

DEFINE_LOG_CATEGORY_STATIC ( LogCharacterNetSmoothing  ,
Log  ,
All   
)

◆ DEFINE_LOG_CATEGORY_STATIC() [3/3]

DEFINE_LOG_CATEGORY_STATIC ( LogNavMeshMovement  ,
Log  ,
All   
)

◆ GetAxisDeltaRotation()

float GetAxisDeltaRotation ( float  InAxisRotationRate,
float  DeltaTime 
)