UE5 Fade UI Animation

UE5 Fade UI Animation

A simple fade in and fade out animation can make a game feel much more polished. Instead of showing a title, splash screen, or intro card instantly, you can smoothly reveal it when the level starts, keep it on screen for a moment, and then fade it away automatically.

In this tutorial, you will learn how to create an automatic fade UI animation in Unreal Engine 5 using only UMG and Blueprints. No C++ is required. The setup uses a Widget Blueprint, two widget animations, and Level Blueprint logic to control the timing.

This method is perfect for title cards, splash screens, loading intros, level names, chapter names, mission start screens, and any UI element that should appear briefly when a level begins.

Watch the full video tutorial: Make Your Game Look Awesome With This Simple Fade Trick

Related tutorial: Smooth Fade UI Animation Tutorial

Subscribe for more Unreal Engine tutorials: Rambod YouTube Channel

What You Will Learn

  • How to create a simple title widget in UMG
  • How to create fade in and fade out widget animations
  • How Render Opacity controls UI transparency
  • How to trigger widget animations automatically when a level starts
  • How to use Level Blueprint for quick UI startup logic
  • How to use Delay nodes to control animation timing
  • How to remove the widget after the fade out finishes
  • How to reuse the same logic for splash screens, title cards, and transitions

What We Are Building

The goal is simple. When the level starts, Unreal Engine will create a widget, add it to the screen, play a fade in animation, wait for a short moment, play a fade out animation, then remove the widget from the viewport.

The final flow looks like this:

Level Starts
Create Title Widget
Add Widget to Viewport
Play Fade In Animation
Wait
Play Fade Out Animation
Wait
Remove Widget from Parent

This is a small system, but it immediately improves presentation. A hard cut feels cheap. A smooth fade feels intentional.

When to Use This Fade Trick

This setup is useful whenever you need a UI element to appear temporarily without player input.

Good use cases include:

  • game title screens
  • level intro cards
  • chapter titles
  • mission start text
  • splash screens
  • tutorial popups
  • round start messages
  • cinematic UI overlays
  • area name reveals
  • loading transition overlays

Step 1: Create the Widget Blueprint

Start by creating a new Widget Blueprint.

In the Content Drawer:

Right-click → User Interface → Widget Blueprint

Name it:

WBP_Title

This widget will be responsible for showing the title or splash text on screen.

Step 2: Add the UI Elements

Open WBP_Title.

Use a Canvas Panel as the root, then add a Text Block.

Rename the Text Block to something clear:

TitleText

Set the text to whatever you want to display, for example:

Title

You can center it on the screen, increase the font size, and adjust the color based on your project style.

Step 3: Understand Render Opacity

Render Opacity controls how visible a widget is.

The value works like this:

Render Opacity = 0 → fully invisible
Render Opacity = 0.5 → half transparent
Render Opacity = 1 → fully visible

For a fade animation, we simply animate Render Opacity over time.

Fade in means opacity goes from zero to one. Fade out means opacity goes from one to zero.

Step 4: Create the Fade In Animation

In the Widget Blueprint, find the Animations panel.

Create a new animation and name it:

FadeIn

Select the widget element you want to fade. This can be the Text Block itself or a parent container if you want multiple elements to fade together.

Add a track for Render Opacity.

Create these keyframes:

Time 0.0 seconds → Render Opacity = 0
Time 1.0 seconds → Render Opacity = 1

This creates a one-second fade in animation.

Step 5: Create the Fade Out Animation

Now create a second animation and name it:

FadeOut

Add the same Render Opacity track.

Create these keyframes:

Time 0.0 seconds → Render Opacity = 1
Time 1.0 seconds → Render Opacity = 0

This creates a one-second fade out animation.

At this point, your widget has both animations ready.

Why Use Two Animations?

You could technically use one animation and play it forward or backward, but two separate animations are easier for beginners to understand and debug.

Separate animations also make the setup clearer:

  • FadeIn handles appearing.
  • FadeOut handles disappearing.

For a small title card or splash screen, this is clean enough and easy to maintain.

Step 6: Open the Level Blueprint

Now we need to trigger the widget when the level starts.

Open the map where you want the fade effect to happen, then open the Level Blueprint.

You can use this setup for quick level-specific intro UI. If you later need a more global version, you can move the same logic into a Player Controller, Game Mode, or UI Manager.

Step 7: Create the Widget on Begin Play

In the Level Blueprint, start with:

Event Begin Play

