Animation Framework #
Hyper's locomotion system is based on the techniques in Epic's Lyra Starter Game, though we have implemented it in a way that works in blueprint-only projects.
Note that while Lyra also makes use of Epic's Gameplay Ability System we have not used it here since it can be overkill for many projects.
If you want to know more about the Lyra framework, there are many videos and resources available online. The base will be the same. I’ve done that on purpose so you will be able to adapt it to your own more easily. The framework can be hard to comprehend at first, however it is totally worth it! The Ultimate Combat Framework is a perfect example of the power of the new animation techniques presented by Epic Games themselves.
Some like systems like GASP more. There a people working on integrating it and sharing on how to in MST Pro.
Movement vs Animation #
In Unreal Engine, your character is technically represented by a capsule component. Creating inputs that cause your capsule to move through your game world is only a small part of a locomotion system.
To make a locomotion system complete, you also have to have a skeletal mesh and animations that can make that mesh appear as if it's interacting with the world in believable ways. This is where any locomotion system can get very complicated very quickly, as you not only need animations, but ways to blend them together, ways to manage the conditions that make the animations start or end, and IK (inverse kinematics) to make sure animations are adjusted to match the placement of things in your world.
The Extended Movement Component, along the with Hyper's Animation Framework, does most of this work for you.
Since this system is based on Lyra, you can learn more about the basics of locomotion by finding tutorial videos or documentation about Lyra. Those will give you the foundation you need to understand and expand on the Hyper system.
Architecture #
This system follows the standard Hyper architecture. The structure and foundational data (like enums, structs, libraries, abstract blueprints, etc) can all be found in the Core directory here:
Content/Hyper/Core/Locomotion
The implementation of logic and general functionality can be found under:
Content/Locomotion
Extended Movement Component #
Part of my locomotion framework is the so called “Extended movement component”. It:
-
- Enables the Advanced locomotion System
- Using the Lyra Framework as a base
- Includes Dodging
- Switch Global Orientation from forward facing to strafe movement.
- Provides a central place for animation and sound replication. Call the Initialize function anywhere on any actor with the extended movement component attached. It will automatically handle all replication needs. Example events:
- Initialize Latent Montage
- Initialize Montage
- Initialize Sound at location
- Initialize Sound attached
- Latent montage handling
- Animations can be interrupted, or you want to execute something on a specific notify. The extended movement component can handle all latent montage logic while it is fully replicated. Perfect for things like reloading. On a specific part of the animation, you want to trigger the actual reload. But if your reload is interrupted you don’t want the reload to be executed.
- Useful functions like switching between walk/run/sprint.
- Camera Management
- Using the Enhanced Input system
- Not yet included but want to add if I have the time. So can’t guarantee:
- Vaulting
- Climbing
- Proning
- Door opening
- First person view (Is included but not optimized)
- Cover system
- Enables the Advanced locomotion System
Architecture Interactions #
Due to the modular nature of the Hyper framework, animations are not completely centralized under a single animation blueprint. Instead, they are divided by feature for modularity. This approach allows you to extend functionality by simply adding or removing components, which would not be possible if everything exists in a single place.
For example:
- Basic movement animations (e.g. walk, run, jump, crouch) are handled by the Hyper Locomotion System
- Ragdolls are handled by the Hyper Ragdoll System
- Primary and secondary actions (including *unarmed *attacks) are handled by the Hyper Equipment Manager
- Advanced combat and weapon animations are handled by the Hyper Combat Framework
- Footstep sounds and effects are facilitated by the Hyper Footstep System
- Multiplayer replication of all non-movement animations and montages are facilitated by the Hyper Replication Subsystem
Note that not all systems and features are included in all MST framework levels, but this shared architecture is what allows the Hyper framework to be so modular and flexible.
Movement Animations
Movement animations are driven via the usual animation blueprint method, based on Lyra. Depending on which version of the framework you are using (Starter, Plus, or Pro) different animation blueprints may be used with the default character.
If in doubt, a good place to start is by taking a look at the ABP_Manny blueprint. Traditional state machine architecture is used in alignment with the Lyra standards, so any Lyra knowledge will be very helpful in understanding how this works.
Replicated Animations
The vast majority of non-movement animations and montages (like combat, interactions etc) are supported by the Hyper Replication Subsystem (AC_Replication_SubSystem).
