UMG animation workflow

I’m trying to build an animated interaction icon in UMG that consists of several dozen sequential images played at 30fps. It looks just fine in flipbook (where I just need to select my textures and automatically organize them into the flipbook), but I’m having an awful lot of trouble figuring out an equivalent workflow in UMG. As far as I can tell, the only way to do it is to add all 40+ images to a single widget, then use the animation track to change the alpha of the current image to 0, and the new image to 1, at the start of every new frame. That’s a really awful workflow, to the point that it makes UMG borderline-useless for the kind of animated asset I want to use.

Is there an equivalent I’m missing? I tried doing it in paper2d and billboarding it, but that led to some unpleasant lighting issues since placing it in world space made the post process system automatically alter the UI.

This is a good question, something I’ve been wondering as well (to make animated 2d widgets in umg.) I’ll bump here and reserve me a spot incase the answer comes.

You’d just use a material, not make 40+ image widgets. Just a material that goes through the flipbook.

When you say “flipbook” in this case you basically mean a sprite sheet, right? A single image containing each frame of the intended animation that you feed into the flipbook Material node, not a process I haven’t found by which you can feed your paper2d flipbook directly into a material?

Assuming that’s correct I think I know exactly what you’re suggesting, we looked at using an animated material and initially discarded the idea because we need something which plays once and then stops. In Paper2d we accomplished that by binding a self-destruct event to the flipbook’s OnFinishedPlaying notification, but if it’s a material won’t it just loop forever unless we do something cludgy like hard-wire a unique delay node for every possible animation?

You can use sequencer to drive the flipbook material.

I’ve been desperately trying to avoid using Sequencer, since it would considerably complicate our workflow in return for this one comparatively small piece of functionality. I know it’s probably extremely sub-optimal, but at least for the moment we’ve settled on adding a full second of empty (well, transparent) frames to the end of the flipbook, and simply calling the animation with a hardcoded delay of duration (numFrames/30), and a call to terminate the widget containing the material after that delay.