unreal-animation-blending

Unreal 5.8 Animation Blending

Build and debug animation blends in UE 5.8

---
name: unreal-animation-blending
description: Select, implement, tune, and debug character animation blending in Unreal Engine 5.8. Use for Animation Blueprints, Blend Spaces, state transitions, inertialization, sync groups and markers, layered blends per bone, additive animation, Aim Offsets, Montages and Slots, locomotion, upper-body actions, hit reactions, foot-phase problems, or animation popping.
---

# Unreal 5.8 Animation Blending

## Ownership boundary

This skill owns final AnimGraph composition, base locomotion, transitions, phase synchronization,
additives, and regional layering. Route bounded action sections/cancel windows to
[`unreal-animation-montages`](../unreal-animation-montages/SKILL.md), pose-search selection to
[`unreal-motion-matching`](../unreal-motion-matching/SKILL.md), and any defect already visible in an
IK Retargeter preview/export to [`unreal-control-rig-ik`](../unreal-control-rig-ik/SKILL.md).

## Select the mechanism before building the graph

Read [`references/method-selector.md`](references/method-selector.md).

- Continuous values → Blend Space.
- Discrete persistent modes → State Machine.
- Simple Boolean/enum/int choice → Blend Poses node.
- Simultaneous body regions → Layered Blend per Bone or Blend Mask.
- Relative motion layered over a base → additive animation / Aim Offset.
- Gameplay-triggered authored action → Montage + Slot.
- Cycles that must preserve phase → Sync Group + matching Sync Markers.
- Short natural transition with source evaluation no longer needed → Inertialization.

Do not solve every animation problem with more states or longer crossfades.

## Execute

1. Define gameplay state and animation variables outside the final pose graph.
2. Choose the smallest mechanism that matches the behavior.
3. Establish phase, root-motion, additive-space, and Slot assumptions.
4. Implement base locomotion before overlays.
5. Add transition logic and explicit blend behavior.
6. Validate notifies, root motion, sync markers, interruptions, and network behavior.
7. Profile graph evaluation and confirm thread-safe data access.

Read:

- [`references/locomotion.md`](references/locomotion.md) for Blend Space and phase setup.
- [`references/layering-and-actions.md`](references/layering-and-actions.md) for upper-body,
  additive, montage, and hit-reaction patterns.
- [`references/transitions-and-sync.md`](references/transitions-and-sync.md) for state
  transitions, inertialization, and markers.
- [`references/troubleshooting.md`](references/troubleshooting.md) for visible failures.

## Required answer format

Return:

1. **Chosen blend mechanism** and rejected alternatives.
2. **Required assets and assumptions**: Skeleton, additive type, root motion, markers.
3. **AnimGraph/state-machine node order**.
4. **Variables and how to calculate them**.
5. **Blend durations/curves as a tuning procedure**, not invented universal numbers.
6. **Notify, interruption, root-motion, and network consequences**.
7. **Debug and acceptance checks**.

## Hard rules

- Use Sync Markers for foot-phase alignment when length syncing is insufficient.
- Only markers common to every animation in a Sync Group participate.
- Keep inertialization blends short; UE guidance recommends under 0.4 seconds.
- Do not use inertialization for extremely different poses.
- Source animation evaluation and its future Notifies stop when inertialization begins.
- Treat Dead Blending as experimental in UE 5.8; do not make it a shipping dependency.
- Place inertialization after the nodes requesting it and generally before final IK.
- Use Layered Blend per Bone for regional overrides; use additive poses for deltas.
- Use Montages for event-driven actions, not the permanent locomotion state graph.
- Verify montage/root-motion authority and RPC behavior in networked games.

See [`references/sources.md`](references/sources.md) for the UE 5.8 source trail.

## Ownership boundary

This skill owns final AnimGraph composition, base locomotion, transitions, phase synchronization,
additives, and regional layering. Route bounded action sections/cancel windows to
[`unreal-animation-montages`](/unreal/unreal-animation-montages/), pose-search selection to
[`unreal-motion-matching`](/unreal/unreal-motion-matching/), and any defect already visible in an
IK Retargeter preview/export to [`unreal-control-rig-ik`](/unreal/unreal-control-rig-ik/).

## Select the mechanism before building the graph

Read [`references/method-selector.md`](/unreal/unreal-animation-blending/method-selector/).

- Continuous values → Blend Space.
- Discrete persistent modes → State Machine.
- Simple Boolean/enum/int choice → Blend Poses node.
- Simultaneous body regions → Layered Blend per Bone or Blend Mask.
- Relative motion layered over a base → additive animation / Aim Offset.
- Gameplay-triggered authored action → Montage + Slot.
- Cycles that must preserve phase → Sync Group + matching Sync Markers.
- Short natural transition with source evaluation no longer needed → Inertialization.

Do not solve every animation problem with more states or longer crossfades.

## Execute

1. Define gameplay state and animation variables outside the final pose graph.
2. Choose the smallest mechanism that matches the behavior.
3. Establish phase, root-motion, additive-space, and Slot assumptions.
4. Implement base locomotion before overlays.
5. Add transition logic and explicit blend behavior.
6. Validate notifies, root motion, sync markers, interruptions, and network behavior.
7. Profile graph evaluation and confirm thread-safe data access.

Read:

- [`references/locomotion.md`](/unreal/unreal-animation-blending/locomotion/) for Blend Space and phase setup.
- [`references/layering-and-actions.md`](/unreal/unreal-animation-blending/layering-and-actions/) for upper-body,
  additive, montage, and hit-reaction patterns.
- [`references/transitions-and-sync.md`](/unreal/unreal-animation-blending/transitions-and-sync/) for state
  transitions, inertialization, and markers.
- [`references/troubleshooting.md`](/unreal/unreal-animation-blending/troubleshooting/) for visible failures.

## Required answer format

Return:

1. **Chosen blend mechanism** and rejected alternatives.
2. **Required assets and assumptions**: Skeleton, additive type, root motion, markers.
3. **AnimGraph/state-machine node order**.
4. **Variables and how to calculate them**.
5. **Blend durations/curves as a tuning procedure**, not invented universal numbers.
6. **Notify, interruption, root-motion, and network consequences**.
7. **Debug and acceptance checks**.

## Hard rules

- Use Sync Markers for foot-phase alignment when length syncing is insufficient.
- Only markers common to every animation in a Sync Group participate.
- Keep inertialization blends short; UE guidance recommends under 0.4 seconds.
- Do not use inertialization for extremely different poses.
- Source animation evaluation and its future Notifies stop when inertialization begins.
- Treat Dead Blending as experimental in UE 5.8; do not make it a shipping dependency.
- Place inertialization after the nodes requesting it and generally before final IK.
- Use Layered Blend per Bone for regional overrides; use additive poses for deltas.
- Use Montages for event-driven actions, not the permanent locomotion state graph.
- Verify montage/root-motion authority and RPC behavior in networked games.

See [`references/sources.md`](/unreal/unreal-animation-blending/sources/) for the UE 5.8 source trail.

