Appearance
How to add Motion to a character
Use this guide when you already have a project character and want to add Motion components to it.
Prerequisites
- Unreal Engine 5.6 or later
- MotionCore enabled in the project
- A PlayerState that implements
IAbilitySystemInterface - An
AbilitySystemComponentand AttributeSet available from that PlayerState - Enhanced Input configured for your project
Add the core components
- Open your character Blueprint or C++ class.
- Add the movement components you need:
MotionWalkComponentMotionSprintingComponentMotionCrouchingComponentMotionJumpComponent
- Add support components when the character needs them:
MotionCameraEventBusMotionCameraComponentMotionBreathingComponentMotionMovementSoundComponentMotionHeldItemComponent
- Configure each component's GameplayEffect references in the Details panel.
Initialize GAS
If your project initializes GAS manually, initialize the character/ASC pair after possession or once PlayerState is available:
cpp
UMotionAbilitySystemHelper::InitializeCharacterAbilitySystemWithAttributeSet(
this,
UMotionAttributeSet::StaticClass(),
true
);Projects with a custom AttributeSet can use Motion's attribute discovery as long as the expected attribute names are available.
Bind input
- Create or reuse Enhanced Input actions for sprint, crouch, and jump.
- Add the mapping context from your PlayerController or character setup.
- Bind actions through the component helper functions:
cpp
MotionSprintComponent->BindSprintInput(SprintAction);
MotionCrouchComponent->BindCrouchInput(CrouchAction);
MotionJumpComponent->BindJumpInput(JumpAction);Use the explicit Bind*InputWithComponent variants when your project owns the UEnhancedInputComponent lookup.
Set up animation state
For Motion's built-in animation state mapping:
- Set your Animation Blueprint parent class to
UMotionAnimInstance. - Map Motion GameplayTags to Blueprint variables in
GameplayTagPropertyMap. - Use the mapped variables in state machine transitions and blend spaces.
See How to set up MotionAnimInstance for the detailed animation workflow.
Verify the character
- Start PIE.
- Confirm walking, sprinting, crouching, and jumping work locally.
- Enable Motion logging if a component does not initialize:
bash
log LogMotionCore Verbose
showdebug abilitysystem- For multiplayer projects, follow How to test Motion multiplayer.