Appearance
How to set up MotionAnimInstance
Use this guide when an Animation Blueprint should consume Motion movement tags and ground data.
Set the parent class
- Create or open the character Animation Blueprint.
- Open Class Settings.
- Set Parent Class to
MotionAnimInstance. - Compile the Animation Blueprint.
Map GameplayTags to variables
- Open the Animation Blueprint Class Defaults.
- Find
GameplayTagPropertyMap. - Add entries for the tags your graph needs.
Common mappings:
| GameplayTag | Property | Type |
|---|---|---|
Motion.State.Walking | bIsWalking | Boolean |
Motion.State.Sprinting | bIsSprinting | Boolean |
Motion.State.Crouching | bIsCrouching | Boolean |
Motion.State.Jumping | bIsJumping | Boolean |
Motion.State.HoldingItem | bIsHoldingItem | Boolean |
Motion.State.StaminaDepleted | bIsStaminaDepleted | Boolean |
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
GroundDistancefor landing preparation or foot IK. - Use
GetCurrentFirstPersonItemConfigwhen animation logic needs the active native local item config. - Insert one
Motion First Person Item Upper Body Overlaynode 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
GetNativeFirstPersonItemOverlayModewhen advanced graph logic needs to inspect whether the active item is automatic or custom. - Use
GetNativeFirstPersonActiveGameplayTagsonly when custom graph logic needs the same active tag snapshot as the automatic resolver. - Use
ResolveNativeFirstPersonItemAutomaticHeldPoseAnimationWithDiagnosticsfrom setup or event paths when you need warning/error messages. - Use
GetNativeFirstPersonItemUpperBodySolveSettingsandGetNativeFirstPersonControlRotationPitchfor 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
- Start PIE.
- Check
bIsAbilitySystemBound. - If it remains false, confirm the PlayerState exposes an ASC through
IAbilitySystemInterface. - Enable logs if binding is delayed:
bash
log LogMotionAnimation Verbose
log LogMotionCore Verbose
showdebug abilitysystem