unreal 5.8 animation blending select, implement, tune, and debug character animation blending in unreal engine 5.8. use for animation blueprints, blend spaces, state transitions, inertialization, sync groups and markers, layered blends per bone, additive animation, aim offsets, montages and slots, locomotion, upper-body actions, hit reactions, foot-phase problems, or animation popping. layering and action patterns layering and action patterns run while firing asset setup: 1. create firing animation montage. 2. create/use an upperbody slot. 3. put the montage sequence on that slot. animgraph order: 1. evaluate locomotion state machine / blend space. 2. save cached pose locomotion. 3. feed cached pose to the slot as the base. 4. feed original cached pose to layered blend per bone base pose. 5. feed slot result to a blend pose. 6. start branch filter at the intended spine bone or use an authored blend mask. 7. output the layered result. 8. apply final ik after blending unless the design requires regional ik first. verify pelvis ownership, shoulder seam, weapon alignment, aim offset order, and montage blend out while moving. reload while moving - use a montage section for each authored phase only when gameplay may branch/interupt. - use notifies/notify states for magazine detach/attach, hand ik windows, and gameplay state changes. - use branching point only for frame-critical gameplay decisions; queued notifies are cheaper. - set trigger weight threshold so barely weighted outgoing animation does not fire unwanted events. - define interruption behavior: retain old magazine, commit reload, or roll back. full-body attack - use full-body slot/montage when attack owns the whole pose. - decide in-place versus root motion before graph work. - gate locomotion visually and mechanically from the same gameplay state. - use sections for combo windows and branching. - put authoritative damage windows in gameplay logic driven by well-defined notify or ability events; test interruption and network authority. additive recoil 1. confirm recoil clip is authored as additive against the intended reference pose. 2. evaluate base locomotion/aim pose. 3. apply additive recoil with an alpha driven by gameplay/curve. 4. apply before or after upper-body regional masking based on which bones should receive recoil. 5. filter lower-body bones if required. 6. verify repeated firing does not accumulate pose error. hit reaction choose: - additive directional reaction for small impulses that preserve current action; - layered blend per bone for regional override; - montage for authored full/partial-body reaction with timing and interruption; - physics/ragdoll only when pose animation is no longer the correct model. drive direction from hit vector transformed into character local space. ensure a high- priority reaction does not silently cancel required gameplay montages in the same slot group. multiple slots - same slot and slot group: later/active montage overrides competing playback. - different body regions: use separate slots and combine explicitly in animgraph. - keep sequence lengths aligned when multiple slots in one montage must stay synchronized. - document slot ownership so abilities do not fight over unnamed defaults. child montages use child montages for weapon/character animation variants that retain parent sections, notifies, and logic. replace compatible animation segments; verify automatic play-rate adjustment does not create implausible motion. locomotion patterns locomotion patterns 1d idle/walk/run blend space assets: - compatible idle, walk, and run/sprint sequences; - same skeleton and consistent forward axis; - compatible gait start phase where possible. setup: 1. create blend space 1d for the skeleton. 2. name axis speed; use cm/s to match character movement velocity. 3. set axis min/max to the actual locomotion range. 4. place idle at zero and gait samples at their authored travel speeds. 5. drive from horizontal velocity magnitude, not full 3d velocity if falling should not increase locomotion speed. 6. add axis smoothing only to remove noisy input; do not use it to hide incorrect acceleration or bad sample speeds. 7. put compatible gait clips in the same sync group. 8. add matching left/right foot sync markers when phase drift is visible. 2d strafe blend space common axes: - speed and local-space direction, or - local forward velocity and local right velocity. procedure: 1. transform world velocity into character/mesh local space. 2. match axis ranges to actual movement limits. 3. place forward/back/left/right/diagonal samples according to authored direction. 4. preview corners and diagonals, not only axis centers. 5. validate foot phase across neighboring samples. 6. if diagonal speed differs mechanically, drive the blend space with actual local velocity rather than normalized input. starts, stops, and pivots - keep simple locomotion in a looping blend space. - add start/stop/pivot states when acceleration direction, planted foot, or authored anticipation materially changes the pose. - use marker-based sync for run-to-stop or walk-to-run transitions when phases differ. - set start/stop animations to an appropriate leader role when they must define phase. - use transition rules from movement state, acceleration, direction delta, and time remaining—not arbitrary delays alone. aim offset over locomotion 1. author/convert directional aim samples as mesh-space additive. 2. create aim offset with yaw/pitch axes. 3. feed locomotion cached pose into the aim offset base pose. 4. compute aim delta relative to character/mesh facing. 5. clamp/wrap yaw and pitch to authored limits. 6. layer weapon recoil after or within the aim layer according to desired space. 7. verify spine/shoulder deformation at extreme corners. root motion choice - in-place locomotion: character/mover movement is authoritative; animation visualizes it. - root-motion action: animation drives movement for the action; use montages for the common networked path. - enabling root motion from everything moves animgraph evaluation to the game thread; profile before choosing it broadly. - verify capsule/mesh agreement, movement mode, slopes, falling behavior, replication, and correction. evaluation checks - no foot sliding at authored sample speeds. - no phase double-step during walk/run blends. - direction changes do not collapse knees or twist pelvis. - acceleration/deceleration visual timing matches movement. - falling does not feed incorrect speed/direction into grounded locomotion. - network correction does not repeatedly restart or desynchronize gait. method selector method selector | problem | primary mechanism | why | common misuse | |---|---|---|---| | idle/walk/run over speed | blend space 1d | one continuous axis | separate state per speed | | strafing over speed and direction | blend space 2d | two continuous axes | unsynced directional clips | | aim/look over yaw and pitch | aim offset | mesh-space additive directional pose | ordinary non-additive blend space | | grounded/falling/swimming/climbing modes | state machine | persistent discrete states and transitions | boolean blend web in main animgraph | | weapon equipped/unequipped | blend poses by bool/enum or linked layer | small discrete variant | duplicating the entire locomotion machine | | run while firing/reloading | montage slot + layered blend per bone | event action over lower-body base | full-body montage when legs must continue | | recoil/breathing/lean | additive pose | relative delta over base pose | treating additive clip as full pose | | walk/run cycles drift out of foot phase | sync group + sync markers | aligns named gait events | longer blend duration | | abrupt short transition between similar moving poses | inertialization | carries outgoing motion without continued source evaluation | using it between radically different poses | | one-off attack/combo with sections | montage | controlled sequence, sections, notifies, slots | large state-machine branch | | different bones need different transition rates | blend profile | per-bone transition weighting | multiple arbitrary transition nodes | | complex reusable body-mode graph | linked anim layer / linked anim graph | modular graph ownership | copy-pasted graphs | decision tests blend space use when the desired pose is a smooth function of one or two measured values. inputs must have meaningful units and ranges. samples should represent comparable motion and compatible phase. state machine use when the animation mode persists and entry/exit rules matter. keep gameplay truth outside the state machine; let transitions consume stable variables. montage use when gameplay explicitly starts/stops/branches an authored action. use sections for combos or loops and slots for body-region application. same-slot sequences override one another. layered blend per bone use for regional full-pose overrides. select branch filter or blend mask deliberately. define the first affected bone and verify all descendants. use mesh-space rotation blend when local-space composition produces shoulder/spine artifacts, then recheck cost and visual result. additive use when the clip represents a delta from a known reference pose. confirm local-space or mesh-space additive setup and reference pose before blaming the graph. inertialization use for short transitions where preserving outgoing velocity matters more than continuing to evaluate the source clip. keep standard crossfade when source notifies or exact source phase must remain active through the transition. ue 5.8 primary sources ue 5.8 primary sources - epic games, blending animations - epic games, animation blueprint blend nodes - epic games, blend spaces - epic games, blend spaces in animation blueprints - epic games, state machines - epic games, transition rules - epic games, animation sync groups - epic games, animation notifies - epic games, using layered animations - epic games, animation montages - epic games, root motion version target: unreal engine 5.8. recheck node stability, experimental status, and threading behavior before using this skill with a later engine version. transitions, sync, and inertialization transitions, sync, and inertialization standard state transition 1. build one directional transition for each allowed direction. 2. base the rule on stable gameplay/movement variables. 3. set priority order when multiple transitions can be true; smaller number wins. 4. choose duration and curve from the visible motion, then test interruptions. 5. use blend profile when body regions should settle at different rates. 6. use shared transition/crossfade settings only when editing one should intentionally change all users. 7. do not enable bidirectional; ue 5.8 documentation marks it unsupported. for non-looping exit: - use relevant animation time remaining or automatic rule based on sequence player. - mark unrelated players ignore for relevancy test when they would corrupt the query. - test with altered play rate. sync groups use for animations representing the same cyclical action at different rates. 1. give compatible nodes the same group name. 2. set method to sync group, or graph when sync is propagated by graph structure. 3. choose group role deliberately; highest-weight animation is leader by default. 4. ensure clips begin with compatible body phase. 5. avoid drastic clip-length differences that create play-rate pops. marker-based sync 1. add shared markers such as leftfootdown and rightfootdown to every gait clip. 2. put animations in the same sync group. 3. ensure marker spelling and order match. 4. remember: only markers common to all animations in the group are used. 5. if no matching markers exist, ue falls back to length-based syncing. 6. set start/stop clips as leader where they must control the transition phase. inertialization setup: 1. set compatible transition/blend node transition type to inertialization. 2. add one inertialization node after all request sources it should serve. 3. place it near output pose to consolidate requests where appropriate. 4. apply before final ik in the common whole-body path. 5. keep requested blend under 0.4 seconds and test shorter first. use when: - outgoing pose is still moving; - poses are reasonably compatible; - rapid natural settling is desired; - source clip no longer needs evaluation. avoid when: - poses are extremely different; - source notifies must still fire after transition begins; - continuous interruptions degrade quality; - exact crossfade sampling is required. when multiple requests occur, ue uses the minimum requested duration. dead blending dead blending predicts outgoing motion and may handle large differences better, but ue 5.8 labels the node experimental and does not recommend shipping projects that depend on it. use only for evaluation with an explicit inertialization/standard-blend fallback. troubleshooting troubleshooting | symptom | likely cause | action | |---|---|---| | feet double-step during blend | gait clips out of phase | add matching sync group and foot markers | | feet slide at steady speed | sample authored speed differs from movement speed | place sample at measured speed; use stride/play-rate solution deliberately | | pop entering state | pose discontinuity, zero/short blend, bad reference pose | inspect source/target poses; tune crossfade/profile or use compatible inertialization | | inertialization logs runtime error | request exists without downstream node | add inertialization after request source | | important source notify never fires | inertialization stops source evaluation | use standard blend or move gameplay event ownership | | inertial blend looks stiff/broken | poses too different or repeated interruptions | use standard/custom blend; reduce interruptions | | upper body action moves legs | branch root too high/low or wrong blend mask | inspect affected hierarchy and blend depth/mask | | shoulder/spine twists | local-space regional rotation composition | test mesh-space rotation blend; fix additive/reference setup | | aim offset explodes at extremes | samples not mesh-space additive or bad axis/wrap | correct additive setup; clamp/wrap inputs; inspect corner samples | | montage does not appear | slot node absent/wrong slot or slot group conflict | add matching slot to animgraph; inspect competing montages | | montage cancels another action | same slot group owns both | separate ownership/slots or define priority/cancel policy | | transition chooses wrong path | competing true rules / priority | set explicit priority order and simplify state truth | | time remaining is wrong | multiple relevant players | enable ignore for relevancy test on unrelated players | | notifies fire from tiny blend weight | trigger weight threshold too low | raise threshold and test blend edges | | network root motion diverges | montage/rpc/authority mismatch | make gameplay authoritative; replicate montage trigger and verify correction | | returning state resumes midway | always reset on entry disabled | enable when restart is intended; leave disabled only for resume behavior | debug sequence 1. inspect live animation blueprint and active state weights. 2. display relevant variables: speed, local direction, movement mode, action state. 3. preview blend space at actual runtime coordinates. 4. inspect sync group leader/follower and marker names. 5. temporarily bypass overlays to isolate base locomotion. 6. re-enable slot, additive, regional blend, and ik one stage at a time. 7. inspect montage instance, slot group, sections, and blend weights. 8. test interruption at start, midpoint, and blend out. 9. test low frame rate and network latency where applicable. acceptance checks - phase remains stable across gait blends. - no visible pop at normal or interrupted transitions. - regional actions affect only intended bones. - gameplay events fire exactly once at the intended authority. - root motion and capsule remain aligned. - graph remains understandable and does not duplicate persistent gameplay truth.