From Event Begin Play, add:

Create Widget

Set the widget class to:

WBP_Title

This creates the widget instance when the level starts.

Step 8: Promote the Widget to a Variable

From the Create Widget return value, promote it to a variable.

Name the variable:

TitleWidget

This is important because you need a reference to the widget later when you play animations and remove it from the screen.

Without storing the widget in a variable, the Blueprint can become harder to manage once the logic grows.

Step 9: Add the Widget to the Viewport

From the widget reference, call:

Add to Viewport

This displays the widget on the player’s screen.

At this point, the widget exists and is visible, but we still need to play the animation sequence.

Step 10: Add a Short Delay Before Animation

After Add to Viewport, add a small Delay.

Example:

Delay = 0.2 seconds

This gives Unreal a small moment to fully initialize and display the widget before playing the animation.

In many cases, animation works without this delay, but adding a tiny delay can make the sequence more reliable, especially for beginner setups.

Step 11: Play the Fade In Animation

From the TitleWidget reference, call:

Play Animation

Select:

FadeIn

This starts the fade in animation and gradually reveals the title.

Step 12: Wait Before Fading Out

After playing FadeIn, add another Delay.

Example:

Delay = 1.0 seconds

This lets the fade in complete and keeps the title visible briefly before the fade out begins.

You can increase this value if you want the title to stay on screen longer.

Step 13: Play the Fade Out Animation

After the delay, call Play Animation again.

This time, select:

FadeOut

The widget will gradually become invisible.

Step 14: Remove the Widget After Fade Out

After FadeOut starts, add another Delay.

Example:

Delay = 1.0 seconds

This gives the fade out animation enough time to finish.

Then call:

Remove from Parent

This removes the widget from the viewport.

Do not skip this step. If the widget stays in the viewport while invisible, it may still exist and consume unnecessary UI resources.

Final Blueprint Flow

The full Level Blueprint logic should follow this order:

Event Begin Play
Create Widget WBP_Title
Set TitleWidget Variable
Add to Viewport
Delay 0.2
Play Animation FadeIn
Delay 1.0
Play Animation FadeOut
Delay 1.0
Remove from Parent

This creates a clean automatic fade sequence when the level starts.

Why Delays Are Used Here

Delays control timing. They make sure each step has enough time to complete before the next step begins.

In this setup:

  • The first delay gives the widget time to initialize.
  • The second delay lets FadeIn finish and keeps the title visible.
  • The third delay lets FadeOut finish before removing the widget.

For beginner UI animation, this method is simple and easy to understand.

Better Timing for Real Projects

Using delays is fine for small tutorials and simple UI effects. For larger systems, you may want to use animation finished events instead.

A more advanced version could use:

  • Bind to Animation Finished
  • custom events
  • a UI manager
  • Player Controller based UI flow
  • Game Instance controlled transitions

But for a title card on level start, the delay method works well and is easy to maintain.

Level Blueprint vs Player Controller

In this tutorial, the logic is placed in the Level Blueprint because it is fast and easy to demonstrate.

Use Level Blueprint when the fade effect belongs only to one level.

Use Player Controller or a dedicated UI manager when the same fade effect should be reused across many levels.

Simple rule:

  • One level only: Level Blueprint is fine.
  • Multiple levels or full game transition system: use Player Controller, Game Instance, or a UI manager.

How to Reuse This for Level Names

You can reuse the same setup for area names or level introductions.

For example:

Forest Entrance
Enemy Base
Chapter Two
Mission Started
Wave One

Instead of hardcoding the text inside the widget, create a Text variable and expose it on spawn. Then set the title text when creating the widget.

How to Reuse This for Splash Screens

For splash screens, you can replace the Text Block with an Image widget.

Example:

Canvas Panel
  Image_Logo

Animate the Render Opacity of the logo image instead of text.

This gives you a simple logo fade in and fade out at the start of a game or level.

How to Fade Multiple Elements Together

If you want multiple elements to fade together, put them inside a parent container.

Example:

Canvas Panel
  Overlay
    Image_Background
    Text_Title
    Text_Subtitle

Animate the Render Opacity of the parent Overlay instead of animating each child separately.

This keeps the animation simple and prevents mismatched timing.

Common Mistake: Forgetting Add to Viewport

If nothing appears when you press Play, check whether you called Add to Viewport.

Create Widget only creates the widget instance. It does not automatically display it.

Common Mistake: No Widget Reference

