Architecture
MotionCore is a universal character locomotion system designed to work with ANY ACharacter subclass in Unreal Engine 5, providing advanced first-person movement through modular components without inheritance requirements.
Architecture Diagrams
High-Level Overview
This diagram shows the core architecture of MotionCore and how components integrate with your character:
GAS Integration
This diagram shows how the Gameplay Ability System (GAS) integrates with Motion components:
Component Integration
This diagram details how Motion components integrate with your existing character:
Data Flow
This diagram shows how input flows through the system to create movement:
Networking & Multiplayer
This diagram shows the networking architecture for multiplayer games:
Functionality
Each layer in the architecture serves a specific purpose in the overall system:
Standard UE5 Framework Layer
This layer consists of standard Unreal Engine 5 classes that MotionCore integrates with:
- GameMode: Your existing GameMode class - only needs to set
PlayerStateClasstoAMotionPlayerState - PlayerController: Your existing PlayerController - no modifications required
- MotionPlayerState: The only required Motion class, provides networked ASC ownership for multiplayer persistence
- AbilitySystemComponent: Standard UE5 GAS component, owned by MotionPlayerState for proper networking
Character Core Layer
The foundation layer that MotionCore enhances without modification:
- ACharacter: ANY character class works - no inheritance from Motion classes required
- CharacterMovementComponent: Standard UE5 movement component that Motion components modify
- CapsuleComponent: Standard collision component used for crouch height adjustments
- MotionCameraComponent: Advanced first-person camera with procedural effects and curve support
- Animation Blueprint: Your existing animation system - Motion integrates via notifies and interfaces
Motion Component System
Modular components that add specific movement behaviors to any character:
- MotionComponentBase: Base class providing common functionality like auto-discovery of required components
- Movement Components: Walk, Sprint, Crouch, Jump - each modifies the standard CharacterMovementComponent
- Support Components: Sound and Breathing - add polish through audio and visual feedback
- Each component is optional and can be added independently based on project needs
Input & Control Layer
Handles player input and ability activation:
- Enhanced Input System: Standard UE5 input system with provided Motion input actions
- Motion Input Helpers: Static utility functions for input processing and ability binding
- GAS Integration: Input triggers abilities through the standard AbilitySystemComponent
Data & Configuration Layer
Content-driven configuration and runtime data:
- MotionAttributeSet: GAS attributes for stamina, movement speeds, and other gameplay values
- Gameplay Effects: Define state changes, attribute modifications, and ability costs
- Curves: UCurveFloat assets for smooth transitions, camera effects, and movement parameters
- Sound Data: Surface-based footstep sounds with multi-variant support
Utilities & Validation Layer
Development tools and runtime helpers:
- Compatibility Validator: Ensures Motion works with your existing character setup
- Logging System: Comprehensive debug categories for troubleshooting
- Function Libraries: Blueprint-exposed utilities for curves, components, and GAS operations
Key Design Principles
Universal Compatibility
- Works with ANY ACharacter subclass without inheritance requirements
- Integrates with standard UE5 components (CharacterMovementComponent, AbilitySystemComponent)
- No conflicts with existing character implementations or marketplace assets
Modular Architecture
- Each Motion component is independent and optional
- Add only the components your project needs
- Components auto-discover required actors and systems at runtime
Standard UE5 Integration
- Uses established UE5 patterns and best practices
- Leverages built-in systems (GAS, Enhanced Input, Replication)
- Maintains compatibility with UE5 updates and features
Network-Ready Design
- Server-authoritative movement using standard CharacterMovementComponent
- PlayerState-owned ASC for proper ability persistence across respawns
- Client prediction and validation following UE5 networking patterns
Developer-Friendly
- Comprehensive Blueprint API for visual scripting
- Clear separation of concerns between layers
- Extensive logging and validation tools for debugging