Releases: Sixze/ALS-Refactored
Releases · Sixze/ALS-Refactored
4.16
Notable Changes
- Updated the plugin to Unreal Engine 5.6.
- Reworked mantling, now it fully takes into account root motion from animations.
- Simplified
AB_Als_View, now head rotation is fully controlled from the code.
Animations
- Updated mantling montages, root motion now better matches feet movement.
Animation Blueprint
- Replaced
Explicit TimewithExplicit FrameinSequence Evaluatoranimation nodes where possible. - Fixed incorrect
AccelerationandYawSpeedvalues when the character is standing on a rotating object. - Renamed the "Look" concept to "Head".
Bone Manipulation
- Reworked the
Apply Foot Offset RotationControl Rig node. - Fixed issues with foot offset on sloped surfaces.
- Fixed feet sinking into the ground when mantling.
- Fixed feet sinking into the ground when landing on sloped surfaces.
- Fixed feet twisting into a spiral when landing on a rotating object.
- Fixed unintended teleportation of locked feet that could occur in some cases.
Character
- Turn in place no longer prevents the character from rotating in the last input direction.
Locomotion Actions
- Fixed issues with ragdolls that occurred when any body instance was set to simulated in a physics asset.
Other
- Replaced the
UAlsMath::ExponentialDecay()function withUAlsMath::DamperExact(). - Set
Registration Tracking ModetoCount Registrationsin input mapping contexts. - Removed
bEnableLegacyInputScalesfromInput.ini. - Made
Input_functions protected inAlsCharacterExample. - Vectorized some functions inside
UAlsRotationand fixed an incorrect angle comparison with zero.
4.15
Notable Changes
- Updated the plugin to Unreal Engine 5.5.
Animation Blueprint
- Improved teleportation detection logic.
- Fixed an issue with character pose when stopping at low fps.
Bone Manipulation
- Reworked the foot offset so that it produces a higher quality result and handles more corner cases.
Character
- Added automatic rotation of the character towards the view direction on any movement input while the character is not moving.
- Prevented the character from rotating in the last input direction after the rotation mode had been changed to the velocity direction and the actor was not moving at that moment.
Camera
- Enforced
VisibilityBasedAnimTickOption::AlwaysTickPoseAndRefreshBonesin the camera component. - Fixed weird camera movement when switching between the first-person view mode and the velocity direction rotation mode.
- Removed the camera lag substepping as it is useless.
Other
- Updated the
ALS_ENSURE()macro to include the latest changes of theensure()macro.
4.14
Notable Changes
- Updated the plugin to Unreal Engine 5.4.
- Added automatic generation of foot sync markers using
B_Als_AnimationModifier_FootSyncMarkers. - Reworked spine rotation logic to achieve smoother spine rotation when aiming stops.
- Reimplemented foot offset and foot constraints as custom Control Rig nodes.
- Added foot locking constraints to prevent legs from twisting into a spiral when the actor rotates quickly.
- Added support for direction-dependent movement speed.
- Reworked the aiming constraints to remove sudden changes in actor rotation.
- Added the ability to change the camera's field of view at runtime.
Animations
- Enabled the Animation Compression Library plugin and used for bone compression in all animations. Curves still use default compression as ACL does not support constant curve interpolation.
- Set
bIsNativeBranchingPointto false on some animation notifies that do not affect the playback of the montage they are used in. - Disabled triggering of the
Footstep EffectsandCamera Shakeanimation notifies on a dedicated server.
Animation Blueprint
- Reworked
UAlsAnimationInstanceso that most of its functions are called from animation blueprints only when needed. - Added the
UAlsLinkedAnimationInstance::GetParent()function and deprecatedUAlsLinkedAnimationInstance::GetParentUnsafe(). - Assigned a tag to every
Linked Anim Graphnode inAB_Alsso that they can be overridden using theUSkeletalMeshComponent::LinkAnimGraphByTag()function. - Enabled linked animation layer instance sharing.
- Fixed inability to rotate in place while landing.
- Fixed an editor crash caused by a missing world in
UAnimInstance.
Bone Manipulation
- Fixed twisted character legs by disabling the execution of
CR_Alsin the editor world. - Fixed
FAlsControlRigInputcan't be used as a variable type in Control Rig.
Character
- Removed unnecessary rotation mode changes when switching movement direction while sprinting.
- Reviewed default settings of
UAlsCharacterMovementComponent. - Added the
bAllowImprovedPenetrationAdjustmentsetting toUAlsCharacterMovementComponent. - Slightly improved the synchronization of actor rotation over the network.
- Fixed movement lags that could occur on the client at high fps.
Locomotion Actions
- Added a simple physics asset validation for ragdolling.
- Fixed a crash on ragdolling start when no physical asset is assigned.
- Fixed some issues with ragdolling on stairs.
- Keep the actor's Z axis always aligned with the gravity direction while mantling.
- Fixed actor shaking while mantling.
- Fixed mantling montage does not interrupt other animation montages when played.
Footstep Effects
- Fixed footstep effects may spawn multiple times within a very short period of time during movement stop.
Camera
- Added a separate blueprint for the camera component with pre-configured settings.
- Added the
FovOffsetcamera animation curve. - Exposed
UAlsCameraComponentto blueprints. - Marked the
UAlsCameraComponent::GetViewInfo()function asBlueprintPure. - Fixed camera penetrating geometry in some rare cases.
Other
- Renamed the
M4andM9overlay modes toRifleandPistolrespectively. - Added basic support for the Iris replication system.
- Improved support of Unreal Insights profiling.
- Split
UAlsMathandUAlsUtilityinto smaller separate classes. - Updated the
ALS_ENSURE()macro to include the latest changes of theensure()macro. - Added proper handling of input cancellation.
- Made input functions virtual.
- Set sound waves compression type to RAD Audio.
4.13
Notable Changes
- Updated the plugin to Unreal Engine 5.3.
- Added the ability to limit foot rotation so that it does not assume an unnatural pose when on a highly sloped surface.
- Added support for automatic calculation of mantling start time.
- Removed the need for an interpolation curve, overlay curve, and initial relative location for mantling. Made correction curves optional.
- Fixed desynchronization of the mantling animation montage with the mantling root motion source.
- Reworked ragdolling. Now when activated, the character's mesh detaches from the capsule and remains fixed in place, so changes to the actor's transform no longer affect the mesh in any way.
Animation Blueprint
- Replaced the use of animation state events with animation node functions.
- Moved layering-related
Slotnodes fromAB_AlstoAB_Als_Layering. - Allowed root motion from montages in linked animation instances.
- Slightly improved spine rotation logic.
- Fixed character taking a T-pose for a moment after spawn.
Bone Manipulation
- Reworked the way foot locking is temporarily paused when rotating in place to reduce glitches such as foot teleportation.
- Removed the influence of foot offset on its location along the X and Y axes.
- Slightly optimized foot offset logic.
- Improved handling of collinear points in
FAlsRigUnit_CalculatePoleVector. - Fixed potential issues related to the use of negative animation curves in
CR_Als.
Character
- Improved character rotation logic to prevent situations where the lower body noticeably fails to keep up with the rotation of the upper body when the camera is rotating very fast while aiming.
- Improved handling of zero time dilation.
- Added replication of server-initiated changes to
OverlayModeand some other variables to the autonomous proxy. - Fixed
ReplicatedViewRotationnot being replicated by the listen server in some cases. - Fixed mesh rotation could be out of sync with actor rotation if the animation blueprint is not ticking.
- Fixed incorrect rotation of the mesh within one frame after toggling its absolute rotation.
- Fixed character rotation jitter that occurs when standing on a rotating object.
Locomotion Actions
- Added ability to restrict mantling on sloped surfaces with complex geometry, such as stairs.
- Added support for destruction of the object the character is mantling on.
- Added prohibition on applying ragdoll transform corrections until
RagdollTargetLocationhas been replicated for the first time. - Fixed the ability to mantle through the ceiling.
- Fixed mantling does not take into account the play rate of the animation montage.
- Fixed
RagdollTargetLocationnot updating on non-locally controlled characters. - Fixed incorrect rotation of the character on clients when playing a get up mon
Footstep Effects
- Refactored
UAlsAnimNotify_FootstepEffects. - Added prohibition on spawning footstep effects if no surface is found or if the angle between the Z axis of the foot and the surface normal exceeds some threshold value.
Other
- Disabled replication of
B_Als_RotatingObjectandB_Als_MovingObjectsince they do not replicate anything. - Replaced the use of
EObjectTypeQueryandETraceTypeQuerywithECollisionChannel. - Fixed inactive curves not being displayed in the
Curvesdebug mode category.
4.12
Notable Changes
- Updated plugin to Unreal Engine 5.2.
- Merged the
Look Towards InputandLook Towards Cameraview states together into a single state. - Moved
Slotanimation graph nodes to linked animation instances as they are now properly supported here. - Removed the
Suppress Additive Warningsnode because the warnings have finally been fixed. - Fixed character moving diagonally instead of in a straight line relative to the camera when standing on a rotating object.
- Fixed a crash that sometimes occurs when calling
USkeletalMeshComponent::UpdateRBJointMotors().
Skeleton
- Refactored
PA_Als. - Fixed deprecation warnings in
B_Als_SkeletonAssetActions.
Animation Blueprint
- Fixed deprecation warnings in
UAlsAnimationModifier_CalculateRotationYawSpeed.
Bone Manipulation
- Migrated rig units to the new API.
Character
- Configured input action descriptions.
- Moved input-related logic from
AAlsCharacter::RefreshLocomotion()into a separate overridable function. - Made some functions in
AAlsCharacterprotected instead of private.
Locomotion Actions
- Made the initial ragdoll speed limit hack optional.
Other
- Refactored
ALS_ENSURE(). - Replaced the uses of
FRotatorwithFRotator3f. - Updated modules loading phase.
4.11
Notable Changes
- Updated plugin to Unreal Engine 5.1.
- Added a skeleton asset action that can help set up all the necessary skeleton stuff: animation curves, slots, virtual bones, etc. It can be accessed by right-clicking on the skeleton asset -> Scripted Asset Actions -> Setup Als Skeleton.
- Added the
Alsprefix to asset names to make it easier to distinguish them from game assets or assets from other plugins. - Simplified stance animation instances by removing some unnecessary state machines and layers that were used to organize the animation graph.
- Fixed root motion not working properly on simulated proxies.
- Fixed an issue with mantling on sloped surfaces (@ameaninglessname contribution).
- Fixed mantling, ragdolling and ground prediction not working properly if the character is overlapped by something.
Animations
- Configured the
bLoopsetting in animation sequences and blend spaces.
Skeleton
- Updated existing blending profiles to include virtual bones.
Animation Blueprint
- Set
bAdditiveNodeto true inBlend Multinodes that blend additive animations. - Replaced the use of animation node functions with
Call Functionanimation nodes. - Replaced some uses of the
Blendspace Playernode withBlendspace Evaluator. - Optimized
UAlsAnimationInstance::RefreshLayering()andUAlsAnimationInstance::RefreshPose(). - Improved performance by moving some thread safe blueprint functions to C++.
- Fixed character getting stuck in ragdolling mode on clients due to
UAlsAnimationInstance::FinalizeRagdolling()not being called in some cases.
Bone Manipulation
- Refactored
CR_Als. - Added
TransienttoUPROPERTYof non-input variables in control rig units. - Improved performance by passing input to Control Rig through a single structure rather than through individual variables.
Character
- Added movement base support to the character.
- Added a setting to inherit the movement base rotation when in the velocity direction rotation mode.
- Added a setting to rotate towards the desired velocity when in the velocity direction rotation mode.
- Reworked teleportation detection logic.
- Reduced mouse sensitivity as the default value is too high.
- Use the
Scale by Delta Timeinput modifier with input actions instead of manually scaling action values by delta time. - Renamed the
Als.RotationMode.LookingDirectiongameplay tag toAls.RotationMode.ViewDirectionto better convey the essence of this rotation mode. - Renamed
FAlsBasedMovementStatetoFAlsMovementBaseStateand moved it into a separate file. - Renamed
RawViewRotationtoReplicatedViewRotation. - Removed
VisibleDefaultsOnlyfromUPROPERTYof theAlsCharacterMovementvariable as this causes duplicate properties to be displayed in the details view. - Removed the rotation lock feature as it has not been used for a long time and therefore there is no guarantee of its correct functioning.
- Optimized some redundant component rotation changes and
FQuattoFRotatorconversions. - Improved performance by enabling
USkeletalMeshComponent::bUpdateJointsFromAnimationonly when it is really necessary. - Improved performance by using absolute rotation of the mesh component only when it is really necessary.
- Fixed an issue with network smoothing when crouching while the root motion montage is playing.
- Fixed crashes caused by not fully configured movement settings.
- Fixed a potential crash when accessing
UEnhancedInputLocalPlayerSubsystem.
Locomotion Actions
- Fixed incorrect rotation of the mesh component at the beginning of the mantle when using absolute rotation.
Footstep Effects
- Fixed incorrect rotation of the footstep particle system on the right foot.
Camera
- Added movement base support to the camera component.
- Added teleportation support to the camera component.
- Added ignore of time dilation when controlling the camera with a gamepad or keyboard.
- Improved performance by performing camera calculations only after parallel animation evaluation is completed.
- Fixed incorrect parameters of the
UAlsCameraComponent::SetPostProcessWeight()function.
Other
- Added
BuildPlugin.bat. - Refactored MetaSound assets and updated their naming style.
- Updated the
ALS_ENSURE()macro to include the latest changes of theensure()macro and to properly support concatenation of string literals with the__FUNCTION__macro and other similar macros. - Replaced the use of
FVectorwithFVector3fandFVector2DwithFVector2fin the settings variables.
4.10
This is a maintenance release, mostly only with bug fixes and minor improvements.
Notable Changes
- Adapted Lyra asset naming conventions.
Animation Blueprint
- Reworked spine and head rotation logic to make it more reliable and less buggy.
- Added blocking of look towards the input direction when the character is in the air to prevent head rotation "snap" when changing look sides.
- Added missing
Inertializationanimation graph nodes to some animation blueprints.
Character
- Added blocking of character rotation towards the last input direction after landing to prevent legs from twisting into a spiral while the landing animation is playing.
- Updated gamepad key bindings.
- Improved support for different character mesh scales.
- Fixed the ability to uncrouch under low surfaces.
Camera
- Added a setting to ignore time dilation in the camera component.
- Removed the camera component's dependency on the
AAlsCharacterclass and useACharacterinstead. - Removed additional view rotation smoothing and instead use raw view rotation (with network smoothing) in the animation instance and camera component.
- Disabled camera rotation lag when in first person mode.
- Improved performance by disabling the camera component on AI characters.
- Fixed an issue with camera initialization with non-default desired rotation mode.
Other
- Added
L_Gridlevel. - Made some class members protected instead of private for easier customization in inherited classes.
- Specified an explicit
UPROPERTYcategory for all struct members exposed to blueprints. - Replaced the
ensure()macro with a less annoyingALS_ENSURE()macro. - Fixed a potential compilation error due to missing
GameplayTagsmodule. - Fixed potential compilation errors on non-MSVC compilers.
4.9
Notable Changes
- Updated plugin to Unreal Engine 5.0.
- Replaced legacy input system with the Enhanced Input plugin.
- Replaced all sound cues with MetaSounds.
- Improved support for Large World Coordinates.
- Improved property access performance in linked animation blueprints by reading variables from the parent animation instance directly, instead of copying them in the game thread and reading the copies.
- Moved thread-safe animation instance logic to the worker thread to improve game thread performance.
- Use animation layer interfaces to dynamically switch overlay states at runtime instead of referencing them directly in animation blueprints.
- Restored the original monolithic animation blueprint for cases where performance is top priority, since using linked animation instances comes with some overhead.
- Replaced most of the remaining enums with gameplay tags
- Reworked foot and pelvis offset logic for smoother character movement on stairs or sloped surfaces.
- Added rotation of the character towards the last input direction when not moving in velocity direction rotation mode.
- Fixed issues with foot locking and character rotation on the listen server or when Update Rate Optimization is enabled.
- Suppressed "Trying to play a non-additive animation into a pose that is expected to be additive" warnings.
Skeleton
- Renamed the
FullBodyanimation slot toPostLocomotion. - Renamed the
AimBlockanimation curve toViewBlock. - Renamed the
AimManualanimation curve toAllowAiming. - Renamed some virtual bones.
Animation Blueprint
- Reworked view animation instance logic.
- Improved layering.
- Improved interpolation logic of some animation instance variables.
- Use animation node functions instead of animation notifies where possible.
- Simplified some animation state machines by using state aliases.
- Slightly optimized the
Blend Poses by Gameplay TagandBlend Curvesanimation graph nodes. - Added separate animation sequences for dynamic transitions.
- Fixed a crash when using the
ShowDebug Animationconsole command. - Fixed an issue with movement animations that may occur during transitions to grounded states.
- Fixed an issue with character pose when transitioning from jump to land state.
- Fixed an issue with character pose when stopping at low fps.
- Fixed an issue with knees when landing while aiming.
Bone Manipulation
- Refactored
CR_Als. - Improved foot locking teleportation logic.
- Fixed noticeable leg stretching on movement start at low fps.
- Fixed an issue with knees in foot IK when landing.
Character
- Reworked view network smoothing and added support for smoothing on the listen server.
- Keep the
USkinnedMeshComponent::VisibilityBasedAnimTickOptionsetting unchanged, at least if it doesn't need to be changed for the plugin to work properly. - Exposed the
UAlsCharacterMovementComponent::SetMovementSettings()function to blueprints. - Fixed glitchy character pushing by moving objects.
- Fixed an issue with teleportation of simulated proxies.
- Fixed an issue with view rotation initialization.
Locomotion Actions
- Fixed character mesh jitter when rolling on clients.
- Fixed very high initial ragdoll speed at unstable fps.
Footstep Effects
- Fixed incorrect alignment of footstep effects on sloped surfaces.
Other
- Renamed the
ALSExamplemodule toALSExtras. - Added new objects to the
Playgroundlevel to test foot and pelvis offsets. - Enabled the One File Per Actor feature on the
Playgroundlevel. - Refactored UI widgets.
4.8
This is the final release for Unreal Engine 4.26, 4.27 and 5.0 Early Access. All future releases will require Unreal Engine 5.0 or later.
Notable Changes
- Split the
ABP_Alsanimation blueprint into separate linked animation blueprints. - Added a
Blend Poses by Gameplay Taganimation graph node. - Eliminated the need for many animation montages for proper locomotion actions blending with overlay states.
- Incorporated new
UCharacterMovementComponentfeatures introduced in Unreal Engine 4.26 into theUAlsCharacterMovementComponentfor better movement synchronization over the network. - Replaced the
EAlsLocomotionModeenum withAls.LocomotionModegameplay tags. - Replaced the
EAlsLocomotionActionenum withAls.LocomotionActiongameplay tags. - Reimplemented mantling as a root motion source for better movement synchronization over the network.
- Moved settings from
AAlsCharacter,UAlsAnimationInstanceandUAlsCamerComponentinto separate data assets.
Skeleton
- Added separate animation slots for standing and crouching turns in place.
- Renamed the
FullBodyActionanimation slot toFullBody. - Renamed the
GaitAmountanimation curve toPoseGait.
Animation Blueprint
- Added correct reinitialization of any time-dependent animation instance variables if it haven't been updated for a long time or if this is the first update since the start of the game.
- Removed caching of some variables inside the animation instance because the animation blueprint can instead read them directly from the character.
Bone Manipulation
- Added spring interpolation for foot and pelvis offsets for smoother pelvis movement, especially when walking up stairs.
- Added support for character teleportation with active foot locking.
- Fixed an issue with foot locking when the animation blueprint hasn't been updated for a long time.
- Fixed an issue with foot locking when standing on rotating objects.
- Fixed an issue with foot locking when crouching and uncrouching.
- Fixed an issue with foot locking when trying to move after landing.
Character
- Added view rotation interpolation on simulated proxies for smoother rotation under poor network conditions.
- Added support for different character mesh scales (uniform scale only).
- Improved
EMovementModerelated logic. - Refactored character rotation logic.
- Make sure all 180 rotations will be counterclockwise rotations.
- Fixed incorrect application of local character rotation on autonomous proxies.
- Fixed an issue with character rotation on the listen server and simulated proxies.
- Fixed character immobility issue in custom movement mode (@a-sennov contribution).
- Fixed editor crash inside
AAlsCharacter::PostInitializeComponents()function.
Locomotion Actions
- Refactored locomotion actions.
- Added a change of the character's movement base during mantling to reduce foot locking glitches after mantling end.
- Improved roll rotation logic to reduce lags in network multiplayer.
- Removed
MantlingandRagdollingentries fromEAlsLocomotionModeenum. - Fixed incorrect mantling interruption by other locomotion actions.
- Fixed incorrect initial roll direction after landing.
- Fixed an issue with character pose when transitioning from ragdoll to animation state.
Footstep Effects
- Fixed incorrect footstep decal location in
A_Als_Mantle_Highanimation sequence.
Other
- Improved
BP_SimpleMovingObjectmovement synchronization between clients and server. - Renamed the
FAlsMovementStatestructure toFAlsGroundedStateand moved some variables fromFAlsLocomotionAnimationStatestructure. - Renamed the
FAlsMovementAnimationSettingsstructure toFAlsGroundedSettingsand moved some variables fromFAlsGeneralAnimationSettingsstructure. - Renamed some
Movementfolders toGrounded. - Updated
Playgroundlevel. - Fixed Linux and Android compilation issues (@Alex-G contribution).
- Fixed Unreal Engine 5 Early Access compilation and packaging issues.
4.7
Notable Changes
- Added a
Blend Curvesanimation graph node that allows to blend animation curves without the need for theVB curvesvirtual bone. - Added
bUseHandIkBonesandbUseFootIkBonessettings, that allow to eliminate the need for IK bones and instead use only virtual bones for all bone manipulation tasks. - Replaced the
EAlsGroundedEntryModeenum withAls.GroundedEntryModegameplay tags. - Moved code related to locomotion actions and debug into separate
.cppfiles. - Improved foot locking reliability when standing on movable objects (especially in network multiplayer).
Skeleton
- Renamed the
VB curvesvirtual bone toVB ik_foot_root.
Animation Blueprint
- Added separate transition animations for crouching stance.
- Improved transitions from roll to grounded states.
- Fixed an issue with left foot when stopping.
- Fixed incorrect initial values of "Slot" animation curves.
- Fixed incorrect transition from get-up montage to standing states.
Bone Manipulation
- Added disabling of foot locking when rotating at a large angle to prevent the legs from twisting into a spiral.
- Optimized foot locking for cases when standing on static objects.
Character
- Refactored character rotation logic.
- Set the
VisibilityBasedAnimTickOptionsetting toEVisibilityBasedAnimTickOption::AlwaysTickPoseAndRefreshBoneson the server when the character is not moving and skip character rotation modification using theRotationYawSpeedanimation curve when the animation blueprint hasn't updated yet. - Fixed desync issues between clients and the server.
- Fixed an issue with view rotation replication when
bReplicateMovementis set tofalse.
Locomotion Actions
- Removed the timeline component requirement for the mantling.
- Optimized mantling logic.
Camera
- Added camera trace "smoothing".
- Added experimental camera lag substepping for better frame rate independence (disabled by default because exponential decay already provides good frame rate independence).
- Added camera post-processing settings.
- Improved camera initialization.
- Moved camera logic into separate functions.
- Fixed an issue with camera rotation interpolation.
Footstep Effects
- Added a
bSkipEffectsWhenInAirsetting. - Added smooth disappearance of footstep decals over time.
- Added reuse of trace hit results from foot IK logic in cases where possible.
- Improved footstep effect animation notify timings in animation sequences.
- Restored the
TriggerWeightThresholdsetting values in animation sequences to the values from the original project. - Fixed an issue with retrieving physical material from footstep traces.
- Fixed an issue where footstep effects were not triggered in situations where the trace hit result was invalid.
- Fixed incorrect footstep decal alignment on sloped surfaces.
- Fixed broken playback of footstep effects in the animation editor.
Other
- Added a
EObjectTypeQueryarray setting for mantling, ragdolling, and ground prediction traces. - Reintroduced AI example.
- Reintroduced ambient sound on the
Playgroundlevel. - Refactored assets in the
ALSExtrasfolder. - Moved files from the
ALSfolder to the repository root folder. - Fixed Unreal Engine 5 Early Access compilation issues.