If you cannot play the animation later, make sure you promoted the widget to a variable.

You need a valid reference to the actual widget instance that was added to the viewport.

Common Mistake: Removing the Widget Too Early

If the widget disappears before the fade out is visible, your final delay is too short.

The delay after FadeOut should match or exceed the length of the FadeOut animation.

Common Mistake: Animating the Wrong Widget

If only one part of your UI fades and the rest stays visible, you probably animated the wrong element.

If the whole card should fade, animate the parent container. If only the title text should fade, animate the Text Block.

Common Mistake: Starting at the Wrong Opacity

For FadeIn, the first keyframe should usually be opacity zero.

For FadeOut, the first keyframe should usually be opacity one.

If the animation looks reversed, check your keyframes.

Design Tips for Better Fade UI

  • Keep fade animations short and clean.
  • Use one parent container if multiple elements should fade together.
  • Use readable font sizes for title cards.
  • Do not leave invisible widgets on screen forever.
  • Use animation finished events for more advanced systems.
  • Use consistent timing across your game for a professional feel.
  • Do not overuse fade effects on every UI element.

Practical Use Case: Chapter Intro

A chapter intro can use the same structure:

Create Widget
Set Chapter Name
Add to Viewport
Fade In
Hold
Fade Out
Remove from Parent

This creates a clean start-of-level presentation without needing a cinematic sequence.

Practical Use Case: Mission Start Text

For mission-based games, you can display a short objective message:

Mission Started
Reach the extraction point

The title fades in, stays briefly, then fades out while gameplay continues.

Practical Use Case: Area Name Reveal

Many games show area names when the player enters a new location.

You can trigger the same fade widget from a trigger volume instead of Event Begin Play.

The logic is almost identical. The only difference is that the trigger event starts the widget sequence instead of the level start.

How to Improve This System Later

Once you understand the basic version, you can expand it into a reusable UI transition system.

Possible improvements:

  • Expose the title text on spawn
  • Expose fade duration as a variable
  • Expose hold duration as a variable
  • Support images and logos
  • Use animation finished events instead of fixed delays
  • Create a reusable UI manager function
  • Add sound effects when the title appears
  • Add background blur or dark overlay

Conclusion

In this tutorial, you learned how to create an automatic fade in and fade out UI animation in Unreal Engine using UMG and Blueprints. You prepared a title widget, created FadeIn and FadeOut animations, added the widget to the viewport from the Level Blueprint, controlled timing with delays, and removed the widget after the animation finished.

This is a small technique, but it makes your game feel more polished immediately. Use it for splash screens, title cards, level intros, mission text, chapter names, and simple UI transitions.

Watch the full video tutorial: Make Your Game Look Awesome With This Simple Fade Trick

Related tutorial: Smooth Fade UI Animation Tutorial

Subscribe for more Unreal Engine tutorials: Subscribe to Rambod on YouTube

Resources

Frequently Asked Questions

Can I make UI fade in and out without C++?

Yes. You can create fade animations in UMG and trigger them using Blueprint nodes such as Create Widget, Add to Viewport, Play Animation, Delay, and Remove from Parent.

What property should I animate for a fade effect?

Use Render Opacity. A value of zero is invisible, and a value of one is fully visible.

Why should I remove the widget after fading out?

Removing the widget keeps the viewport clean and prevents invisible UI from staying active unnecessarily.

Can I use this for splash screens?

Yes. Replace the Text Block with an Image widget or logo, then animate its Render Opacity.

Should this logic be in Level Blueprint?

Level Blueprint is fine for a level-specific intro. For reusable UI transitions across many levels, use Player Controller, Game Instance, or a dedicated UI manager.

Can I trigger the same fade later during gameplay?

Yes. You can trigger the same widget animation from other Blueprints, trigger volumes, interaction events, mission systems, or UI managers.

Rambod Ghashghai

Rambod Ghashghai

Technical Director & Unreal Engine Educator

Senior systems architect and Unreal Engine technical educator with 11+ years of enterprise infrastructure experience. Director of IT at Tehran Raymand Consulting Engineers and creator of Rambod Dev.

Full profile

Related Tutorials

More lessons connected by category, tags, engine version, or implementation type.

What To Do Next

Keep exploring practical Unreal Engine and systems programming work.

Recommended resource

Recommended for this tutorial

Useful tools selected for this workflow topic.

Share this page

Send it to your network in one tap.

Instagram doesn’t provide direct web share links. We copy your URL and open Instagram.