Skip to content

How to set up MotionAnimInstance

Use this guide when an Animation Blueprint should consume Motion movement tags and ground data.

Set the parent class

  1. Create or open the character Animation Blueprint.
  2. Open Class Settings.
  3. Set Parent Class to MotionAnimInstance.
  4. Compile the Animation Blueprint.

Map GameplayTags to variables

  1. Open the Animation Blueprint Class Defaults.
  2. Find GameplayTagPropertyMap.
  3. Add entries for the tags your graph needs.

Common mappings:

GameplayTagPropertyType
Motion.State.WalkingbIsWalkingBoolean
Motion.State.SprintingbIsSprintingBoolean
Motion.State.CrouchingbIsCrouchingBoolean
Motion.State.JumpingbIsJumpingBoolean
Motion.State.HoldingItembIsHoldingItemBoolean
Motion.State.StaminaDepletedbIsStaminaDepletedBoolean

The properties must already exist in the Animation Blueprint and match the expected type.

Use Motion data in the graph

  • Use mapped booleans for state machine transitions.
  • Use GroundDistance for landing preparation or foot IK.
  • Use GetCurrentFirstPersonItemConfig when animation logic needs the active native local item config.
  • Insert one Motion First Person Item Upper Body Overlay node after the host locomotion/body pose for baseline first-person item held pose.
  • Use ResolveNativeFirstPersonItemAutomaticHeldPoseAnimation, HasNativeFirstPersonItemAutomaticHeldPoseAnimation, and the automatic blend accessors for diagnostics or advanced graph logic; the built-in overlay node reads them internally.
  • Use GetNativeFirstPersonItemOverlayMode when advanced graph logic needs to inspect whether the active item is automatic or custom.
  • Use GetNativeFirstPersonActiveGameplayTags only when custom graph logic needs the same active tag snapshot as the automatic resolver.
  • Use ResolveNativeFirstPersonItemAutomaticHeldPoseAnimationWithDiagnostics from setup or event paths when you need warning/error messages.
  • Use GetNativeFirstPersonItemUpperBodySolveSettings and GetNativeFirstPersonControlRotationPitch for diagnostics or advanced custom graph logic, not as manual baseline overlay-node inputs.

The automatic held pose resolver reads the bound ASC tag snapshot. The active config checks AutomaticHeldPoseSettings.HeldPoseAnimations, uses the highest-priority matching gameplay tag entry, keeps array order when priorities tie, and falls back to AutomaticHeldPoseSettings.FallbackHeldPoseAnimation when no entry matches.

No active first-person item config is a pass-through condition for the overlay. Do not add Blueprint variables just to mirror crouch or sprint state for the overlay; the native resolver already reads the bound ASC.

Do not add per-item solve tuning variables to the host Animation Blueprint. Item-specific solve intensity, overlay blend weight, overlay blend time, and held pose transition blend time belong on UMotionNativeFirstPersonItemConfig; MotionAnimInstance only exposes the effective config data and state accessors.

Verify binding

  1. Start PIE.
  2. Check bIsAbilitySystemBound.
  3. If it remains false, confirm the PlayerState exposes an ASC through IAbilitySystemInterface.
  4. Enable logs if binding is delayed:
bash
log LogMotionAnimation Verbose
log LogMotionCore Verbose
showdebug abilitysystem

Motion - Advanced First Person Character Controller