Modular Mobility - EasterEggProductions/adventure-mode-godot GitHub Wiki

This was created to encapsulate animation sets and their animation control systems, such as a AnimationNodeStateMachine and AnimationNodeBlendTree into modular elements that can be mixed and matched, even at runtime.

Table of Contents

Overarching Concept

Consider you have made a character that can walk on land, but now you want it to be able to swim. Your existing animation controller and tree would need to be modified with various transitions. Instead with Modular Mobility the functionality of normal walking is encapsulated within a MovementPackage, and this package can simply be added onto the Actor's list of movement packages to add it's functionality to the actor.

Once it is understood how to create new MovementPackages, they can be created rather quickly. And once created their modular nature allows them to be individually modified, tweaked, or even packaged as a tradeable asset for use with a compatible Skeleton3D.

For example, here we have a simple skeleton enemy, capable of walking and swimming.

And by adding additional elements, it can now climb walls, and glide.

Note that none of these packages allow the skeleton to attack. Instead, a separate MovementPackage is added at runtime that contains the moveset for whatever weapon is equipped. In this way, additional mobility items could be created as well, linking the ability to climb to equippable climbing claws, or gliding to a glider item.

Key Components

Actor

Actors link movement packages together, move around the world, and implement the Dress Up system for their appearance. They have a virtualized input compatibility layer, with vectors for desired movement, turn, animation keys, input buffering, and more.

Movement Packages

Movement Packages gather together the animation root nodes for controlling animations, the library, and enter and exit functionality.

⚠️ **GitHub.com Fallback** ⚠️