How to spawn timelines for multiple UMG animations?


I have multiple buttons as a main menu in a widget blueprint. I want to animate all these buttons on mouse hover with the same animation, e.g. translate X by 10 on hover and by -10 on unhover.

As I can’t reuse UMG animations for all the buttons and also can’t copy the keyframes, I thought about a single custom event which takes a button element as an input and then animates its tranform property.

As I can’t have a timeline inside the UMG widget, I added it to the blueprint that spawns the main menu widget (in my case a custom HUD blueprint).

I can call the event in my HUD bluepritn from my main menu widget blueprint, but of course the timeline component in the HUD BP is being used for all the button animations and as a result they don’t work independently.

So if I hover of a button, it plays the animation, and if I unhover it reverses the animation - all good. But if I hover over the next button while the unhover animation of the previous button is still being played, the former animation stops.

Is there a way to have my HUD BP spawn an instance of a timeline and reuses this one for the same button (per some identifier), while spawning new ones for the other buttons?

I read about the child actor component but it’s a bit confusing because I don’t actually spawn an actor into the world. I also would have to prepare a list of all my buttons somehow in an array or something, right?

Thanks for a pointer in the right direction!

See these screenshots as a further explanation of my setup: