AdventureGameLocomotionSystem v1 INFO-1
AdventureGameLocomotionSystem v1 INFO-1
2
(EXPERIMENTAL) | (Project Files) [No Replication, only Windows*]
In the project, not all animations will be included. Animations like Stealth Finishers come
from the UE5 marketplace - Stealth Finishers - knife and hand In order for it to look like on a
video, you need this package, which must later be uploaded to the project
Edit: From this version, please do not edit the animation curves, now you only need to
replace the damaged animations with the original ones.
Ultimate Traversal Anims by RamsterZ. I broke this animations but if you want to import
orginal , buy this pack , export choosed animations to fbx and reimport to the project.
The Melee Combat also using Marketplace. Animations are not included in the project, but
the system can still be used, although bugs may appear. If you have this Animation Pack -
Brutal Finishers - Hand and Knife , do the same with it as with other bundles. Do not change
any animation sequence settings, but reimport individual files. Attention! In the project, the
names of the animations start with 'BF_H2H' or 'BF_Knife', so you need to replace the file
names after exporting FBX.
Only Windows - Why is it marked as Windows only? This is because the project contains C++ code that requires binary files to function.
These types of files are generated during compilation for a specific operating system and cannot be used outside of it.
I present the first results of my work on introducing the Motion Matching system into the
Interaction With ALS project (IWALS v3.4). In this project, the motion matching logic was
partially derived from the GASP project recently made available by Epic Games. Thanks to
MM, the basic locomotion system appears more natural and dynamic. Currently, the GASP
project only implemented 2 Gait states. I decided to add an additional one to have 3 states,
just like in ALS. I also added many elements to the Pose Search database such as: crouching,
collision reactions, quick direction changes, transitions between Standing and Crouching,
walking on stairs, and others.
What are the other changes compared to the IWALS v3.4 project?
At this moment, there are quite a few. These changes are visible both in the final locomotion
and in the logic of the code itself. Many blueprint elements have been replaced with C++, for
example, recalculating basic data such as: IsMoving, Acceleration, Speed, and many others. It
is worth noting that variables defined in the C++ class usually end with the suffix 'C', e.g.,
IsMovingC, AccelerationC. I have created many new AnimGraph nodes and helpful
functions. Examples of such nodes are:
Modify Layering Curves: (created still in the IWALS project). A very commonly used
node for quickly modifying animation curve values.
Curve Smoother: Used to smooth out the values of curves received at the input.
Created to eliminate steps interpolation.
Layer Blending (EXPERIMENTAL!!!). This is the C++ version of the Layer Blending
system from Anim Graph.
Save Current Pose To SnapShot (created still in IWALS). Saves the input pose to a
variable. This allows reading the position of the bones of a given animation even
though the final pose has already been overwritten by other logic.
C++ also performs many other actions. The player's character, some components, interfaces,
the animation plan, and the Ability System have their own C++ class containing many
functions and variables.
Currently, I have also decided to rebuild the overlay changing system. For this purpose, I
decided to use asynchronous class loading. Thanks to this solution, overlays are not always
loaded into memory, but only at the moment of their initiation. This solution also allows
adding Unequip states in the future, which I have planned. More information, such as the pros
and cons, can be found in the blueprint comments (ALS_AnimBP, ALS_CharacterBP).
Motion Matching now also supports Predictable Jumps, which selects the jump animation
based on the calculated landing position. The Animation Base is not fully complete and will
be further expanded along with this system.
Traversal Actions from the GAPS project contain more animations. This system does not only
work on selected objects, but every collision is interpreted. However, sometimes problems
arise in the case of Complex collisions due to the lack of 3-dimensional collision in this
instance. Whenever possible, it is worth using convex collisions, especially in the case of a
mesh.
The stair walking logic will also be expanded because currently, the detection of whether the
player is moving on stairs is implemented based on a Sphere Trace to check if the IK_Object
channel is blocked.
I have introduced Enhanced Inputs instead of the outdated Inputs system included in IWALS
back in UE4.26.
At the moment, the Cover System, Crawling or Zombies AI are NOT SUPPORTED. It
should be possible to add these in the next version.
Cleaning up the old content from the project has also not been completed. One of the reasons
for this is that I have not yet fully assessed which resources can be safely removed.
Significant changes have also been made to the IK. Currently, for basic locomotion, Foot IK
solving is done through the 'Foots Placement' node. However, for example, in the case of
Climbing, this task is handled by Control Rig and manually calculating the required foot
positions. The 'Foots Placement' node has several drawbacks, one of which is that the alpha
value for a selected bone can only be set through an animation curve. This node also has a
built-in Foot Lock system. By default, this is enabled, but I have not focused on detailed
configuration, so sometimes the leg position can get locked in the wrong place. Of course, I
will also try to fix this.
Compared to the ALS project, the skeleton has been slightly modified. I added a new bone
named 'attach'.
Added retarget files for the UE5 skeleton (SKM_Manny or SKM_Quinn), which is
compatible with Metahuman. I should mention that the UE5 skeleton is not fully
compatible with the bone hierarchy of the UE4 skeleton. These differences are not
very noticeable in animations where hand and finger positions can be simplified.
However, when holding something like a rifle, manual adjustment of hand positions
was required.
An actor has been added that can influence the accuracy of ledge detection in specific
areas. 'BP_ModifyClimbingParamsVolume' allows for extending the ledge detection
for climbing. With this solution, when you need the player to be able to grab high
ledges, you simply place the actor near the floor to increase the reach of the edge
detection function. Along with this modifier, im added additional transition animations
between the 'Grounded state' and 'Climbing Ledge'.
The 'AnimMan' mesh has been modified to reduce the number of material instances.
Now, VertexColor is responsible for separating parts of the skeleton, and the entire
model contains only one material. The coloring system hasn't changed much, the only
thing removed was the 'Create Dynamic Material' nodes. This makes it easier to create
coloring patterns and helps reduce DrawCalls.
Of course. At the moment, I have many plans. An important element of the project's
development will be the release of Unreal Engine 5.5, along with updates to the GASP
project. In my case, the main planned changes are:
I hope the project will be able to meet your expectations. At the moment, it may contain
errors or bugs, but over time, most of them should be fixed. On a scene without any AI
controllers, my computer was able to generate around 80 to 95 FPS on high graphics settings.
PC specification: AMD Ryzen 7 3800X, 32 GB RAM, NVIDIA GeForce RTX 3060.