The expo included way a lot of apps and experiences to be in the bridge, this is the page of the event
Home screen, this automatically pop up every 2 minutes of inactivity. This is shown in a totem screen, so people come in and go so it has to restart in order to people to be able to enjoy the experience
In the tactil screen, you have to answer 6 questions about the kind of vehicle you want. Every question adds points to the vehicle that fits that answer, so at the end of the questions, it shows the vehicle that has more points for your answers
After the questions, you get to see your vehicle (One of posible 6 vehicles) and choose the main and alternative color for it and also the lights. This parte it's quite simple, just a dynamic material instance with parameters.
And finally to the end of the app, you get to see your vehicle in the bridge, here the app just finish, so you can take a picture of it and move on to the next experience in the expo.
I do love UI, it is my main subject in Unreal Engine, this project was mostly UI and has to be able to be displayed horizontal or vertical, because they had different screens. So i remember how to do different designs but keep the same code in web, the method is called "Model-View-Controller (MVC)" and i looked for a way to create something like that in Unreal Engine. And i did it.
That part was pretty simple, you could have done it, without the system, you know, some scaleBox, some anchors in place... and responsive look like its done, but... i was looking for something like MVC
Those two screens were the real deal, if you look up to the horiziontal version, you will see that the layouts are completely different, so there is no way you can achieve that with scaleBox and Anchors
With those two screens, i found an excuse in my company to develop the system, and it was waaaaay easier to implement it than i expected. It was a huge success.
If yo are not familiar with the concept MVC. It's about 3 parts:
Model: Its usually the object responsible for read from the database and handle the data
Controler: Thats the main code object, that contains all the functions and code needed to parse, filter or convert information from the Model to the View, like... the intermediate.
View: Finally the view, the artistic part, the UI, the final product, thats usually free of code, just invoque Controllers methods and or variables
Imagine that you have a Client screen, that shows the usual data on a list. But that web can be seen in PC, Mobile Landscape, Mobile Portrait and Tablets. You cant have the same design for every screen, as the proportions are different, and the size of the screen too, so you cannot fit all the PC info in just a Phone screen. So then you talk about "responsive".
This MVC allows you to keep the same code as you only need 1 Model and 1 Controller, but you can have as many Views as you need or want. That is the point i was looking to include in Unreal Engine
I did not needed a Model, because i was not reading any database, so i removed that from the idea, i wanted to focus on Controller and View. Unfortunatelly in Unreal, Widget is both Controller AND View, and that was a major wall to avoid.
As long as Widgets are "just" objects, you can create a class for example WBP_C_Configurator and add all the functions, variables and code you need, and the create a child of that class, like WBP_V_Configurator_Landscape and WBP_V_Configurator_Portrait, those two as sons of the main class, have all the code, functions and variables from parent. So now you can design all you want on those childs, and just call what you need from the parent class, and have a View free from code, and ONE Controller with all the code, that does not be affected by views. It was perfect, just what i wanted and it was really easy to implement.