Regarding Animation Templates, Layer Interfaces, Slots, Montages

TLDR

  • We want a way to get Montage Slot Poses to be used in AnimBP Templates.
  • We want to be able to override Animation Graphs/Layers/Cached Poses of the parent/template Animation BP in the child.

This is also regarding UE-147316.

We’ve been working in UE5 with Animation Templates, and they seem really cool, yet unnecessarily limited, and aren’t taking advantage of them right now because of the increased complexity.
Just to play a montage and sample the slot poses for use in the template is really convoluted.

If we missed something and there is an easy fix, please let me know! We searched high and wide and experimented a lot to try to figure out a good workflow using animation templates.

Currently you cannot override a AnimBP Template’s layers in a child class. Why not? We want to!

  • Functionally you can override the Animation Layer Interface Outputs by creating a new class and giving it the interface, then calling Character-Mesh-LinkAnimClassLayers(separateAnimBP)
    But this forces us to separate even more functionality that could be contained in the same Anim Blueprint.

Using this method you have:

  • Animation Template: With Animation Layer Interface
    • Main Animation Blueprint (child of Animation Template) now with skeleton: Can override some animations, but not layers or any part of the anim graph.
  • Separate Animation Blueprint (not child of template): Also Implements the Animation Layer Interface, and can evaluate Slots.
  • Character links the Separate Animation Blueprint to override the layers on the Main Animation Blueprint with LinkAnimClassLayers. Now we can play montages on the Separate Animation Blueprint and its slots are being used in the layer which the template evaluates for the final animation graph output.

+1 on this. I didn’t realize I was attempting to do something unsupported until finding this post. This request seems like a natural progression.

1 Like

I am gonna bump this, as I am trying to figure this out ever since I started workign with unreal and animation blueprints. Whilst the idea of animation blueprints is awesome, I didnt manage to find an efficient and flexible way to really work with them nor to make individual adjustments per child instance.

1 Like

I made the request for “Overridable Animation Graph Nodes in child Animation Instance” on the UDN and was told that it currently is not planned to be implemented.

Screenshot of my request:

Well that is unfortunate…

Currently as a workaround for each child blueprint of an animation blueprint template I create another animation blueprint that uses the same animation layer interface as the template. So at least I can pass some custom logic into my children. But still, it’s not optimal and also very unintuitiv

Yeah, I do the same thing. Its ugly :frowning:
Especially for trying to get a final preview in the viewer.

A helpful function I put in my “_Layers” Anim BP is this one. It makes it easy to access the “Main” BP’s values even with property accessor.

1 Like

hehe, yes I do exactly the same. Ripped it from the Lyra project. A very neat way to access the base abp’s properties. Before I came across this solution I used to recreate the same necessary variables in my linked anim instance… very unefficient and redundant. But to be fair, the docs never really mention to access the main abp’s properties like this, so you either randomly come across this solution or you got to be a genious to come up with it on your own.

1 Like

another tip I could give is to create your own Anim Instance Class. You can do some common tasks and calculations in there. Whenever you create a new abp or abp template simply reparent it to your custom Anim Instance class and you can share certain information even between abp templates

1 Like