Completely reworked and improved C++ version of Advanced Locomotion System V4.
Slot
nodes from AB_Als
to AB_Als_Layering
.FAlsRigUnit_CalculatePoleVector
.CR_Als
.OverlayMode
and some other variables to the autonomous proxy.ReplicatedViewRotation
not being replicated by the listen server in some cases.RagdollTargetLocation
has been replicated for the first time.RagdollTargetLocation
not updating on non-locally controlled characters.UAlsAnimNotify_FootstepEffects
.B_Als_RotatingObject
and B_Als_MovingObject
since they do not replicate anything.UPROPERTY
and UFUNCTION
categories.EObjectTypeQuery
and ETraceTypeQuery
with ECollisionChannel
.Curves
debug mode category.Look Towards Input
and Look Towards Camera
view states together into a single state.Slot
animation graph nodes to linked animation instances as they are now properly supported here.Suppress Additive Warnings
node because the warnings have finally been fixed.USkeletalMeshComponent::UpdateRBJointMotors()
.PA_Als
.B_Als_SkeletonAssetActions
.UAlsAnimationModifier_CalculateRotationYawSpeed
.AAlsCharacter::RefreshLocomotion()
into a separate overridable function.AAlsCharacter
protected instead of private.ALS_ENSURE()
.FRotator
with FRotator3f
.FRotator3d::NormalizeAxis()
with FRotator::NormalizeAxis()
.ON_SCOPE_EXIT
macro to automatically reset local static variables when returning from functions.UE_REAL_TO_FLOAT()
macro.Als
prefix to asset names to make it easier to distinguish them from game assets or assets from other plugins.bLoop
setting in animation sequences and blend spaces.bAdditiveNode
to true in Blend Multi
nodes that blend additive animations.Call Function
animation nodes.Blendspace Player
node with Blendspace Evaluator
.UAlsAnimationInstance::RefreshLayering()
and UAlsAnimationInstance::RefreshPose()
.UAlsAnimationInstance::FinalizeRagdolling()
not being called in some cases.CR_Als
.Transient
to UPROPERTY
of non-input variables in control rig units.Scale by Delta Time
input modifier with input actions instead of manually scaling action values by delta time.Als.RotationMode.LookingDirection
gameplay tag to Als.RotationMode.ViewDirection
to better convey the essence of this rotation mode.FAlsBasedMovementState
to FAlsMovementBaseState
and moved it into a separate file.RawViewRotation
to ReplicatedViewRotation
.VisibleDefaultsOnly
from UPROPERTY
of the AlsCharacterMovement
variable as this causes duplicate properties to be displayed in the details view.FQuat
to FRotator
conversions.USkeletalMeshComponent::bUpdateJointsFromAnimation
only when it is really necessary.UEnhancedInputLocalPlayerSubsystem
.UAlsCameraComponent::SetPostProcessWeight()
function.BuildPlugin.bat
.ALS_ENSURE()
macro to include the latest changes of the ensure()
macro and to properly support concatenation of string literals with the __FUNCTION__
macro and other similar macros.inline
specifier with some const
and constexpr
static variables.ReturnDisplayName
metadata specifier to give function return values more meaningful names.ForceUnits
metadata specifier in more places.FVector
with FVector3f
and FVector2D
with FVector2f
in the settings variables.EditDefaultsOnly
with EditAnywhere
.FRotator::NormalizeAxis()
with FRotator3d::NormalizeAxis()
.APlayerState::ExactPing
with APlayerState::GetPingInMilliseconds()
.MARK_PROPERTY_DIRTY_FROM_NAME()
with COMPARE_ASSIGN_AND_MARK_PROPERTY_DIRTY()
where possible.ANSI_TO_TCHAR()
.Inertialization
animation graph nodes to some animation blueprints.AAlsCharacter
class and use ACharacter
instead.L_Grid
level.UPROPERTY
category for all struct members exposed to blueprints.ensure()
macro with a less annoying ALS_ENSURE()
macro.FObjectPtr::IsNull()
function with IsValid()
.GameplayTags
module.FullBody
animation slot to PostLocomotion
.AimBlock
animation curve to ViewBlock
.AimManual
animation curve to AllowAiming
.Blend Poses by Gameplay Tag
and Blend Curves
animation graph nodes.ShowDebug Animation
console command.CR_Als
.USkinnedMeshComponent::VisibilityBasedAnimTickOption
setting unchanged, at least if it doesn't need to be changed for the plugin to work properly.UAlsCharacterMovementComponent::SetMovementSettings()
function to blueprints.ALSExample
module to ALSExtras
.Playground
level to test foot and pelvis offsets.Playground
level.LICENSE.md
.ABP_Als
animation blueprint into separate linked animation blueprints.Blend Poses by Gameplay Tag
animation graph node.UCharacterMovementComponent
features introduced in Unreal Engine 4.26 into the UAlsCharacterMovementComponent
for better movement synchronization over the network.EAlsLocomotionMode
enum with Als.LocomotionMode
gameplay tags.EAlsLocomotionAction
enum with Als.LocomotionAction
gameplay tags.AAlsCharacter
, UAlsAnimationInstance
and UAlsCamerComponent
into separate data assets.FullBodyAction
animation slot to FullBody
.GaitAmount
animation curve to PoseGait
.EMovementMode
related logic.AAlsCharacter::PostInitializeComponents()
function.Mantling
and Ragdolling
entries from EAlsLocomotionMode
enum.A_Als_Mantle_High
animation sequence.ALS_API
macro to some structs.BP_SimpleMovingObject
movement synchronization between clients and server.FAlsMovementState
structure to FAlsGroundedState
and moved some variables from FAlsLocomotionAnimationState
structure.FAlsMovementAnimationSettings
structure to FAlsGroundedSettings
and moved some variables from FAlsGeneralAnimationSettings
structure.Movement
folders to Grounded
.Playground
level.DefaultALS.ini
.Blend Curves
animation graph node that allows to blend animation curves without the need for the VB curves
virtual bone.bUseHandIkBones
and bUseFootIkBones
settings, that allow to eliminate the need for IK bones and instead use only virtual bones for all bone manipulation tasks.EAlsGroundedEntryMode
enum with Als.GroundedEntryMode
gameplay tags..cpp
files.VB curves
virtual bone to VB ik_foot_root
.VisibilityBasedAnimTickOption
setting to EVisibilityBasedAnimTickOption::AlwaysTickPoseAndRefreshBones
on the server when the character is not moving and skip character rotation modification using the RotationYawSpeed
animation curve when the animation blueprint hasn't updated yet.bReplicateMovement
is set to false
.bSkipEffectsWhenInAir
setting.TriggerWeightThreshold
setting values in animation sequences to the values from the original project.EObjectTypeQuery
array setting for mantling, ragdolling, and ground prediction traces.Playground
level.ALSExtras
folder.ALS
folder to the repository root folder.EAlsOverlayMode
enum with Als.OverlayMode
gameplay tags.bUseGunBone
setting to the CR_Als
control rig blueprint.Orient and Scale
for better retargeting quality.UAlsAnimationModifier_CreateCurves
and UAlsAnimationModifier_CreateLayeringCurves
animation modifiers.ensure()
checks to animations notifies.RotationYawOffset
curve modification inside standing movement states that leads to incorrect character rotation when running backwards.bUseGunBoneForOverlayObjects
setting.bAllowMantling
setting to FAlsGeneralMantlingSettings
structure.bInterruptRollingWhenInAir
setting to FAlsRollingSettings
structure.UAlsAnimNotifyState_SetLocomotionAction
animation notify to end.AAlsCharacter
and UAlsAnimationInstance
classes.FAlsPropertyAccessConstants
structure.APlayerCameraManager
or APlayerController
classes, but additional configuration within the C++ character class and character blueprint is required (see AAlsCharacterExample
class and BP_Als_Character
blueprint).Shift + 6
, or ShowDebug ALS.CameraCurves
.Shift + 7
, or ShowDebug ALS.CameraShapes
.Shift + 8
, or ShowDebug ALS.CameraTraces
.TransitionsAllowed
animation curve to AllowTransitions
.bRotateToVelocityOnJump
and bBlockAimingWhenInAir
settings with InAirRotationMode
and bAllowAimingWhenInAir
respectively.AAlsCharacterExample
class to the ALSExample
module.FMath::*InterpTo()
functions with UAlsMath::ExponentialDecay()
in some important places for better frame rate independence.Shift + 4
, or ShowDebug ALS.Traces
.Shift + 5
, or ShowDebug ALS.Mantling
.GaitType
animation curve to GaitAmount
.bSprintHasPriorityOverAiming
and bBlockAimingWhenInAir
settings.bRotateToVelocityWhenSprinting
and bRotateToVelocityOnJump
settings.AAlsCharacter
inside the editor.MaxReachAngle
mantling setting that allows to prevent mantling on objects when standing back to them.