Motion 2.0 Preview 2
This version represents the production-ready release of Motion 2.0's universal compatibility architecture. It delivers on the promise of working with ANY ACharacter subclass without inheritance requirements, while providing robust multiplayer support and seamless GAS integration.
DANGER
IMPORTANT: Motion 2.0 Preview 2 is a complete architectural redesign and cannot be used to upgrade existing projects from ANY previous version (including Preview 1).
This is a breaking change that requires a fresh integration. However, the new architecture makes future updates much simpler.
Universal Compatibility Achieved
Motion 2.0 Preview 2 successfully implements true universal compatibility:
- No Inheritance Required: Works with ANY ACharacter subclass - just add Motion components
- Standard UE5 Components: Uses standard UCharacterMovementComponent and UAbilitySystemComponent
- Pure Component Composition: All functionality delivered through modular components
- Automatic Discovery: Components automatically find and integrate with required actors/systems
Component Architecture
Base Component System
UMotionComponentBase: Foundation for all Motion components providing:- Automatic ASC initialization with retry mechanism (up to 20 attempts)
- Input binding with retry system for multiplayer timing issues
- RPC validation and rate limiting for security
- Integrated camera curve management
- Automatic component caching and discovery
Movement Components (All C++ with Blueprint exposure)
UMotionBreathingComponent: Velocity-based camera breathing effectsUMotionWalkComponent: Base movement speed and acceleration managementUMotionSprintingComponent: Advanced sprint system with stamina and direction validationUMotionJumpComponent: Multi-jump support with coyote time and server validationUMotionCrouchingComponent: Hybrid crouch system with smooth transitionsUMotionMovementSoundComponent: Surface-based audio with MetaSound integration
GAS Integration
UMotionAttributeSet: Comprehensive attribute set with automatic CMC syncing- Movement:
WalkSpeed,SprintSpeed,JumpVelocity - Stamina:
Stamina,MaxStamina,StaminaRegenRate - Direct sync to CMC properties via
PostAttributeChange - Full replication support with proper attribute macros
- Movement:
AMotionPlayerState: Required for GAS persistence across respawns- Owns the AbilitySystemComponent for proper replication
- Handles attribute initialization and persistence
- Compatible with any GameMode (just set PlayerStateClass)
Enhanced Camera System
UMotionCameraComponent: Advanced first-person camera with:- Integrated curve evaluation system (location & rotation)
- Smooth collision detection and recovery
- Support for additive camera effects from all components
- Optimized tick groups for performance
Multiplayer Improvements
Client Prediction & Server Reconciliation
- Hybrid Movement System: Combines UE5 built-in movement with custom timeline smoothing
- Immediate Response: Client-side prediction for all movement actions
- Server Authority: Server validates all state changes to prevent cheating
- Smooth Reconciliation: Prediction state tracking prevents rubberbanding
Network Optimizations
- GameplayEffect-based Tag Replication: Efficient state synchronization
- RPC Rate Limiting: Prevents network spam and exploits
- Smart Landing Detection: Resolves jump count synchronization issues
- Attribute-based Speed Sync: Direct CMC property updates via GAS
Stamina System
- Hysteresis Prevention: Smart exhaustion handling prevents sprint cycling
- Smooth Regeneration: Configurable delay and regen rate via attributes
- Multiplayer Ready: Full replication through GAS attributes
Critical Bug Fixes
Multiplayer Issues Resolved
- Fixed infinite jump exploit through proper server-side validation
- Resolved RPC processing failures preventing server execution
- Fixed sprint/crouch state conflicts causing animation issues
- Eliminated capsule sync issues causing camera stuttering
- Fixed GameplayEffect application failures on clients
Movement System Fixes
- Eliminated camera position jumps when crouching
- Fixed multi-jump direction using character velocity instead of input
- Resolved coyote time double-declaration
- Fixed stamina not properly sourcing from GAS attributes
- Corrected crouch speed penalty application
Input & Initialization
- Added retry mechanisms for input binding in multiplayer
- Fixed ASC initialization race conditions
- Resolved component discovery timing issues
- Added validation for all RPC requests
Included Gameplay Effects
Motion 2.0 Preview 2 includes pre-configured Gameplay Effects for all movement states:
Movement Speed Effects
GE_Motion_WalkSpeed: Base walking speed modifierGE_Motion_SprintSpeed: Sprint speed increaseGE_Motion_CrouchSpeed: Crouch speed reductionGE_Motion_JumpVelocity: Jump height modifier
State Tags
GE_Motion_Walking,GE_Motion_Sprinting,GE_Motion_Crouching,GE_Motion_JumpingGE_Motion_WantsToSprint,GE_Motion_WantsToCrouch,GE_Motion_WantsToJumpGE_Motion_BreathingActive: Camera breathing effect state
Stamina Effects
GE_Motion_SprintStaminiaDrain: Continuous stamina consumption while sprintingGE_Motion_SprintStaminiaRegen: Stamina regeneration when not sprintingGE_Motion_SprintStaminiaRegenDelay: Delay before regeneration begins
Migration Guide
To integrate Motion 2.0 Preview 2 into your project:
- Remove Previous Versions: Delete all previous Motion content
- Install Fresh: Add Motion 2.0 Preview 2 to your project
- Configure GameMode: Set
PlayerStateClasstoAMotionPlayerState::StaticClass() - Add Components: Add desired Motion components to your character class
- Setup Input: Bind Enhanced Input actions to Motion components
- Configure GAS: Motion components will automatically integrate with your ASC