Adjusting image widget so the material change isn't altered

Hey guys,

I wondered if anyone had some advice with an issue I’m having.

Currently when my material changes because the Y is taller (see video below) it ends up squishing the image.

The blueprint behind the change is simple but please see it here

Any help is appreciated!

Ting

I’m not sure what we’re seeing here.

After the flipbook plays, the material changes to the open book? Or is the open book the last frame of the flipbook?

If the latter, then why does the last frame look right (not squashed)?

If it’s the former, why can’t you just adjust the height of the image it’s being mapped onto to match the open book?

I don’t see any parameter in animation phase. Or a blueprint where you would change the value of this parameter.

My apologies I should have been clearer!

I have materials that work as flip books, one for opening which is currently activated on construct just for testing.

The last frame is a “default journal” material that is a still and not a flipbook material. Here are the blueprints that use them currently.

It’s rough but I’ve been learning as a side project for the past year so there are probably plenty of basics I don’t know.

Is there any more info I can provide to help?

Thanks for replying! Sorry I definitely missed some information you may have needed. To save spamming the same details could you take a look at my other reply for more information?

I don’t see any parameter in animation phase. Or a blueprint where you would change the value of this parameter.

Any recommendations on what you would do?

Yes, I would show the material and a blueprint where I set the parameter on animation phase.

Sorry I currently don’t set one as I do not know how. The images are all that goes into what I have created. If it helps this is the pack I used: RPG UI pack by Franuka but they use godot so I’ve been making it up as I go along.

You have a material that constantly turning the pages, so you masked it with a larger still image of a larger open book. Every time you open the book, it doesn’t start from frame 1. Also, delay is 0.5 seconds to show the opened book - not very precise. The best would be to learn how to use flipbook mechanics. Probably many tutorials on youtube.

Right. So you have two separate objects (images, planes with material, something). The open book one is the correct aspect, the “opening book” one is not - you just need to make it the same size as the open book object (unless I’m completely misunderstanding something).

And I see what @Dejan33 is saying, but your video shows it working somehow. It doesn’t seem to make sense, as what changes the flipbook image is the Animation Phase, which you don’t have anything plugged into, so we are not really getting an idea of what’s really going on.

EDIT:

Normally I’m doing something like this:

And then in the blueprint:

Where the timeline Phase track is 0.5 seconds long (matching what you have) and the values are key framed at 0s = 0, and 0.5s = 1.

The event tracks at the beginning hide and show. In your case, you could just do that on the “finished” pin.

I know the difference here is you are using UI, and I’m just using a game asset, but this gives you 100% control over the flipbook timing and ensures the hiding and showing happen exactly when you want it to:

2026-07-08 10-59-31.mkv (1.5 MB)

Thank you so much for replying, it really is appreciated. I copied what you did on the material image and it stopped playing the flipbook? (see below)

As I am working with UI and the Widget Blueprints is the second image an option for me?

Sorry if my questions aren’t very good.

Since you are using widget blueprint - type “create dynamic material instance” and click on it.

Then set the “parent” to be your flipbook material. From “return value” execute “promote to variable”. Take journal image and “set brush from material” and insert the promoted variable to the “material”. Now you can set the parameter value (Phase) by selecting the promoted variable and execute “set scalar parameter value”. The “parameter name” should be a string that is exactly like the name of your parameter in the material.

Phase in this case.

I DO NOT SEE A SECOND IMAGE in your last post.

FIRST THING - the main issue you had was a squashed image; I am suggesting your “Journal” image is simply squashed, as I see no other UV adjustments, and the image object itself just looks “shorter” than the final journal image. By default, the image in the UI is going to be like HD aspect. You need to make sure the scale is the same as the opened book image.

Setting the X scale to 0.5625 will make an HD aspect frame become square, but may not fill in the space you need. I would start with that, then scale up to the size you need from there.

We’re also not really on the same page here, because I seldom use UI widgets, which is what I guess you are doing. You must have another blueprint (maybe even the level blueprint) that is controlling this UI blueprint, yes?

If so, let’s start over and walk through this very simple version;

Here’s the Material; NOTE that I’ve changed where I’m placing the texture - the way you had it originally allows you to have a texture sample parameter, which means you could potentially dynamically update the flipbook sequence later on. I like generic - that’s the generic way to do it.

You can also ignore the keying stuff - I do not have a very good flipbook texture to demonstrate with (not that I can share, anyway).

Here’s the UI blueprint:

And the graph for it:

And as a simple example of an ACTOR blueprint in the level that controls this UI:

Yes, the flipbook doesn’t play automatically. That’s because you now have 100% control over it, including stopping and starting and duration.

If you do not know how to use a timeline, it’s a very easy, straight-forward way to create tracks for simple animations.

The timeline node shown in my image has a “float” track called “Phase.” I made it specifically to match your timing you had in the “Delay” node (0.5 seconds). There are only two key frames - the first at 0 seconds, with a value of 0. The second at 0.5 seconds, with a value of 1.

The Phase value input of the flipbook goes from 0 to 1 (although 1 seems to reset it, so I clamped the input value to 0.999)

By triggering this timeline (“Play from Start”) and pushing the Phase value to the material’s Phase parameter, you will be triggering the animation.

This is better than creating a material that auto plays at a speed you have no control over and “hoping” the timing works with your Delay node, because you’ve taken control of explicitly setting it. If you wanted the animation to be faster or slower, you would just adjust your timeline duration. Additionally, you know exactly when the animation ends by pulling off the “Finished” execution pin - that’s when you’d swap images. If instead of pulling off the “Finished” pin you created event tracks, you could trigger swapping images AND have the benefit of just being able to connect an even to the “Reverse from End” pin of the timeline - then you have open AND close in one little setup where you still have control.

One last note - timeline is asynchronous, which means it needs to exist in the EVENT graph, not a function.

The “Phase” timeline looks like this:

Very simple - only two keys. Set the Length to 0.5.

I know this sounds complicated, but it sounds more complicated than it is.

So now this is a short video of using the Widget BP Interface to play out the flipbook sequence making sure that the output is SQUARE and NOT SQUASHED (and I’m sorry, I do not have a good flipbook texture that I can share):

2026-07-09 10-08-25.mkv (2.4 MB)

(post deleted by author)