When used as part of the fast path in an ABP, variable Blueprint Getters are not used. If something with a getter that does not conform to or is supported by fast path, is used then fast path should be disabled.

Steps to Reproduce

Create a C++ class from a UAnimInstance

Add two UAnimSequence variables.

Create and assign a BlueprintGetter function for the first variable that returns the second.

Create an ABP from the C++ class, and assign two different UAnimSequences to the variables.

In the AnimGraph, play the first sequence and in the event graph print its name.

Result: The first sequence is played(fast path) and the second sequence is printed

Expected: The second sequence is played and printed


Nativeize the ABP and recompile it.

Result: The second sequence(non fast-path) is played and printed



#pragma once

#include "CoreMinimal.h"
#include "Animation/AnimInstance.h"
#include "MyAnimInstance.generated.h"

UCLASS(transient, Blueprintable, hideCategories = AnimInstance, BlueprintType, meta = (BlueprintThreadSafe), Within = SkeletalMeshComponent)
class EDITORTESTS_API UMyAnimInstance : public UAnimInstance

UPROPERTY(EditAnywhere, BlueprintGetter = GetTestSequence1)
class UAnimSequence* TestSequence1;

class UAnimSequence* TestSequence2;

UAnimSequence* GetTestSequence1() const
return TestSequence2; // returns TestSequence2 instead of 1.


Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-87380 in the post.

Login to Vote

ComponentOLD - Anim
Affects Versions4.234.24
Target Fix4.26
Fix Commit13933751
CreatedJan 23, 2020
ResolvedAug 27, 2020
UpdatedApr 28, 2021