Layering and action patterns

# Layering and action patterns

## Run while firing

Asset setup:

1. Create firing Animation Montage.
2. Create/use an `UpperBody` Slot.
3. Put the Montage sequence on that Slot.

AnimGraph order:

1. Evaluate locomotion State Machine / Blend Space.
2. Save Cached Pose `Locomotion`.
3. Feed cached pose to the Slot as the base.
4. Feed original cached pose to Layered Blend per Bone Base Pose.
5. Feed Slot result to a Blend Pose.
6. Start branch filter at the intended spine bone or use an authored Blend Mask.
7. Output the layered result.
8. Apply final IK after blending unless the design requires regional IK first.

Verify pelvis ownership, shoulder seam, weapon alignment, aim offset order, and Montage
blend out while moving.

## Reload while moving

- Use a Montage Section for each authored phase only when gameplay may branch/interupt.
- Use Notifies/Notify States for magazine detach/attach, hand IK windows, and gameplay
  state changes.
- Use Branching Point only for frame-critical gameplay decisions; queued notifies are
  cheaper.
- Set Trigger Weight Threshold so barely weighted outgoing animation does not fire
  unwanted events.
- Define interruption behavior: retain old magazine, commit reload, or roll back.

## Full-body attack

- Use full-body Slot/Montage when attack owns the whole pose.
- Decide in-place versus root motion before graph work.
- Gate locomotion visually and mechanically from the same gameplay state.
- Use Sections for combo windows and branching.
- Put authoritative damage windows in gameplay logic driven by well-defined notify or
  ability events; test interruption and network authority.

## Additive recoil

1. Confirm recoil clip is authored as additive against the intended reference pose.
2. Evaluate base locomotion/aim pose.
3. Apply additive recoil with an alpha driven by gameplay/curve.
4. Apply before or after upper-body regional masking based on which bones should receive
   recoil.
5. Filter lower-body bones if required.
6. Verify repeated firing does not accumulate pose error.

## Hit reaction

Choose:

- additive directional reaction for small impulses that preserve current action;
- Layered Blend per Bone for regional override;
- Montage for authored full/partial-body reaction with timing and interruption;
- physics/ragdoll only when pose animation is no longer the correct model.

Drive direction from hit vector transformed into character local space. Ensure a high-
priority reaction does not silently cancel required gameplay Montages in the same Slot
Group.

## Multiple Slots

- Same Slot and Slot Group: later/active Montage overrides competing playback.
- Different body regions: use separate Slots and combine explicitly in AnimGraph.
- Keep sequence lengths aligned when multiple Slots in one Montage must stay synchronized.
- Document Slot ownership so abilities do not fight over unnamed defaults.

## Child Montages

Use Child Montages for weapon/character animation variants that retain parent Sections,
Notifies, and logic. Replace compatible animation segments; verify automatic play-rate
adjustment does not create implausible motion.

Locomotion patterns

# Locomotion patterns

## 1D idle/walk/run Blend Space

Assets:

- compatible idle, walk, and run/sprint sequences;
- same Skeleton and consistent forward axis;
- compatible gait start phase where possible.

Setup:

1. Create Blend Space 1D for the Skeleton.
2. Name axis `Speed`; use cm/s to match Character Movement velocity.
3. Set axis min/max to the actual locomotion range.
4. Place idle at zero and gait samples at their authored travel speeds.
5. Drive from horizontal velocity magnitude, not full 3D velocity if falling should not
   increase locomotion speed.
6. Add axis smoothing only to remove noisy input; do not use it to hide incorrect
   acceleration or bad sample speeds.
7. Put compatible gait clips in the same Sync Group.
8. Add matching left/right foot Sync Markers when phase drift is visible.

## 2D strafe Blend Space

Common axes:

- `Speed` and local-space `Direction`, or
- local forward velocity and local right velocity.

Procedure:

1. Transform world velocity into character/mesh local space.
2. Match axis ranges to actual movement limits.
3. Place forward/back/left/right/diagonal samples according to authored direction.
4. Preview corners and diagonals, not only axis centers.
5. Validate foot phase across neighboring samples.
6. If diagonal speed differs mechanically, drive the Blend Space with actual local
   velocity rather than normalized input.

## Starts, stops, and pivots

- Keep simple locomotion in a looping Blend Space.
- Add start/stop/pivot states when acceleration direction, planted foot, or authored
  anticipation materially changes the pose.
- Use marker-based sync for run-to-stop or walk-to-run transitions when phases differ.
- Set start/stop animations to an appropriate leader role when they must define phase.
- Use transition rules from movement state, acceleration, direction delta, and time
  remaining—not arbitrary delays alone.

## Aim Offset over locomotion

1. Author/convert directional aim samples as mesh-space additive.
2. Create Aim Offset with yaw/pitch axes.
3. Feed locomotion cached pose into the Aim Offset base pose.
4. Compute aim delta relative to character/mesh facing.
5. Clamp/wrap yaw and pitch to authored limits.
6. Layer weapon recoil after or within the aim layer according to desired space.
7. Verify spine/shoulder deformation at extreme corners.

