Quick answer: Notifies live on individual AnimSequences, not on Blend Spaces. Add the notify to each sequence in the blend. Drop Notify Trigger Weight if the blend keeps any single sequence below 0.5 weight.

You add a footstep AnimNotifyState to a walk-loop Blend Space. Tick fires when running, not walking. The blend weights vary across the X axis; only sequences above the trigger threshold notify.

The Symptom

NotifyTick fires for some blend space coordinates and not others. Or fires once and then silent until you fully transition out. NotifyBegin/End may also misfire.

What Causes This

Blend Space evaluates by sampling participating AnimSequences with weights. Notifies on the Blend Space asset itself don’t exist; notifies live on each sequence. Each notify checks its sequence’s current blend weight against Trigger Weight (default 0.5). Below threshold, no notify.

The Fix

Step 1: Add the notify to each contributing sequence. Open Walk_Forward, Walk_Left, Walk_Right (or your blend axes). Place the same AnimNotifyState at the same time on each. The blend pool now has multiple instances; whichever has weight above the threshold fires.

Step 2: Lower Trigger Weight.

AnimNotify properties:
  Trigger Weight Threshold:  0.1
  Notify Filter Type:        AffectedBoneFilter (optional)

0.1 means even minor blend contributors fire the notify. For footsteps you usually want a higher threshold (0.5) so you don’t double-fire from both feet at once.

Custom CanReceiveNotify

For complex logic (notify only when running but not jumping), override CanReceiveNotify in your AnimNotifyState subclass:

UCLASS()
class UFootstepNotify : public UAnimNotifyState
{
    GENERATED_BODY()
public:
    virtual void NotifyTick(USkeletalMeshComponent* Mesh, UAnimSequenceBase* Anim, float dt, const FAnimNotifyEventReference& Ref) override
    {
        if (UAnimInstance* AI = Mesh->GetAnimInstance())
        {
            if (AI->GetCurveValue("InAir") > 0.5f) return;
        }
        // footstep logic
    }
};

Verifying

Print on NotifyTick. Walk through the blend space coordinates with PIE in slow motion. Tick should fire over the relevant range. If gaps remain, the sequence at that coordinate doesn’t have the notify.

“Notify per sequence. Trigger Weight tuned. NotifyTick fires across the blend.”

Related Issues

For AnimBP state machine, see AnimBP state. For Control Rig IK foot, see IK foot.

Notify on each sequence. Threshold tuned. Tick fires.