Quick answer: Save Cached Pose must topologically precede Use Cached Pose in the same graph. Place the saver upstream of the consumer.

Aim offset blends a base pose. Aim graph runs first, samples the cache — gets last frame because base hasn’t saved yet this frame.

The Symptom

Movement appears one frame behind aim direction or vice versa. Visible during fast-direction-change tests.

The Fix

AnimGraph (top-down evaluation):

  [Locomotion StateMachine] → Save Cached Pose "BasePose"
                                            |
                                            v
                                    Use Cached Pose "BasePose"
                                            |
                                            v
                                    AimOffset Blend
                                            |
                                            v
                                    Output Pose

The save node must be in the chain reaching the output, before the first use. If the save is on an unused branch, it never executes — cached pose stays empty.

Verifying

Print bone transforms each frame from cached pose — values match the StateMachine output of the same frame, not last.

“Save before use. Same frame. Pose fresh.”

Related Issues

For state alias, see state alias. For replication, see replication.

Save first. Use second. Frame fresh.