Navigation
API > API/Plugins > API/Plugins/Mover
| Name | UMoverComponent |
| Type | class |
| Header File | /Engine/Plugins/Experimental/Mover/Source/Mover/Public/MoverComponent.h |
| Include Path | #include "MoverComponent.h" |
Syntax
UCLASS (MinimalAPI, Blueprintable, BlueprintType, Meta=(BlueprintSpawnableComponent))
class UMoverComponent : public UActorComponent
Inheritance Hierarchy
- UObjectBase → UObjectBaseUtility → UObject → UActorComponent → UMoverComponent
Implements Interfaces
Derived Classes
Constructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
UMoverComponent() |
MoverComponent.h |
Variables
Public
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| BackendClass | TSubclassOf< UActorComponent > | Specifies which supporting back end class should drive this Mover actor. | MoverComponent.h |
|
| InputProducer | TObjectPtr< UObject > | Optional object for producing input cmds. | MoverComponent.h |
|
| MovementMixer | TObjectPtr< UMovementMixer > | Optional object for mixing proposed moves.Typically set at BeginPlay time. | MoverComponent.h |
|
| MovementModes | TMap< FName, TObjectPtr< UBaseMovementMode > > | MoverComponent.h |
|
|
| OnMovementModeChanged | FMover_OnMovementModeChanged | Broadcast when a MovementMode has changed. Happens during a simulation tick if the mode changed that tick or when SetModeImmediately is used to change modes. | MoverComponent.h |
|
| OnPostFinalize | FMover_OnPostFinalize | Broadcast after each finalized simulation frame, after the state is finalized. (Game thread only) | MoverComponent.h |
|
| OnPostMovement | FMover_OnPostMovement | Broadcast at the end of a simulation tick after movement has occurred, but allowing additions/modifications to the state. Not assignable as a BP event due to it having mutable parameters. | MoverComponent.h | |
| OnPostSimulationRollback | FMover_OnPostSimRollback | Broadcast when a rollback has occurred, just before the next simulation tick occurs. | MoverComponent.h |
|
| OnPostSimulationTick | FMover_OnPostSimTick | Broadcast after each simulation tick and the state is finalized. | MoverComponent.h |
|
| OnPreSimulationTick | FMover_OnPreSimTick | Broadcast before each simulation tick. | MoverComponent.h |
|
| PersistentSyncStateDataTypes | TArray< FMoverDataPersistence > | List of types that should always be present in this actor's sync state | MoverComponent.h |
|
| ProcessGeneratedMovement | FMover_ProcessGeneratedMovement | Broadcast after proposed movement has been generated. | MoverComponent.h | |
| ProcessLocalRootMotionDelegate | FOnWarpLocalspaceRootMotionWithContext | Delegates used when converting local root motion to worldspace, allowing external systems to influence it (such as motion warping) | MoverComponent.h | |
| ProcessWorldRootMotionDelegate | FOnWarpWorldspaceRootMotionWithContext | MoverComponent.h | ||
| SmoothingMode | EMoverSmoothingMode | If enabled, the movement of the primary visual component will be smoothed via an offset from the root moving component. This is useful in fixed-tick simulations with variable rendering rates. | MoverComponent.h |
|
| StartingMovementMode | FName | Name of the first mode to start in when simulation begins. Must have a mapping in MovementModes. Only used during initialization. | MoverComponent.h |
|
| Transitions | TArray< TObjectPtr< UBaseMovementModeTransition > > | Transition checks that are always evaluated regardless of mode. Evaluated in order, stopping at the first successful transition check. Mode-owned transitions take precedence. */. | MoverComponent.h |
|
Protected
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| bHasGravityOverride | bool | Whether or not gravity is overridden on this actor. | MoverComponent.h |
|
| bHasRolledBack | bool | Transient flag indicating we've had a rollback and haven't started simulating forward again yet. | MoverComponent.h | |
| bInInitializeComponent | bool | Transient flag indicating whether we are executing InitializeComponent(). | MoverComponent.h | |
| bInOnRegister | bool | Transient flag indicating whether we are executing OnRegister(). | MoverComponent.h | |
| bUseDeferredGroupMovement | bool | If true, then the transform updates applied in UMoverComponent::SetFrameStateFromContext will use a "deferred group move" to improve performance. | MoverComponent.h |
|
| GravityAccelOverride | FVector | Cm/s^2, only meaningful if @bHasGravityOverride is enabled.Set @SetGravityOverride | MoverComponent.h |
|
| GravityToWorldTransform | FQuat | A cached quaternion representing the inverse rotation from world space to gravity relative space defined by GravityAccelOverride. | MoverComponent.h |
|
| PlanarConstraint | FPlanarConstraint | Settings that can lock movement to a particular plane | MoverComponent.h |
|
| SharedSettings | TArray< TObjectPtr< UObject > > | Collection of settings objects that are shared between movement modes. | MoverComponent.h |
|
| WorldToGravityTransform | FQuat | A cached quaternion representing the rotation from world space to gravity relative space defined by GravityAccelOverride. | MoverComponent.h |
|
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
void AddGameplayTag
(
FGameplayTag TagToAdd |
Adds a gameplay tag to this Mover Component. Note: Duplicate tags will not be added | MoverComponent.h |
|
void AddGameplayTags
(
const FGameplayTagContainer& TagsToAdd |
Adds a series of gameplay tags to this Mover Component Note: Duplicate tags will not be added | MoverComponent.h |
|
UBaseMovementMode * AddMovementModeFromClass
(
FName ModeName, |
Add a movement mode to available movement modes. Returns true if the movement mode was added successfully. Returns the mode that was made. | MoverComponent.h |
|
bool AddMovementModeFromObject
(
FName ModeName, |
Add a movement mode to available movement modes. Returns true if the movement mode was added successfully. | MoverComponent.h |
|
void BindProcessGeneratedMovement
(
FMover_ProcessGeneratedMovement ProcessGeneratedMovementEvent |
Binds event for processing movement after it has been generated. Allows for final modifications to proposed movement before it's executed. | MoverComponent.h |
|
void CancelModifierFromHandle
(
FMovementModifierHandle ModifierHandle |
Cancel any active or queued Modifiers with the handle passed in. | MoverComponent.h |
|
virtual FTransform ConvertLocalRootMotionToWorld
(
const FTransform& LocalRootMotionTransform, |
Converts a local root motion transform to worldspace. | MoverComponent.h | |
virtual void CreateDefaultInputAndState
(
FMoverInputCmdContext& OutInputCmd, |
MoverComponent.h | ||
void FinalizeFrame
(
const FMoverSyncState* SyncState, |
Take output for simulation. Called by backend system. | MoverComponent.h | |
void FinalizeSmoothingFrame
(
const FMoverSyncState* SyncState, |
Take smoothed simulation state. Called by backend system, if supported. | MoverComponent.h | |
const FLayeredMoveBase * FindActiveLayeredMoveByType
(
const UScriptStruct* DataStructType |
Find an active layered move by type. Returns null if one wasn't found. | MoverComponent.h | |
const MoveT * FindActiveLayeredMoveByType () |
Find a layered move of a specific type in this components active layered moves. | MoverComponent.h | |
UBaseMovementMode * FindMode_Mutable
(
TSubclassOf< UBaseMovementMode > ModeType, |
MoverComponent.h | ||
ModeT * FindMode_Mutable
(
FName MovementModeName, |
Find the movement mode on this component the given name and type, optionally of the given type exactly. | MoverComponent.h | |
UBaseMovementMode * FindMode_Mutable
(
TSubclassOf< UBaseMovementMode > ModeType, |
MoverComponent.h | ||
ModeT * FindMode_Mutable
(
bool bRequireExactClass |
Find the first movement mode on this component with the given type, optionally of the given type exactly. | MoverComponent.h | |
UBaseMovementMode * FindMovementMode
(
TSubclassOf< UBaseMovementMode > MovementMode |
MoverComponent.h |
|
|
UBaseMovementMode * FindMovementModeByName
(
FName MovementModeName |
MoverComponent.h |
|
|
const FMovementModifierBase * FindMovementModifier
(
const FMovementModifierHandle& ModifierHandle |
Find movement modifier by it's handle. Returns nullptr if the modifier couldn't be found. | MoverComponent.h | |
const ModifierT * FindMovementModifierByType () |
Find a movement modifier of a specific type in this components movement modifiers. | MoverComponent.h | |
const FMovementModifierBase * FindMovementModifierByType
(
const UScriptStruct* DataStructType |
Find movement modifier by type (returns the first modifier it finds). Returns nullptr if the modifier couldn't be found. | MoverComponent.h | |
const SettingsT * FindSharedSettings () |
MoverComponent.h | ||
const IMovementSettingsInterface * FindSharedSettings
(
const UClass* ByType |
Find settings object by type. Returns null if there is none of that type | MoverComponent.h | |
const UObject * FindSharedSettings_BP
(
TSubclassOf< UObject > SharedSetting |
Find settings object by type. Returns null if there is none of that type | MoverComponent.h |
|
SettingsT * FindSharedSettings_Mutable () |
MoverComponent.h | ||
IMovementSettingsInterface * FindSharedSettings_Mutable
(
const UClass* ByType |
Find mutable settings object by type. Returns null if there is none of that type | MoverComponent.h | |
UObject * FindSharedSettings_Mutable_BP
(
TSubclassOf< UObject > SharedSetting |
Find mutable settings object by type. Returns null if there is none of that type | MoverComponent.h |
|
const ModeT * GetActiveMode
(
bool bRequireExactClass |
Gets the currently active movement mode, provided it is of the given type. | MoverComponent.h | |
ModeT * GetActiveMode_Mutable
(
bool bRequireExactClass |
Gets the currently active movement mode, provided it is of the given type. | MoverComponent.h | |
FTransform GetBaseVisualComponentTransform() |
Gets BaseVisualComponentTransform used for cases where we want to move the visual component away from the root component. See @BaseVisualComponentTransform. | MoverComponent.h |
|
TArray< FTrajectorySampleInfo > GetFutureTrajectory
(
float FutureSeconds, |
Get a sampling of where the actor is projected to be in the future, based on a current state. | MoverComponent.h |
|
FVector GetGravityAcceleration() |
Get the current acceleration due to gravity (cm/s^2) in worldspace. | MoverComponent.h |
|
FQuat GetGravityToWorldTransform() |
Returns a quaternion transforming from gravity to world space. | MoverComponent.h | |
const FMoverInputCmdContext & GetLastInputCmd() |
Access the most recently-used inputs. | MoverComponent.h |
|
const FMoverTimeStep & GetLastTimeStep() |
Get the most recent TimeStep. | MoverComponent.h |
|
UPrimitiveComponent * GetMovementBase() |
Get the current movement base. Null if there isn't one. | MoverComponent.h |
|
FName GetMovementBaseBoneName() |
Get the current movement base bone, NAME_None if there isn't one. | MoverComponent.h |
|
FVector GetMovementIntent() |
Get the intended movement direction in worldspace with magnitude (range 0-1) | MoverComponent.h |
|
const UBaseMovementMode * GetMovementMode() |
Get the current movement mode. | MoverComponent.h |
|
FName GetMovementModeName() |
Get the current movement mode name. | MoverComponent.h |
|
const FPlanarConstraint & GetPlanarConstraint() |
Access the planar constraint that may be limiting movement direction. | MoverComponent.h |
|
TArray< FTrajectorySampleInfo > GetPredictedTrajectory
(
FMoverPredictTrajectoryParams PredictionParams |
Get a sampling of where the actor is projected to be in the future, based on a current state. | MoverComponent.h |
|
T * GetPrimaryVisualComponent () |
Typed accessor to primary visual component. | MoverComponent.h | |
| Access the primary visual component of the actor. | MoverComponent.h |
|
|
const UMoverBlackboard * GetSimBlackboard() |
Access the read-only version of the Mover's Blackboard. | MoverComponent.h |
|
UMoverBlackboard * GetSimBlackboard_Mutable() |
MoverComponent.h | ||
const FMoverSyncState & GetSyncState() |
Access the most recent captured sync state. | MoverComponent.h |
|
FRotator GetTargetOrientation() |
Get the orientation that the actor is moving towards. | MoverComponent.h |
|
| Access the root component of the actor that our Mover simulation is moving. | MoverComponent.h |
|
|
T * GetUpdatedComponent () |
Typed accessor to root moving component. | MoverComponent.h | |
FTransform GetUpdatedComponentTransform() |
Get the transform of the root component that our Mover simulation is moving. | MoverComponent.h | |
FVector GetUpDirection() |
Get the normalized direction considered "up" in worldspace. Typically aligned with gravity, and typically determines the plane an actor tries to move along. | MoverComponent.h |
|
FVector GetVelocity() |
Get the current velocity (units per second, worldspace) | MoverComponent.h |
|
FQuat GetWorldToGravityTransform() |
Returns a quaternion transforming from world to gravity space. | MoverComponent.h | |
void HandleImpact
(
FMoverOnImpactParams& ImpactParams |
Handle a blocking impact. | MoverComponent.h |
|
bool HasGameplayTag
(
FGameplayTag TagToFind, |
Check Mover systems for a gameplay tag. | MoverComponent.h |
|
bool HasGameplayTagInState
(
const FMoverSyncState& SyncState, |
Check Mover systems for a gameplay tag. | MoverComponent.h |
|
bool HasValidCachedInputCmd() |
Signals whether we have input data saved yet. If not, input queries will not be meaningful. | MoverComponent.h |
|
bool HasValidCachedState() |
Signals whether we have a sync state saved yet. If not, most queries will not be meaningful. | MoverComponent.h |
|
void InitializeSimulationState
(
FMoverSyncState* OutSync, |
Seed initial values based on component's state. Called by backend system. | MoverComponent.h | |
bool IsModifierActiveOrQueued
(
const FMovementModifierHandle& ModifierHandle |
Checks if the modifier handle passed in is active or queued on this mover component. | MoverComponent.h |
|
bool IsUsingDeferredGroupMovement() |
Returns true if this component is actually using grouped movement updates, which checks the flag and any global settings | MoverComponent.h |
|
void K2_FindActiveLayeredMove
(
bool& DidSucceed, |
Retrieves an active layered move, by writing to a target instance if it is the matching type. | MoverComponent.h |
|
void K2_FindMovementModifier
(
FMovementModifierHandle ModifierHandle, |
Retrieves Movement modifier by writing to a target instance if it is the matching type. | MoverComponent.h |
|
void K2_QueueInstantMovementEffect
(
const int32& EffectAsRawData |
Queue a Instant Movement Effect to start at the end of this frame or start of the next subtick - whichever happens first. | MoverComponent.h |
|
void K2_QueueLayeredMove
(
const int32& MoveAsRawData |
Queue a layered move to start during the next simulation frame. | MoverComponent.h |
|
FMovementModifierHandle K2_QueueMovementModifier
(
const int32& MoveAsRawData |
Queue a Movement Modifier to start during the next simulation frame. | MoverComponent.h |
|
virtual void OnBeginOverlap
(
UPrimitiveComponent* OverlappedComp, |
Callbacks. | MoverComponent.h | |
virtual void ProduceInput
(
const int32 DeltaTimeMS, |
Get latest local input prior to simulation step. Called by backend system on owner's instance (autonomous or authority). | MoverComponent.h | |
void QueueInstantMovementEffect
(
TSharedPtr< FInstantMovementEffect > Move |
Queue a Instant Movement Effect to take place at the end of this frame or start of the next subtick - whichever happens first. | MoverComponent.h | |
void QueueLayeredMove
(
TSharedPtr< FLayeredMoveBase > Move |
Queue a layered move to start during the next simulation frame. | MoverComponent.h | |
FMovementModifierHandle QueueMovementModifier
(
TSharedPtr< FMovementModifierBase > Modifier |
Queue a Movement Modifier to start during the next simulation frame. | MoverComponent.h | |
void QueueNextMode
(
FName DesiredModeName, |
Queue a movement mode change to occur during the next simulation frame. If bShouldReenter is true, then a mode change will occur even if already in that mode. | MoverComponent.h |
|
void RemoveGameplayTag
(
FGameplayTag TagToRemove |
Removes a gameplay tag from this Mover Component | MoverComponent.h |
|
void RemoveGameplayTags
(
const FGameplayTagContainer& TagsToRemove |
Removes gameplay tags from this Mover Component | MoverComponent.h |
|
bool RemoveMovementMode
(
FName ModeName |
Removes a movement mode from available movement modes. Returns number of modes removed from the available movement modes. | MoverComponent.h |
|
void RestoreFrame
(
const FMoverSyncState* SyncState, |
Restore a previous frame prior to resimulating. Called by backend system. | MoverComponent.h | |
void SetBaseVisualComponentTransform
(
const FTransform& ComponentTransform |
Sets BaseVisualComponentTransform used for cases where we want to move the visual component away from the root component. See @BaseVisualComponentTransform. | MoverComponent.h |
|
void SetGravityOverride
(
bool bOverrideGravity, |
Set gravity override, as a directional acceleration in worldspace. Gravity on Earth would be {x=0,y=0,z=-980}. | MoverComponent.h |
|
void SetPlanarConstraint
(
const FPlanarConstraint& InConstraint |
Sets planar constraint that can limit movement direction. | MoverComponent.h |
|
void SetPrimaryVisualComponent
(
USceneComponent* SceneComponent |
Sets this Mover actor's primary visual component. Must be a descendant of the updated component that acts as our movement root. | MoverComponent.h |
|
void SetSimulationOutput
(
const FMoverTimeStep& TimeStep, |
MoverComponent.h | ||
void SetUpdatedComponent
(
USceneComponent* NewUpdatedComponent |
Sets which component we're using as the root of our movement. | MoverComponent.h |
|
void SetUseDeferredGroupMovement
(
bool bEnable |
Sets whether this mover component can use grouped movement updates, which improve performance but can cause attachments to update later than expected | MoverComponent.h |
|
void SimulationTick
(
const FMoverTimeStep& InTimeStep, |
Primary movement simulation update. Given an starting state and timestep, produce a new state. Called by backend system. | MoverComponent.h | |
void TickInterpolatedSimProxy
(
const FMoverTimeStep& TimeStep, |
This is an opportunity to run code on the code on the simproxy in interpolated mode - currently used to help activate and deactivate modifiers on the simproxy in interpolated mode. | MoverComponent.h | |
virtual bool TryGetFloorCheckHitResult
(
FHitResult& OutHitResult |
Access the most recent floor check hit result. | MoverComponent.h |
|
void UnbindProcessGeneratedMovement() |
Clears current bound event for processing movement after it has been generated. | MoverComponent.h |
|
Overridden from UActorComponent
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void BeginPlay() |
MoverComponent.h | ||
virtual void InitializeComponent() |
MoverComponent.h | ||
virtual void OnRegister() |
MoverComponent.h | ||
virtual void RegisterComponentTickFunctions
(
bool bRegister |
MoverComponent.h | ||
virtual void UninitializeComponent() |
MoverComponent.h |
Overridden from UObject
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void PostLoad() |
MoverComponent.h |
Protected
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
void FindDefaultUpdatedComponent() |
MoverComponent.h | ||
UBaseMovementMode * GetActiveModeInternal
(
TSubclassOf< UBaseMovementMode > ModeType, |
MoverComponent.h | ||
TArray< FString > GetStartingMovementModeNames() |
MoverComponent.h | ||
virtual void OnHandleImpact
(
const FMoverOnImpactParams& ImpactParams |
MoverComponent.h | ||
void OnSimulationPreRollback
(
const FMoverSyncState* InvalidSyncState, |
Called when a rollback occurs, before the simulation state has been restored | MoverComponent.h | |
void OnSimulationRollback
(
const FMoverSyncState* SyncState, |
Called when a rollback occurs, after the simulation state has been restored | MoverComponent.h | |
virtual void PhysicsVolumeChanged
(
APhysicsVolume* NewVolume |
MoverComponent.h | ||
void ProcessFirstSimTickAfterRollback
(
const FMoverTimeStep& TimeStep |
MoverComponent.h | ||
virtual void ProcessSimulationEvent
(
const FMoverSimulationEventData& EventData |
MoverComponent.h | ||
void RefreshSharedSettings() |
Internal function to ensure SharedSettings array matches what's needed by the list of Movement Modes | MoverComponent.h | |
virtual void SetAdditionalSimulationOutput
(
const FMoverDataCollection& Data |
MoverComponent.h | ||
void SetFrameStateFromContext
(
const FMoverSyncState* SyncState, |
Makes this component and owner actor reflect the state of a particular frame snapshot. | MoverComponent.h | |
void UpdateBasedMovementScheduling
(
const FMoverTickEndData& SimOutput |
Internal function to perform post-sim scheduling to optionally support simple based movement | MoverComponent.h | |
void UpdateCachedFrameState
(
const FMoverSyncState* SyncState, |
Update cached frame state if it has changed | MoverComponent.h | |
void UpdateTickRegistration() |
MoverComponent.h | ||
bool ValidateSetup
(
FDataValidationContext& ValidationErrors |
MoverComponent.h |
Overridden from UObject
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual EDataValidationResult IsDataValid
(
FDataValidationContext& Context |
MoverComponent.h | ||
virtual void PostCDOCompiled
(
const FPostCDOCompiledContext& Context |
MoverComponent.h | ||
virtual void PostEditChangeProperty
(
FPropertyChangedEvent& PropertyChangedEvent |
MoverComponent.h | ||
virtual void PostTransacted
(
const FTransactionObjectEvent& TransactionEvent |
MoverComponent.h | ||
virtual void PreSave
(
FObjectPreSaveContext ObjectSaveContext |
MoverComponent.h |