Quick answer: Motion Matching picks the database pose closest to the current pose and the desired trajectory. If the character stays in idle, the trajectory input is missing or the schema has no trajectory channel. If it pops, raise the blend time and add continuing-pose bias. If it picks the wrong clips, the database is incomplete or not indexed. The Rewind Debugger shows exactly what it chose and why.
Motion Matching in UE 5.4 and later (the Pose Search plugin, showcased by the Game Animation Sample) replaces state machines with a search over your animation data. When it misbehaves there is no state machine to inspect, which makes it feel like a black box. It is not: every symptom maps to one of a handful of inputs.
- How the search works, briefly
- Check 1: plugins and assets
- Symptom: the character stays in idle or does not start moving
- Symptom: popping, jitter or flip-flopping between clips
- Symptom: foot sliding
- Symptom: wrong animation chosen (backwards, sideways, mirrored)
- Use the Rewind Debugger
- After it ships
- Related problems
- Frequently asked questions
How the search works, briefly
Each frame (or at a set interval), the Motion Matching node in your Anim Blueprint compares the character's current state with every pose in the active Pose Search Database. The Pose Search Schema defines what is compared: channels for bone positions and velocities, and a trajectory channel describing where the character has been and is about to go. The lowest-cost pose wins and the node blends to it. So problems come from four places: the data, the schema, the trajectory you feed in, and the node's blend settings.
Check 1: plugins and assets
- The Pose Search plugin is enabled, plus the plugins your setup uses alongside it (typically Animation Warping and Chooser; the Game Animation Sample enables these).
- The database, schema and animations all use the same skeleton. Animations on a different skeleton are not indexed.
- The database has finished indexing. Open it: the preview and pose count should be populated. Large databases index in the background after edits; until they finish, searches return nothing useful.
- If databases are chosen through a Chooser Table, a row actually matches your current state. When no row matches, the node has no database to search.
Symptom: the character stays in idle or does not start moving
The search has no reason to leave the idle clip, which almost always means it does not know where the character wants to go.
- The trajectory is not being fed in. In UE 5.4 the sample generated it from a Character Trajectory component on the pawn; from 5.5 it is generated in the Anim Blueprint and passed through a Pose History node with trajectory generation enabled. Whichever version you use, confirm the trajectory pin on the Motion Matching node is connected and that the source updates every frame.
- The schema has no trajectory channel, so the search only matches pose continuity and keeps continuing the idle.
- The database has no starts. If your locomotion set only contains loops and stops, there is no clip whose trajectory matches “standing still now, moving soon”. Add start animations in each direction you need.
Symptom: popping, jitter or flip-flopping between clips
- Blend time on the Motion Matching node is too short. Values around 0.2 to 0.4 seconds are typical for locomotion; zero makes every selection a visible snap.
- The search keeps changing its mind between two nearly equal candidates. Favor the current clip with a negative continuing pose cost bias on the database, and use the node's settings that prevent re-selecting recently used poses.
- Trajectory noise. A trajectory built from raw input jitters, and every jitter changes the best match. Smooth the input or rely on the movement component's acceleration rather than the stick directly.
Symptom: foot sliding
Motion Matching selects animations; your movement component still moves the capsule. When the capsule moves at a speed or acceleration the animations never show, feet slide. Two fixes, usually combined:
- Tune the Character Movement component (max speed, max acceleration, braking deceleration, ground friction) so its movement resembles the data. The Game Animation Sample's character is a good reference.
- Correct the remaining mismatch with Stride Warping and Orientation Warping after the Motion Matching node.
Symptom: wrong animation chosen (backwards, sideways, mirrored)
- The database simply lacks a good match, for example no strafe-left clip, so the closest cost is a bad one. Coverage matters more than tuning.
- Channel weights in the schema favor the pose over the trajectory (or the reverse). Raise the trajectory weight if the character ignores direction changes.
- Mirroring is enabled in the database without a correct Mirror Data Table for the skeleton, so mirrored candidates are wrong.
Use the Rewind Debugger
Open Tools > Debug > Rewind Debugger, start recording, play until the problem happens, then scrub back. Pose Search adds its own track: for each frame you can see which database was searched, which pose was selected, its cost broken down by channel, and the runners-up. “Idle selected because trajectory cost is zero for every candidate” or “two clips alternating within 0.01 cost” is visible directly, and turns guessing into a specific fix.
After it ships
Animation systems rarely crash, but they produce the bugs players describe worst: “the character glitched”. Bugnet's Unreal SDK lets your UMG menu call ReportBug() so players can file a report with a screenshot, the level and their hardware attached, which beats trying to reproduce a one-line Steam review.
Related problems
- Fix: Unreal Engine Motion Warping Not Aligning to Target
- How to Fix Control Rig Foot IK Sliding During Locomotion in Unreal
- Fix: Unreal Animation Blueprint Not Updating
Frequently asked questions
Why is my Unreal Motion Matching character stuck in idle?
The search has no trajectory telling it where the character wants to go, or the database has no start animations. Connect the trajectory input to the Motion Matching node and make sure the schema includes a trajectory channel.
How do I stop Motion Matching from popping between animations?
Increase the blend time on the Motion Matching node, add a negative continuing pose cost bias on the database, and smooth the trajectory input.
How do I debug Motion Matching in Unreal?
Use the Rewind Debugger. The Pose Search track shows the searched database, the selected pose and its cost per channel for every recorded frame.
Most Motion Matching bugs are data bugs. Check what the database contains before you tune a single weight.