## Root motion choice

- In-place locomotion: Character/Mover movement is authoritative; animation visualizes it.
- Root-motion action: animation drives movement for the action; use Montages for the
  common networked path.
- Enabling Root Motion from Everything moves AnimGraph evaluation to the Game Thread;
  profile before choosing it broadly.
- Verify capsule/mesh agreement, movement mode, slopes, falling behavior, replication,
  and correction.

## Evaluation checks

- No foot sliding at authored sample speeds.
- No phase double-step during walk/run blends.
- Direction changes do not collapse knees or twist pelvis.
- Acceleration/deceleration visual timing matches movement.
- Falling does not feed incorrect speed/direction into grounded locomotion.
- Network correction does not repeatedly restart or desynchronize gait.

Method selector

# Method selector

| Problem | Primary mechanism | Why | Common misuse |
|---|---|---|---|
| Idle/walk/run over speed | Blend Space 1D | One continuous axis | Separate state per speed |
| Strafing over speed and direction | Blend Space 2D | Two continuous axes | Unsynced directional clips |
| Aim/look over yaw and pitch | Aim Offset | Mesh-space additive directional pose | Ordinary non-additive Blend Space |
| Grounded/falling/swimming/climbing modes | State Machine | Persistent discrete states and transitions | Boolean blend web in main AnimGraph |
| Weapon equipped/unequipped | Blend Poses by Bool/Enum or linked layer | Small discrete variant | Duplicating the entire locomotion machine |
| Run while firing/reloading | Montage Slot + Layered Blend per Bone | Event action over lower-body base | Full-body montage when legs must continue |
| Recoil/breathing/lean | Additive pose | Relative delta over base pose | Treating additive clip as full pose |
| Walk/run cycles drift out of foot phase | Sync Group + Sync Markers | Aligns named gait events | Longer blend duration |
| Abrupt short transition between similar moving poses | Inertialization | Carries outgoing motion without continued source evaluation | Using it between radically different poses |
| One-off attack/combo with sections | Montage | Controlled sequence, sections, notifies, slots | Large state-machine branch |
| Different bones need different transition rates | Blend Profile | Per-bone transition weighting | Multiple arbitrary transition nodes |
| Complex reusable body-mode graph | Linked Anim Layer / Linked Anim Graph | Modular graph ownership | Copy-pasted graphs |

## Decision tests

### Blend Space

Use when the desired pose is a smooth function of one or two measured values. Inputs
must have meaningful units and ranges. Samples should represent comparable motion and
compatible phase.

### State Machine

Use when the animation mode persists and entry/exit rules matter. Keep gameplay truth
outside the state machine; let transitions consume stable variables.

### Montage

Use when gameplay explicitly starts/stops/branches an authored action. Use Sections for
combos or loops and Slots for body-region application. Same-Slot sequences override one
another.

### Layered Blend per Bone

Use for regional full-pose overrides. Select Branch Filter or Blend Mask deliberately.
Define the first affected bone and verify all descendants. Use mesh-space rotation blend
when local-space composition produces shoulder/spine artifacts, then recheck cost and
visual result.

### Additive

Use when the clip represents a delta from a known reference pose. Confirm local-space or
mesh-space additive setup and reference pose before blaming the graph.

### Inertialization

Use for short transitions where preserving outgoing velocity matters more than continuing
to evaluate the source clip. Keep standard crossfade when source Notifies or exact source
phase must remain active through the transition.

UE 5.8 primary sources

# UE 5.8 primary sources

