Animation layers and ABP inheritance

I have following inheritance situation:

Animation Blueprint Template (X) → Animation Blueprint with Animation Layer Interface (Y)

For simplicity I’ll just refer to them as Y that inherits from X.

So in X (template) I have some logic because I want to share it between several other ABP with specific skeletons and try to avoid repeating functions, variables etc. Skeleton specific logic is in Y and I want it to act as animation layer so it also inherits from animation layer interface.

However, when I link the Y in my character animation blueprint to the animation instance, nothing happens. I’ve tried to move all logic into standalone ABP without inheritance from X and it works correctly.

I’ve been debugging for quite a while not but I do not see any issue with the implementation. It looks to me like animation layers do not work if ABP layer, in my case Y inherits from another blueprint like the template X.

Does anybody know, if the feature is not supported or is it a bug? Or maybe I am overlooking something?

BTW I am using UE 5.3.2.

Okay, so I tried to dig in deeper, but I am hitting the limits of my UE knowledge/coding skills.

To add more details on top of my comment above, the template class in my example is called ABPTL_HCH_Locomotion and the animation blueprint class that inherits from it with the implemented interface for animation layer is ABPL_HCH_Genesis81F_Locomotion_Experimental (in a meantime I added DEPRECATED_ prefix to both because I wanted to move on but still experiment with this setup … just so that following screenshot makes sense).

And the ABPL_HCH_Genesis81F_Locomotion_Experimental implements the ALI_HCH_Locomotion interface where I have method called LocomotionDirectionWarpedAnimationSelector. The method is implemented as shown on screenshot below:

However, when I debug C++ code, inside the PerformLinkedLayerOverlayOperation method, I am getting correct blueprint class as InClass, it is even able to find the function (FoundFunction), but the bImplemented property is false:

Does anybody have an idea, why this could be? I am unable to trace down where bImplemented is setup.

UE5 - Locomotion System(ALC) Document 08 - What is AnimGraph & Animation Blueprint Template

Animation Blueprint Template are

  1. The place to share animation gameplay . the inherited child class can only replace the animation asset that on Animation Graph that promoted as varible.
  2. Linked to other Animation Blueprint Template that do the common gameply, for example locomotion as you see in the video.

Animation Layer Interface

  1. This is let the same skeleton to seperate diffent gameplay into its own Animation Blueprint and linked at runtime by Link Anim Class Layers API in SkeletalMeshComponent.

Sorry for late reply, but I didn’t have time to get back to this until now.

But the link to the video you provided was very helpful. I see my misunderstanding of the both (ALI & ABT) concepts now.

With some other resource I went through since my initial post combined with your explanation and linked tutorial I feel I have much better grasp of when, how and why to use these. Thanks a lot.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.