I am very happy to finally introduce you to my own personal Animated HUD System!
With my system I can:
-Add Text, Spinning Images, and more at any time from any blueprint. All of the various visual Elements come from a common base class, my Victory HUD Element.
- I can animate any Victory HUD Element using a very simple blueprint setup that I created using just Switch on String to organize everything!
-Text is localized, FText, using Slate STextBlock. This means my HUD system takes full advantage of all the awesome work Epic has done to support localization of text!
- I can even change the font at any time for any Text to any True Type font! It does not even have to be a UE4 UFont Asset, just the raw .ttf file from your favorite fonts collection!
If you watch the video carefully, I change the font of the Text exactly half way through the fade-in animation!
**The Purpose of Creation** This is my own custom solution for creating HUD elements dynamically during runtime, or in the editor, and also animating them!
The Victory HUD Elements Engine
All of the core engine is done in C++, and in Blueprints I expose the ability to create elements, as well as initiate and respond to either animation completion events or animation notifies (user-specified events before the end of the animation sequence).
So Blueprints get to do what Blueprints do best, fast iteration times, quick modifications/tweaking, and ease of visual organization for an entirely visual system,
and all the fancy calculations are done in pure C++ at highest speeds.
**Core Data Type** My core data type is a simple C++ class, not even a UObject, keeping my entire system as low-level as possible, below the UObject subsystem even! Everything runs ultra fast and is light weight and also easy to use via BP :)
Ease of Use
My system is not bound to the HUD loop in terms of BP usability!
You can add elements any time, from anywhere!
My system is specifically designed to make it easy to respond to in-game events, which necessarily occur outside of the HUD loop.
You can display tutorial text if the player opens a door, or if the player jumps, or if 1 hour passed, or if the level is completed, anything!
The BP nodes are all global, usable any time, anywhere!
In the c++ I am of course using the DrawHUD loop, but the BP user is free to use my system any time, anywhere, in any BP.
Victory HUD Elements persist until the user chooses to remove them, allowing the user to create/delete whole pages, and add/remove a single element anytime without interfering with the rest of the page.
Enjoy the Video!
Let me know how you like it!