Complete Character Control
Player controllers, AI controllers, movement systems, and input handling
Player & AI Controllers
Possess and control units with player or AI controllers. The Unit Manager coordinates spawning, possession changes, and standby states. Switch between characters at runtime or build AI-controlled NPCs.
- Unit Manager — Central coordination for unit spawning and possession
- Player Controller — Input-driven character control
- AI Controller — Foundation for AI behavior integration
- Possession Events — EBus notifications when units are possessed/depossessed
Movement Systems (Movers)
Multiple mover types for different gameplay needs. Free 3D movement for flying/swimming. Slide movers for surface-constrained movement. Physics movers for realistic collision response. Extend the base for your custom movement.
- 3D Free Mover — Unconstrained 3D movement (flight, swimming)
- 3D Slide Mover — Surface-constrained sliding movement
- Physics Mover — Rigid body physics-based movement
- Mover Context — Contextual movement state management
- Movement Profiles — Asset-based movement parameters
Input Processing
Decouple input from movement logic. Input Readers capture raw input. Input Data stores the processed state. Input Reactors convert input to movement vectors. Works with keyboard, gamepad, and custom input sources.
- Input Data — Holds processed input state for a unit
- Input Readers — Capture raw input from O3DE's input system
- Input Reactors — Convert input state to movement/actions
- Axis Reactors — Joystick axis mapping for analog movement
Grounding Systems
Detect and respond to ground surfaces. Physics raycast grounding for reliable surface detection. Movement influences for environmental effects like wind, conveyor belts, or water currents. Global and field-based influences.
- Physics Ray Grounder — Raycast-based ground detection
- Grounder Base — Extensible ground detection foundation
- Global Movement Influence — World-wide movement modifiers (wind)
- Movement Influence Fields — Spatial zones that affect movement
Technical Specifications
Components
19 components
Management: UnitManager, UnitComponent
Controllers: PlayerController, AIController, UnitController base
Movement: 3 mover types, MoverContext
Input: InputData, InputReader, 2 reactor types
Grounding: 2 grounder types
Influence: Global and field-based movement influences
Dependencies
Required: GS_Core only
Minimal dependencies. Pure O3DE integration.
EBus Interfaces
Request Buses: Unit manager, unit control, possession management
Notification Buses: Possession events, standby transitions
Fully event-driven architecture.
Data Assets
Movement Profiles: GS_UnitMovementProfile assets
Reusable movement parameters for consistent character feel.
Built for Every Character
Player Characters
Player controller with input handling and movement. Switch between units at runtime. Build party systems or character-swapping mechanics with the possession system.
NPCs & AI
AI controller foundation ready for your behavior systems. Units work the same whether player-controlled or AI-driven. Consistent architecture for all characters.
Fully Extensible
Extend the base mover for custom movement types. Create specialized input reactors. Build game-specific controllers. The architecture supports your unique gameplay.
Control Your Characters
From simple walkers to complex physics-based movement — GS_Unit handles the control layer so you can focus on gameplay.
Get GS_Play Read Documentation Explore Other Gems