In this course from Epic Online learning, discover how to use objective markers to guide players through complex levels and sequential events. Create UMG objective markers to display on a player’s Heads-Up Display (HUD) and call functions in a Widget Blueprint to trigger events in the level.
https://dev.epicgames.com/community/learning/courses/5L3/unreal-engine-implementing-ui-for-level-design
This arrives just in time as I only finished the level design and blocking out a level with blueprint courses few days ago. This is an amazing course for a beginner like me to learn about objective markers and how to apply them to a level!
Thanks for providing the educational content as great as this for the masses for free. Looking forward to more content like this.
Video: Scripting Player UI at the Level Start
I Use Unreal Engine 5.
Thanks for the course. I got a little problem when the video is at time 1:35 (Scripting Player UI at the Level Start). When I try to do the exact think with Player UIWidget. I can´t get Player UIWidget from the Charachter. I have tried Cast when I turn of Context Sensitive, but then I got two variables with UIWidget.
In the function Set Text Obj Incomplete You I get a compile error: Only exactly matching structures are considered compatible. You say to set the return node to a structure but you don’t say what type of structure. I can’t get it to work.
Hey All,
Thank you for the feedback and comments, everyone. It is always great when the community shares with us!
Someone in the community may have a solution for your issue and if you provide more information about the issues you are having, the community can more easily help you. Screenshots are a great way of showing others more information on your problem and might help get your problem a solution quicker.
If you have any solutions to these issues, please feel free to share here in the thread so you can help others in the future!
-Matt, Epic Online Learning
Excellent material! super high quality, thanks!
The best LD Course I saw in the last few years!
Thank you for the LD overview and thoughts behind the process.
It’s very rare that somebody talks about those elements. Is there
another tutorial planed for the Level, perhaps combining assets
or finalizing the house interior?
Saw only a minor production error with the cut in
“Conclusion to Implementing UI for Level Design”
(Video repetition in 7:13-7:30)
Glad you are finding the level design focus worthwhile. I am trying to create tutorials that are deeper than mere tech demos for Unreal Engine, but I don’t know if all viewers have a long enough attention span to allow such study.
I hope to pursue the finalizing of certain parts of the level, involving scripted cameras and AI encounters in future tutorials. Will see if Epic will commission me to do more.
The “Scripting Player UI at the Level Start” section doesn’t work as expected
I get an error “Accessed None trying to read property PlayerUI”
This happens during the execution of the “BeginPlay” event of the Level.
but at that moment the “BeginPlay” event from the character has not been executed yet so that means there is not yet an PlayerUI defined when the Level “BeginPlay” event is executing?
How can I fix this?
Could this relate to UE 5.1?
Regards,
Dave
I am getting the same issue. Even though I have the variables created, the hud appears but it cant access for the objective text
Its possible this is a 5.1 issue involving some ordering of initialization, I will review
Although, I am investigating the issues mentioned in this thread. The project is usable in Unreal Engine 5+. Just select the engine version when opening the project:
Hi
Thank you for the tutorial.
I’ve downloaded the project from the market place from the link provided and I’m stuck in the “Scripting Player Objectives in the Mill” part.
At 11:14 in the BP_GearMachine blueprint, at the bottom of the “My Blueprint”, we can see in the video that there are 2 events from the “Gear Machine” category called OnGearMachineStarted and OnGearMachineInspected.
However in the project, both event doesn’t exist/appear. Was these event created in some previoous tutorial?
I thank you in advance for your help
I have updated the project files for the course for UE5.1, although it is not on the Marketplace.
There were obviously some changes to the UI Widget code that were causing compile errors.
To see the completed working project you can download from my share drive here:
LINK REMOVED SEE BELOW
Unfortunately, due to the project files having content in them that was created during my contract, it has to be distributed using Epic-owned methods.
Because of this stipulation I am no longer hosting files that fix the project to work with 5.1. The project should work in version 5.0 however.
I will instead include instructions on how to adjust the blueprints to correct for the 5.1 changes:
The properties of TextBox(Multi-Line) objects that were used to show objectives in the upper left of the Widget Blueprint screen area no longer have the variable “TextStyle” directly accessible in Blueprint as of 5.1
Compile the Blueprint for WB_OBJ_HUD and the message log will show you all of the areas that need to be fixed. Since “TextStyle” is no longer accessible you will need to drag from the variables for “OBJ_1_Text” and “OBJ_2_Text” to add the node for function “SetTextStyle” instead. Repeat this as shown in the image for each occurrence of the error.
When all the errors are changed as shown, the blueprint should compile successfully.
Alternately you could replace the TextBox(Multi-Line) with a simple Text widget. Originally I added the MultiLine variety because the descriptive name led me to believe that a simple Text widget would not allow multiple lines. They both allow this.
The actual difference is that when using a mouse, the TextBox(Multi-Line) is editable at runtime by clicking on the game screen. I noticed this later by peering at the popup comments. I would recommend Epic rename that widget to TextBox(Editable) because it definitely seems like the defining feature.
In fact it gets even more confusing, as if 2 different devs coded these 2 widgets without discussing it together (just speculating):
The first widget shown: EditableText(Multi-Line) has a tooltip that claims “Editable text box widget”
The second widget shown: TextBox(Multi-Line) has a tooltip that claims “Allows a user to enter multiple lines of text”.
When dragging both widget classes into the Designer window and checking details, it seems that they have properties which seem to alter them in very similar ways but the names and hierarchy of the properties are mixed up between the two (one has “Style/Style/TextStyle” while the other has most of that stuff under one heading “Appearance”.
I would guess some housecleaning needs to be done, and won’t be shocked if this course is broken by a future update. Hopefully this all provides learners with some clues as to how to fix it later!
Video: Scripting Player UI at the Level Start
I Use Unreal Engine 5.
Bumping this because I ran into the same problem. Can’t get pass this. Any help would be appreciated.
Thanks for the course. I got a little problem when the video is at time 1:35 (Scripting Player UI at the Level Start). When I try to do the exact think with Player UIWidget. I can’t get Player UIWidget from the Character.
You also need to be sure you are setting your ‘PlayerCharacter’ to the actual player character class used in the course:
Enable Objective Marker just sets 2 vars and calls Reset on Enabled, but Reset on Enabled is an empty event that’s not connected to anything. To make it more confusing, video cuts off to next scene when author creates this event and grabs exit wire. Looks like I need to do something else with it that wasn’t shown in the video.
Thought it would be explained later in the course. but he never returns to it.
Seems like it makes the job done, but I have no idea why it works. This part is very confusing and I would like to understand it.
And another question, is there a course for creating this level? Or something similar that explains “persistent level” thing, how the map is organized usually, how visible/invisible parts/chunks are handled etc etc. Something tells me that just making a whole game in a single level won’t be the best solution.