- Epic Games, [Blending Animations](https://dev.epicgames.com/documentation/en-us/unreal-engine/blending-animations-in-unreal-engine)
- Epic Games, [Animation Blueprint Blend Nodes](https://dev.epicgames.com/documentation/unreal-engine/animation-blueprint-blend-nodes-in-unreal-engine?lang=en-US)
- Epic Games, [Blend Spaces](https://dev.epicgames.com/documentation/en-us/unreal-engine/blend-spaces-in-unreal-engine)
- Epic Games, [Blend Spaces in Animation Blueprints](https://dev.epicgames.com/documentation/en-us/unreal-engine/blend-spaces-in-animation-blueprints-in-unreal-engine)
- Epic Games, [State Machines](https://dev.epicgames.com/documentation/en-us/unreal-engine/state-machines-in-unreal-engine)
- Epic Games, [Transition Rules](https://dev.epicgames.com/documentation/en-us/unreal-engine/transition-rules-in-unreal-engine)
- Epic Games, [Animation Sync Groups](https://dev.epicgames.com/documentation/unreal-engine/animation-sync-groups-in-unreal-engine?lang=en-US)
- Epic Games, [Animation Notifies](https://dev.epicgames.com/documentation/en-us/unreal-engine/animation-notifies-in-unreal-engine)
- Epic Games, [Using Layered Animations](https://dev.epicgames.com/documentation/unreal-engine/using-layered-animations-in-unreal-engine?lang=en-US)
- Epic Games, [Animation Montages](https://dev.epicgames.com/documentation/en-us/unreal-engine/animation-montage-in-unreal-engine)
- Epic Games, [Root Motion](https://dev.epicgames.com/documentation/unreal-engine/root-motion-in-unreal-engine)

Version target: Unreal Engine 5.8. Recheck node stability, experimental status, and
threading behavior before using this skill with a later engine version.

Transitions, sync, and inertialization

# Transitions, sync, and inertialization

## Standard state transition

1. Build one directional transition for each allowed direction.
2. Base the rule on stable gameplay/movement variables.
3. Set Priority Order when multiple transitions can be true; smaller number wins.
4. Choose Duration and curve from the visible motion, then test interruptions.
5. Use Blend Profile when body regions should settle at different rates.
6. Use shared transition/crossfade settings only when editing one should intentionally
   change all users.
7. Do not enable Bidirectional; UE 5.8 documentation marks it unsupported.

For non-looping exit:

- Use relevant animation time remaining or Automatic Rule Based on Sequence Player.
- Mark unrelated players `Ignore for Relevancy Test` when they would corrupt the query.
- Test with altered play rate.

## Sync Groups

Use for animations representing the same cyclical action at different rates.

1. Give compatible nodes the same Group Name.
2. Set Method to Sync Group, or Graph when sync is propagated by graph structure.
3. Choose Group Role deliberately; highest-weight animation is leader by default.
4. Ensure clips begin with compatible body phase.
5. Avoid drastic clip-length differences that create play-rate pops.

## Marker-based sync

1. Add shared markers such as `LeftFootDown` and `RightFootDown` to every gait clip.
2. Put animations in the same Sync Group.
3. Ensure marker spelling and order match.
4. Remember: only markers common to all animations in the group are used.
5. If no matching markers exist, UE falls back to length-based syncing.
6. Set start/stop clips as leader where they must control the transition phase.

## Inertialization

Setup:

1. Set compatible transition/blend node Transition Type to Inertialization.
2. Add one Inertialization node after all request sources it should serve.
3. Place it near Output Pose to consolidate requests where appropriate.
4. Apply before final IK in the common whole-body path.
5. Keep requested blend under 0.4 seconds and test shorter first.

Use when:

- outgoing pose is still moving;
- poses are reasonably compatible;
- rapid natural settling is desired;
- source clip no longer needs evaluation.

Avoid when:

- poses are extremely different;
- source Notifies must still fire after transition begins;
- continuous interruptions degrade quality;
- exact crossfade sampling is required.

When multiple requests occur, UE uses the minimum requested duration.

## Dead Blending

Dead Blending predicts outgoing motion and may handle large differences better, but UE
5.8 labels the node experimental and does not recommend shipping projects that depend
on it. Use only for evaluation with an explicit Inertialization/standard-blend fallback.

Troubleshooting

# Troubleshooting

| Symptom | Likely cause | Action |
|---|---|---|
| Feet double-step during blend | Gait clips out of phase | Add matching Sync Group and foot markers |
| Feet slide at steady speed | Sample authored speed differs from movement speed | Place sample at measured speed; use stride/play-rate solution deliberately |
| Pop entering state | Pose discontinuity, zero/short blend, bad reference pose | Inspect source/target poses; tune crossfade/profile or use compatible inertialization |
| Inertialization logs runtime error | Request exists without downstream node | Add Inertialization after request source |
| Important source Notify never fires | Inertialization stops source evaluation | Use standard blend or move gameplay event ownership |
| Inertial blend looks stiff/broken | Poses too different or repeated interruptions | Use standard/custom blend; reduce interruptions |
| Upper body action moves legs | Branch root too high/low or wrong Blend Mask | Inspect affected hierarchy and blend depth/mask |
| Shoulder/spine twists | Local-space regional rotation composition | Test mesh-space rotation blend; fix additive/reference setup |
| Aim Offset explodes at extremes | Samples not mesh-space additive or bad axis/wrap | Correct additive setup; clamp/wrap inputs; inspect corner samples |
| Montage does not appear | Slot node absent/wrong Slot or Slot Group conflict | Add matching Slot to AnimGraph; inspect competing Montages |
| Montage cancels another action | Same Slot Group owns both | Separate ownership/Slots or define priority/cancel policy |
| Transition chooses wrong path | Competing true rules / priority | Set explicit Priority Order and simplify state truth |
| Time Remaining is wrong | Multiple relevant players | Enable Ignore for Relevancy Test on unrelated players |
| Notifies fire from tiny blend weight | Trigger Weight Threshold too low | Raise threshold and test blend edges |
| Network root motion diverges | Montage/RPC/authority mismatch | Make gameplay authoritative; replicate montage trigger and verify correction |
| Returning state resumes midway | `Always Reset on Entry` disabled | Enable when restart is intended; leave disabled only for resume behavior |

## Debug sequence

1. Inspect live Animation Blueprint and active state weights.
2. Display relevant variables: speed, local direction, movement mode, action state.
3. Preview Blend Space at actual runtime coordinates.
4. Inspect Sync Group leader/follower and marker names.
5. Temporarily bypass overlays to isolate base locomotion.
6. Re-enable Slot, additive, regional blend, and IK one stage at a time.
7. Inspect Montage instance, Slot Group, Sections, and blend weights.
8. Test interruption at start, midpoint, and blend out.
9. Test low frame rate and network latency where applicable.

## Acceptance checks

- Phase remains stable across gait blends.
- No visible pop at normal or interrupted transitions.
- Regional actions affect only intended bones.
- Gameplay events fire exactly once at the intended authority.
- Root motion and capsule remain aligned.
- Graph remains understandable and does not duplicate persistent gameplay truth.


unreal-animation-montages

Unreal 5.8 Animation Montages

Build and debug gameplay animation actions

---
name: unreal-animation-montages
description: Design, play, branch, layer, cancel, replicate, and debug Animation Montages in Unreal Engine 5.8. Use for attacks, dodges, reloads, interactions, abilities, Slots and Slot Groups, Montage Sections, combos, loops, Anim Notifies and Notify States, branching points, cancel windows, root motion, GAS Play Montage and Wait, interruptions, network playback, child montages, or gameplay animation timing.
---

# Unreal 5.8 Animation Montages

## Ownership boundary

This skill owns authored action playback, Slots, Sections, notify-timed windows, branching, and
interruption. Route final pose composition to
[`unreal-animation-blending`](../unreal-animation-blending/SKILL.md), authoritative Character
displacement and prediction to [`unreal-character-movement`](../unreal-character-movement/SKILL.md),
and ability activation/cost/cooldown ownership to
[`unreal-gas-abilities`](../unreal-gas-abilities/SKILL.md).

## Use Montages for bounded actions

Read [`references/action-selector.md`](references/action-selector.md).

Use a Montage when gameplay starts a discrete authored action and needs explicit playback,
sections, events, interruption, or root-motion control. Keep persistent locomotion in a State
Machine, Blend Space, or Motion Matching system. A Montage inserts an action through an AnimGraph
Slot; it does not replace the underlying gameplay state machine.

## Execute

1. Define action authority, eligibility, commitment, cancel, completion, and interruption states.
2. Choose full-body or regional layering and create the matching Slot/Slot Group path.
3. Build named Sections around semantic phases; define default and runtime transitions.
4. Add Notifies/Notify States only for events that must follow animation time.
5. Choose playback API: gameplay/AnimInstance, Character proxy node, or GAS Ability Task.
6. Define root-motion ownership and movement/collision behavior for every section.
7. Implement all completion, blend-out, interruption, cancellation, and owner-destruction exits.
8. Test network roles, variable frame rates, late interruption, and section boundaries.

Load only what applies:

- [`references/asset-sections-and-slots.md`](references/asset-sections-and-slots.md)
- [`references/playback-and-lifecycle.md`](references/playback-and-lifecycle.md)
- [`references/notifies-and-gameplay-windows.md`](references/notifies-and-gameplay-windows.md)
- [`references/combos-loops-and-variants.md`](references/combos-loops-and-variants.md)
- [`references/root-motion-and-movement.md`](references/root-motion-and-movement.md)
- [`references/gas-and-networking.md`](references/gas-and-networking.md)
- [`references/debugging-patterns.md`](references/debugging-patterns.md)

## Required answer format

Return:

1. **Action owner and authority** with eligibility/commitment/cancel rules.
2. **Montage, Slot/Group, body-region, and root-motion assumptions**.
3. **Named Sections and transition graph**.
4. **Playback API and exact callbacks handled**.
5. **Notifies/windows with cosmetic versus authoritative responsibility**.
6. **Interruption, GAS, replication, movement, and cleanup consequences**.
7. **Acceptance cases across frame rate and network roles**.

## Hard rules

- A matching Slot node must exist in the evaluated AnimGraph path or the Montage is invisible.
- Sequences in the same Slot/Slot Group can override or interfere; design concurrency explicitly.
- Sections describe playback topology; gameplay state decides whether a transition is legal.
- Treat Notify delivery as animation-timed signaling, not sole authority for irreversible gameplay.
- Use Branching Point timing only when its synchronous precision justifies higher cost.
- `Play Montage` exposes Montage Notify callbacks; `Play Anim Montage` does not expose the same proxy callbacks.
- Handle Completed, Blend Out, Interrupted, and Cancelled as distinct outcomes.
- Playing a Montage locally is not a complete network contract. Replicate/predict the gameplay action
  and trigger appropriate playback per role; root-motion correction does not replicate gameplay logic.
- Use `Root Motion from Montages Only` when the networked design relies on montage root motion.
- Keep Motion Matching/State Machines as the locomotion base; place final IK after action blending.

See [`references/sources.md`](references/sources.md) for the UE 5.8 source trail.

## Ownership boundary

This skill owns authored action playback, Slots, Sections, notify-timed windows, branching, and
interruption. Route final pose composition to
[`unreal-animation-blending`](/unreal/unreal-animation-blending/), authoritative Character
displacement and prediction to [`unreal-character-movement`](/unreal/unreal-character-movement/),
and ability activation/cost/cooldown ownership to
[`unreal-gas-abilities`](/unreal/unreal-gas-abilities/).

## Use Montages for bounded actions

Read [`references/action-selector.md`](/unreal/unreal-animation-montages/action-selector/).

Use a Montage when gameplay starts a discrete authored action and needs explicit playback,
sections, events, interruption, or root-motion control. Keep persistent locomotion in a State
Machine, Blend Space, or Motion Matching system. A Montage inserts an action through an AnimGraph
Slot; it does not replace the underlying gameplay state machine.

## Execute

1. Define action authority, eligibility, commitment, cancel, completion, and interruption states.
2. Choose full-body or regional layering and create the matching Slot/Slot Group path.
3. Build named Sections around semantic phases; define default and runtime transitions.
4. Add Notifies/Notify States only for events that must follow animation time.
5. Choose playback API: gameplay/AnimInstance, Character proxy node, or GAS Ability Task.
6. Define root-motion ownership and movement/collision behavior for every section.
7. Implement all completion, blend-out, interruption, cancellation, and owner-destruction exits.
8. Test network roles, variable frame rates, late interruption, and section boundaries.

Load only what applies:

- [`references/asset-sections-and-slots.md`](/unreal/unreal-animation-montages/asset-sections-and-slots/)
- [`references/playback-and-lifecycle.md`](/unreal/unreal-animation-montages/playback-and-lifecycle/)
- [`references/notifies-and-gameplay-windows.md`](/unreal/unreal-animation-montages/notifies-and-gameplay-windows/)
- [`references/combos-loops-and-variants.md`](/unreal/unreal-animation-montages/combos-loops-and-variants/)
- [`references/root-motion-and-movement.md`](/unreal/unreal-animation-montages/root-motion-and-movement/)
- [`references/gas-and-networking.md`](/unreal/unreal-animation-montages/gas-and-networking/)
- [`references/debugging-patterns.md`](/unreal/unreal-animation-montages/debugging-patterns/)

## Required answer format

Return:

1. **Action owner and authority** with eligibility/commitment/cancel rules.
2. **Montage, Slot/Group, body-region, and root-motion assumptions**.
3. **Named Sections and transition graph**.
4. **Playback API and exact callbacks handled**.
5. **Notifies/windows with cosmetic versus authoritative responsibility**.
6. **Interruption, GAS, replication, movement, and cleanup consequences**.
7. **Acceptance cases across frame rate and network roles**.

## Hard rules

- A matching Slot node must exist in the evaluated AnimGraph path or the Montage is invisible.
- Sequences in the same Slot/Slot Group can override or interfere; design concurrency explicitly.
- Sections describe playback topology; gameplay state decides whether a transition is legal.
- Treat Notify delivery as animation-timed signaling, not sole authority for irreversible gameplay.
- Use Branching Point timing only when its synchronous precision justifies higher cost.
- `Play Montage` exposes Montage Notify callbacks; `Play Anim Montage` does not expose the same proxy callbacks.
- Handle Completed, Blend Out, Interrupted, and Cancelled as distinct outcomes.
- Playing a Montage locally is not a complete network contract. Replicate/predict the gameplay action
  and trigger appropriate playback per role; root-motion correction does not replicate gameplay logic.
- Use `Root Motion from Montages Only` when the networked design relies on montage root motion.
- Keep Motion Matching/State Machines as the locomotion base; place final IK after action blending.

See [`references/sources.md`](/unreal/unreal-animation-montages/sources/) for the UE 5.8 source trail.

unreal 5.8 animation montages design, play, branch, layer, cancel, replicate, and debug animation montages in unreal engine 5.8. use for attacks, dodges, reloads, interactions, abilities, slots and slot groups, montage sections, combos, loops, anim notifies and notify states, branching points, cancel windows, root motion, gas play montage and wait, interruptions, network playback, child montages, or gameplay animation timing. action selector action selector | need | prefer | avoid | |---|---|---| | persistent locomotion/mode | state machine, blend space, motion matching | long looping montage as primary locomotion | | one-shot full-body action | montage through full-body slot | state explosion for every action | | upper-body action over locomotion | montage slot + layered blend per bone | replacing the locomotion base | | start-loop-end action | montage sections with runtime next-section change | restarting separate assets every loop | | contextual animation variant, same timing contract | child montage or data-selected montage | branching gameplay logic inside animation assets | | gas-owned ability action | play montage and wait ability task | unmanaged montage lifecycle | | pure cosmetic one-frame response | short montage or additive blend by complexity | authoritative gameplay in a cosmetic notify | before authoring, write: - who may start the action; - when commitment begins; - which inputs buffer or cancel it; - whether locomotion continues underneath; - who owns displacement/collision; - which outcomes are completed, interrupted, or cancelled. if those are undefined, additional montage sections will conceal rather than solve the design gap. asset, sections, and slots asset, sections, and slots create create via content browser -> animation -> animation montage and choose the skeleton, or right-click an animation sequence -> create -> create animmontage. add sequences to the slot track. sections create named sections at semantic boundaries, for example start, loop, release, recovery, or combo stages. a section must begin at montage time zero. in the sections panel, define the default next section and preview each path. keep names stable because blueprint/c++ and gas may reference them. use montage set next section to relink what follows the current section, such as changing start -> loop -> loop into loop -> end. use an immediate jump only when skipping the remaining current-section motion is intended. slots and slot groups add slot nodes to the animgraph at the point where actions should enter. a montage exclusively plays through its slot; a missing or bypassed node yields no visible pose. use separate slot groups/body regions only when simultaneous actions are intended, then layer them explicitly. avoid overlapping sequence segments on one slot. when multiple slot tracks represent variants, align their end-to-end timing and section boundaries so runtime section calls mean the same thing. typical regional order: locomotion base -> upper-body slot -> layered blend per bone/mask -> inertialization if used -> final ik. full-body actions may use a slot after locomotion and replace it. combos, loops, and variants combos, loops, and variants combo sections create one section per committed stage and explicit recovery/exit. during an input window, gameplay buffers the next action. after validation, call montage set next section for the current stage to link to the next. if no valid input arrives, retain or relink to recovery. do not jump based solely on the input press; use the action's legal cancel/chain window. protect against stale input by tagging the buffered request with the current action/stage instance. clear it on consumption, interruption, cancellation, owner change, and timeout. start-loop-end default graph: start -> loop, loop -> loop, end -> complete. when gameplay ends the held action, relink loop -> end. define behavior when release happens during start, after the loop boundary, or while blending out. child montages use a child montage to replace animation segments while inheriting the parent's section/notify/slot contract. unreal adjusts replacement playback to the parent's time range, so visually inspect speed, contacts, root motion, and notify alignment. child montages cannot parent another child. use separate parent montages when variants have different gameplay timing or topology. do not force substantially different attacks into one inherited timing contract merely to reuse code. concurrent actions slots in the same group can interrupt each other. separate groups allow concurrency but can create conflicting bone ownership, root motion, or gameplay lifecycles. define precedence explicitly and test reload+hit reaction, aim+fire, and action+death cases. debugging patterns debugging patterns isolation ladder 1. confirm the skeletal mesh uses the expected animbp and skeleton. 2. play the montage in its editor and preview the intended section path/slot. 3. confirm the matching slot node lies on the evaluated animgraph path. 4. play without layering; then restore layered blend per bone/masks. 5. log play return, active montage/instance, current section, position, weight, and callbacks. 6. disable root motion and notifies separately to isolate pose versus gameplay/movement faults. 7. test standalone, listen server, owning client, simulated client, and dedicated server. | symptom | first check | |---|---| | montage reports playing but invisible | missing/bypassed slot node, wrong slot/group | | upper body affects legs | layer branch bone/mask and mesh skeleton | | stops unexpectedly | competing montage in same slot group, ability cancel | | combo never advances | section names, current section, next-section relink timing | | loop never exits | wrong from section, relink after boundary, stale input | | notify callback absent | playback node type, montage notify type, slot/link/filter settings | | end event missing | interruption/cancel path not handled | | mesh snaps to capsule | root motion disabled/mode mismatch/root lock | | server/client differ | playback trigger and gameplay state not replicated/predicted coherently | | works at normal rate only | notify window/section boundary tied to frames rather than semantics | acceptance suite: early/late cancel, overlapping action request, same-group interruption, death/stun, owner destruction, extreme play rate, low fps, root-motion obstacle, network latency/loss, and every terminal callback. gas and networking gas and networking gas use play montage and wait when the gameplay ability owns the action. supply montage, rate, optional start section/time, root-motion translation scale, and stop when ability ends deliberately. handle every output: - on completed: normal montage completion. - on blend out: visual blend-out began; not identical to completion. - on interrupted: another montage/action displaced it. - on cancelled: task/ability cancellation. - on blended in: optional point when full action pose is established. the task always stops on explicit ability cancellation. if stop when ability ends is true, normal ability end also aborts it. end/cancel the ability and clean gameplay windows on all terminal paths. custom projects often combine montage waiting with gameplay events; keep event tags and action instance validation explicit. network contract starting a montage on one machine does not by itself start equivalent gameplay on every peer. the server validates the action; the owning client may predict if the system supports it; simulated peers receive replicated gameplay state/cues or an appropriate multicast/ability path and play presentation. epic's montage documentation notes that an rpc must carry the play montage trigger; only root-motion replication/correction is carried by the root-motion movement path. notifies, sections, hit results, and arbitrary gameplay state are not automatically replicated by root-motion correction. test authority, autonomous proxy, simulated proxy, dedicated server, latency/loss, correction during root motion, cancellation, relevancy loss, and replay/late state. deduplicate predicted cosmetic cues when confirmed events arrive. notifies and gameplay windows notifies and gameplay windows choose the signal - anim notify: one instant, such as a footstep or cosmetic cue. - notify state: begin/tick/end window, such as trace-active, invulnerability, or input acceptance. - montage notify / montage notify window: emits play montage proxy notify callbacks. - branching point timing: precise synchronous ordering for a gameplay branch; more expensive. - queued timing: asynchronous and cheaper when minor frame imprecision is acceptable. trigger weight threshold, lod filtering, dedicated-server firing, follower behavior, trigger chance, and link method can all change delivery. choose relative/proportional linking when a notify should follow a moved/scaled montage segment; use absolute only when timeline position must remain fixed. authority boundary use notifies to align presentation and request bounded gameplay transitions. the gameplay owner still checks current action instance, authority, targets, and idempotence before applying damage or durable state. network peers can cross an animation frame at different times; a cosmetic notify is not proof that the server accepted the action. for melee, a robust window is: 1. server/predicted ability owns the attack; 2. notify state begins and enables a trace for that action instance; 3. each target is deduplicated; 4. authoritative hit validation applies effects; 5. notify state ends or interruption cleanup disables the trace. test skipped sections, high play rate, low frame rate, blend-out during a window, and interruption before both begin and end. playback and lifecycle playback and lifecycle choose playback api - animinstance montage functions: direct control for systems already owning the animinstance. - play montage proxy node: exposes completed, blend out, interrupted, notify begin, and notify end. - play anim montage: simpler character convenience function, without the same proxy notify outputs. - gas play montage and wait: action lifecycle owned by a gameplay ability. ordered lifecycle 1. gameplay verifies eligibility and commits the action at the intended point. 2. set required state/parameters before playback. 3. play the montage at rate/start section or time. 4. treat a failed/zero-length play result as failure and unwind state. 5. react to notify windows and section changes without assuming completion. 6. on blend out, stop spawning new action work if visual recovery has begun. 7. on completed, perform normal cleanup/completion. 8. on interrupted or cancelled, perform interruption cleanup and rollback only what is reversible. 9. clean up when owner/ability ends even if no expected callback arrives. do not bind a second action to stale callbacks from the first. when using delegates in c++, bind them to the specific montage instance/lifecycle and unbind on cleanup. stopping with blend time does not mean the action remains gameplay-active for that blend. define whether commitment ends at cancel request, blend-out start, notify end, or montage completion. root motion and movement root motion and movement contract 1. verify the source asset has an animated root bone and enable root motion is set. 2. choose root motion root lock: reference pose, animation first frame, or zero, based on the asset. 3. in animbp class defaults choose the intended root motion mode. for network-oriented montage root motion, use root motion from montages only. 4. decide how character movement mode handles vertical displacement. walking/falling apply movement physics differently from flying. 5. test capsule/mesh alignment, collision, slopes, stairs, interruption, correction, and blend-out. root motion moves the collision-owning character through the movement system; do not separately add the same displacement in gameplay code. conversely, in-place actions need code-driven movement when displacement matters. section/cancel hazards - jumping into a section can skip root displacement that the following frames assume occurred. - interrupting a lunge must leave capsule and mesh aligned and define remaining momentum. - scaling montage play rate changes displacement timing and gameplay windows. - child montage replacements may preserve timeline length while changing actual root trajectory. - root motion modes move animgraph work to the game thread; profile target characters. for directional or target-aligned actions, use motion/rotation warping only after the source root, target transform, sync points, and maximum allowed warp are explicit. gameplay collision and target validity remain authoritative. ue 5.8 primary sources ue 5.8 primary sources - animation montage - editing and using animation montage - animation slots - animation notifies - montage set next section - root motion - gameplay ability tasks - play montage and wait - uabilitytask playmontageandwait api - character movement networking pages were checked against the ue 5.8 documentation on 2026-07-19. reconfirm callback behavior, network assumptions, root-motion policy, and node/api names after an engine upgrade.

Action selector

# Action selector

| Need | Prefer | Avoid |
|---|---|---|
| Persistent locomotion/mode | State Machine, Blend Space, Motion Matching | long looping Montage as primary locomotion |
| One-shot full-body action | Montage through full-body Slot | state explosion for every action |
| Upper-body action over locomotion | Montage Slot + Layered Blend per Bone | replacing the locomotion base |
| Start-loop-end action | Montage Sections with runtime next-section change | restarting separate assets every loop |
| Contextual animation variant, same timing contract | Child Montage or data-selected Montage | branching gameplay logic inside animation assets |
| GAS-owned ability action | Play Montage and Wait Ability Task | unmanaged montage lifecycle |
| Pure cosmetic one-frame response | short Montage or additive blend by complexity | authoritative gameplay in a cosmetic notify |

Before authoring, write:

- who may start the action;
- when commitment begins;
- which inputs buffer or cancel it;
- whether locomotion continues underneath;
- who owns displacement/collision;
- which outcomes are completed, interrupted, or cancelled.

If those are undefined, additional Montage Sections will conceal rather than solve the design gap.

Asset, Sections, and Slots

# Asset, Sections, and Slots

## Create

Create via Content Browser -> Animation -> Animation Montage and choose the Skeleton, or right-click
an Animation Sequence -> Create -> Create AnimMontage. Add sequences to the Slot track.

## Sections

Create named Sections at semantic boundaries, for example `Start`, `Loop`, `Release`, `Recovery`,
or combo stages. A Section must begin at montage time zero. In the Sections panel, define the default
next section and preview each path. Keep names stable because Blueprint/C++ and GAS may reference them.

Use `Montage Set Next Section` to relink what follows the current section, such as changing
`Start -> Loop -> Loop` into `Loop -> End`. Use an immediate jump only when skipping the remaining
current-section motion is intended.

## Slots and Slot Groups

Add Slot nodes to the AnimGraph at the point where actions should enter. A Montage exclusively plays
through its Slot; a missing or bypassed node yields no visible pose. Use separate Slot Groups/body
regions only when simultaneous actions are intended, then layer them explicitly.

Avoid overlapping sequence segments on one Slot. When multiple Slot tracks represent variants, align
their end-to-end timing and Section boundaries so runtime section calls mean the same thing.

Typical regional order: locomotion base -> upper-body Slot -> Layered Blend per Bone/mask ->
inertialization if used -> final IK. Full-body actions may use a Slot after locomotion and replace it.

Combos, loops, and variants

# Combos, loops, and variants

## Combo sections

Create one Section per committed stage and explicit recovery/exit. During an input window, gameplay
buffers the next action. After validation, call `Montage Set Next Section` for the current stage to
link to the next. If no valid input arrives, retain or relink to recovery. Do not jump based solely on
the input press; use the action's legal cancel/chain window.

Protect against stale input by tagging the buffered request with the current action/stage instance.
Clear it on consumption, interruption, cancellation, owner change, and timeout.

## Start-loop-end

Default graph: `Start -> Loop`, `Loop -> Loop`, `End -> complete`. When gameplay ends the held action,
relink `Loop -> End`. Define behavior when release happens during Start, after the loop boundary, or
while blending out.

## Child Montages

Use a Child Montage to replace animation segments while inheriting the parent's section/notify/slot
contract. Unreal adjusts replacement playback to the parent's time range, so visually inspect speed,
contacts, root motion, and notify alignment. Child Montages cannot parent another child.

Use separate parent Montages when variants have different gameplay timing or topology. Do not force
substantially different attacks into one inherited timing contract merely to reuse code.

## Concurrent actions

Slots in the same group can interrupt each other. Separate groups allow concurrency but can create
conflicting bone ownership, root motion, or gameplay lifecycles. Define precedence explicitly and
test reload+hit reaction, aim+fire, and action+death cases.

Debugging patterns

# Debugging patterns

## Isolation ladder

1. Confirm the Skeletal Mesh uses the expected AnimBP and Skeleton.
2. Play the Montage in its editor and preview the intended Section path/Slot.
3. Confirm the matching Slot node lies on the evaluated AnimGraph path.
4. Play without layering; then restore Layered Blend per Bone/masks.
5. Log play return, active montage/instance, current Section, position, weight, and callbacks.
6. Disable root motion and notifies separately to isolate pose versus gameplay/movement faults.
7. Test standalone, listen server, owning client, simulated client, and dedicated server.

| Symptom | First check |
|---|---|
| Montage reports playing but invisible | missing/bypassed Slot node, wrong Slot/Group |
| Upper body affects legs | layer branch bone/mask and mesh skeleton |
| Stops unexpectedly | competing montage in same Slot Group, ability cancel |
| Combo never advances | Section names, current Section, next-section relink timing |
| Loop never exits | wrong `From Section`, relink after boundary, stale input |
| Notify callback absent | playback node type, Montage Notify type, Slot/link/filter settings |
| End event missing | interruption/cancel path not handled |
| Mesh snaps to capsule | root motion disabled/mode mismatch/root lock |
| Server/client differ | playback trigger and gameplay state not replicated/predicted coherently |
| Works at normal rate only | notify window/section boundary tied to frames rather than semantics |

Acceptance suite: early/late cancel, overlapping action request, same-group interruption, death/stun,
owner destruction, extreme play rate, low FPS, root-motion obstacle, network latency/loss, and every
terminal callback.

GAS and networking

# GAS and networking

## GAS

Use `Play Montage and Wait` when the Gameplay Ability owns the action. Supply Montage, rate, optional
start Section/time, root-motion translation scale, and `Stop when Ability Ends` deliberately.

Handle every output:

- **On Completed**: normal montage completion.
- **On Blend Out**: visual blend-out began; not identical to completion.
- **On Interrupted**: another montage/action displaced it.
- **On Cancelled**: task/ability cancellation.
- **On Blended In**: optional point when full action pose is established.

The task always stops on explicit ability cancellation. If Stop When Ability Ends is true, normal
ability end also aborts it. End/cancel the ability and clean gameplay windows on all terminal paths.
Custom projects often combine montage waiting with Gameplay Events; keep event tags and action
instance validation explicit.

## Network contract

Starting a Montage on one machine does not by itself start equivalent gameplay on every peer. The
server validates the action; the owning client may predict if the system supports it; simulated peers
receive replicated gameplay state/cues or an appropriate multicast/ability path and play presentation.

Epic's Montage documentation notes that an RPC must carry the Play Montage trigger; only root-motion
replication/correction is carried by the root-motion movement path. Notifies, Sections, hit results,
and arbitrary gameplay state are not automatically replicated by root-motion correction.

Test authority, autonomous proxy, simulated proxy, dedicated server, latency/loss, correction during
root motion, cancellation, relevancy loss, and replay/late state. Deduplicate predicted cosmetic cues
when confirmed events arrive.

Notifies and gameplay windows

# Notifies and gameplay windows

## Choose the signal

- **Anim Notify**: one instant, such as a footstep or cosmetic cue.
- **Notify State**: begin/tick/end window, such as trace-active, invulnerability, or input acceptance.
- **Montage Notify / Montage Notify Window**: emits Play Montage proxy notify callbacks.
- **Branching Point timing**: precise synchronous ordering for a gameplay branch; more expensive.
- **Queued timing**: asynchronous and cheaper when minor frame imprecision is acceptable.

`Trigger Weight Threshold`, LOD filtering, dedicated-server firing, follower behavior, trigger chance,
and link method can all change delivery. Choose Relative/Proportional linking when a notify should
follow a moved/scaled montage segment; use Absolute only when timeline position must remain fixed.

## Authority boundary

Use notifies to align presentation and request bounded gameplay transitions. The gameplay owner still
checks current action instance, authority, targets, and idempotence before applying damage or durable
state. Network peers can cross an animation frame at different times; a cosmetic notify is not proof
that the server accepted the action.

For melee, a robust window is:

1. server/predicted ability owns the attack;
2. Notify State begins and enables a trace for that action instance;
3. each target is deduplicated;
4. authoritative hit validation applies effects;
5. Notify State ends or interruption cleanup disables the trace.

Test skipped sections, high play rate, low frame rate, blend-out during a window, and interruption
before both Begin and End.

Playback and lifecycle

# Playback and lifecycle

## Choose playback API

- **AnimInstance Montage functions**: direct control for systems already owning the AnimInstance.
- **Play Montage proxy node**: exposes Completed, Blend Out, Interrupted, Notify Begin, and Notify End.
- **Play Anim Montage**: simpler Character convenience function, without the same proxy notify outputs.
- **GAS Play Montage and Wait**: action lifecycle owned by a Gameplay Ability.

## Ordered lifecycle

1. Gameplay verifies eligibility and commits the action at the intended point.
2. Set required state/parameters before playback.
3. Play the Montage at rate/start section or time.
4. Treat a failed/zero-length play result as failure and unwind state.
5. React to notify windows and section changes without assuming completion.
6. On Blend Out, stop spawning new action work if visual recovery has begun.
7. On Completed, perform normal cleanup/completion.
8. On Interrupted or Cancelled, perform interruption cleanup and rollback only what is reversible.
9. Clean up when owner/ability ends even if no expected callback arrives.

Do not bind a second action to stale callbacks from the first. When using delegates in C++, bind them
to the specific montage instance/lifecycle and unbind on cleanup.

Stopping with blend time does not mean the action remains gameplay-active for that blend. Define
whether commitment ends at cancel request, blend-out start, notify end, or montage completion.

Root motion and movement

# Root motion and movement

## Contract

1. Verify the source asset has an animated root bone and Enable Root Motion is set.
2. Choose Root Motion Root Lock: reference pose, animation first frame, or zero, based on the asset.
3. In AnimBP Class Defaults choose the intended Root Motion Mode. For network-oriented montage root
   motion, use **Root Motion from Montages Only**.
4. Decide how Character Movement mode handles vertical displacement. Walking/Falling apply movement
   physics differently from Flying.
5. Test capsule/mesh alignment, collision, slopes, stairs, interruption, correction, and blend-out.

Root motion moves the collision-owning character through the movement system; do not separately add
the same displacement in gameplay code. Conversely, in-place actions need code-driven movement when
displacement matters.

## Section/cancel hazards

- Jumping into a Section can skip root displacement that the following frames assume occurred.
- Interrupting a lunge must leave capsule and mesh aligned and define remaining momentum.
- Scaling montage play rate changes displacement timing and gameplay windows.
- Child Montage replacements may preserve timeline length while changing actual root trajectory.
- Root Motion modes move AnimGraph work to the Game Thread; profile target characters.

For directional or target-aligned actions, use motion/rotation warping only after the source root,
target transform, sync points, and maximum allowed warp are explicit. Gameplay collision and target
validity remain authoritative.

UE 5.8 primary sources

# UE 5.8 primary sources

- [Animation Montage](https://dev.epicgames.com/documentation/en-us/unreal-engine/animation-montage-in-unreal-engine)
- [Editing and Using Animation Montage](https://dev.epicgames.com/documentation/en-us/unreal-engine/animation-montage-editor-in-unreal-engine)
- [Animation Slots](https://dev.epicgames.com/documentation/en-us/unreal-engine/animation-slots-in-unreal-engine)
- [Animation Notifies](https://dev.epicgames.com/documentation/en-us/unreal-engine/animation-notifies-in-unreal-engine)
- [Montage Set Next Section](https://dev.epicgames.com/documentation/en-us/unreal-engine/BlueprintAPI/Animation/Montage/MontageSetNextSection)
- [Root Motion](https://dev.epicgames.com/documentation/en-us/unreal-engine/root-motion-in-unreal-engine)
- [Gameplay Ability Tasks](https://dev.epicgames.com/documentation/en-us/unreal-engine/gameplay-ability-tasks-in-unreal-engine)
- [Play Montage and Wait](https://dev.epicgames.com/documentation/en-us/unreal-engine/BlueprintAPI/Ability/Tasks/PlayMontageAndWait)
- [UAbilityTask PlayMontageAndWait API](https://dev.epicgames.com/documentation/en-us/unreal-engine/API/Plugins/GameplayAbilities/UAbilityTask_PlayMontageAndWait)
- [Character Movement Networking](https://dev.epicgames.com/documentation/en-us/unreal-engine/understanding-networked-movement-in-the-character-movement-component-for-unreal-engine)

Pages were checked against the UE 5.8 documentation on 2026-07-19. Reconfirm callback behavior,
network assumptions, root-motion policy, and node/API names after an engine upgrade.