Goal of this framework is to focus on creating actual content, avoid writing scripts that everybody writes while starting work with UE4.
I think that many different games could use the same script base and… I decided to share current progress
It allows for compositing UI from fully reusable widgets (I call it composites). Define widget style and logic once, use it hundred times! Or define logic once and set different appearance for every widget instance.
In clean UMG (without any own scripts) you have to script every element (like button, text or slider) individually. It means lots of copy-pasting scripts responsible for input, localization, styling, setting and restoring state. Everything. Of course many developers close part of those scripts in reusable functions and apply them at every element. My approach is to close entire functionality of element or element group in separate widget file, then simply put this widget in UI panel and fill up parameters. Element added in UMG’s Designer tab works out of the box. There’s no need to script anything except your custom game logic.
Appearances of widgets placed in panels refresh automatically after change - which isn’t possible in pure UMG.
And I’m adding a lot of common functions for managing UI panels and input (not only UI related).
Take a look!
This is entire script for Pause Menu, as simple as it always should be.
You don’t need to produce spaghetti blueprint for every UI element. Prepare it quickly by setting params.
What’s inside?
Typical UI composites like Text Button, Interaction Hint, Labeled Slider, etc. Every composite automatically updates its default state based on instance values.
Scripts called UI Manager and Panel take care of creating and switching panels, opening panels in hierarchy, handling input, basic navigation, activating chosen widget in panel, receiving input from active widget. So you don’t have to script basic widget actions in your panels. Focus on designing it and scripting custom and advanced functions.
Samples of Main/Options menus simplifies creating your own menus, i.e. Video Menu allows you to set common graphics options. Just customize it to your needs. Or just download it, don’t change a thing and enjoy basic menus working in your cooked build.
Input Manager provides basic functionalities: setting various inputs for single action, activating interactions, detecting input device and automatically updating displayed icon and key of interaction.
You don’t have to reinvent the wheel when you’re starting work on UI. I already did it. Partially
Further development
I’d love to hear you feedback!
I’ll continue to work on it, make it as universal as UI script can be. Although keep it mind that won’t ever “completed” or “finished”. It’s just impossible if we’re talking about user interfaces.
You can use all this work free of charge.
If you decided to use it in your project, please consider a PayPal donation
If you’d like to get some features soon than other features… donation would encourage me do it quicker. If nobody will donate, I’ll just implement features that I need the most
Added short video and screenshot of Video settings to the first post
You can see there setting standard video options, volume of sound classes. I’ll add much more options over time.
Used keyboard to navigate through menus, but it works the same with gamepad.
Commited small change which could help a little with working on game in editor.
UI Manager can automatically open one of UI panels while game is starting. Check events after BeginPlay in the event graph.
All these variables are config variables, so every developer can set different panel for his convenience.
Yes they do, I have used it an it works great. gamepad and keyboard support and the video settings are done nicely. Has a little learning curve, but thats fine.
Just updated project to 4.13 and compiled code plugin against this version. Also removed many redundant functions from code plugin, some of them replaced by engine functions introduced UE 4.11-4.13.
To be sure: are we’re talking about your own project or just trying launch my project from GitHub?
And are you using vanilla engine or custom one?
So far I only used plug-in in projects using vanilla UE4 and blueprint projects. Maybe ot works differently with customized engine or code projects?
If error occurs in your project, please check what you have in your .uproject file.
Good version is
But if you have also module added there, engine could try to recompile plug-in
Oh
Simply remove Modules section from .uproject and it gonna work
Or redownload zip from github and launch project - just removed this section from Lucy.uproject and saved my “dev” version as another .uproject file.
thx very much for helping with it !!
now i can get it to work and it looks really cool.
two problems:
applyin / resetting settings:
i cant get the “apply” and the “reset to defaults” buttons working.
they just seem to be inactive. they dont get black when hovering with the mouse …
i tried it running inside the editor and running seperate in a new window, both times i cant apply or reset the settings on the game.
( i havent changed anything yet , its just the newly downloaded version from githhub.
framerate:
when i start the option menu framerate is set to 0
when i manually callibrate the settings with mouse i can only get to a framerate down to 30
i am creating a point & click adventure and 20 frames is enough for my purpose.
How can i change the minimum framerate ?
question:
is there a way to have a preview of the gamma while changing the slider ?
thx again for your cool work ! hope to get it working soon
Sorry, I spent few days in Budapest and wasn’t lucky enough to get fast WiFi
About framerate… just go to properties of “Limit Frames” widget. There’s “Min Value” property in Slider section. Set value that suits you
Generally it’s helpful to check properties of panels and widgets, there’s lots of params.
There’s no functionality for gamma slider. I don’t need it personally yet, if it’s important for somebody, please use PayPal tip and I’ll make it ASAP