Download

Retrofitting GFxUDKFrontEnd -- issues with mouse focus

So I’m trying to get my game out a little faster with all the “sunsetting” going on and decided to give a shot at quickly retrofitting and reskinning GFxUDKFrontEnd instead of making a UI system from scratch.
I started with what I saw here for adding new pages, a resolution picker and so on Editing GFxUDKFrontEnd to add system settings - Epic Games Forums
All well and good, except nobody bothered having the most basic Apply/Cancel system for these option screens, you’re just stuck with that Back button at the bottom and the Escape key, I can’t edit any .fla files right now so I figured I would just use an info dialog to handle the “Apply/Cancel” problem, triggered by pressing the Back button, as seen here:

The second screen, the info dialog, does not accept mouse input or react to the mouse cursor in any way, here’s the code used for displaying the info dialog:



	local GFxUDKFrontEnd_InfoDialog ExitDialogMC;
	ExitDialogMC = GFxUDKFrontEnd_InfoDialog(MenuManager.SpawnDialog('InfoDialog')); 
	ExitDialogMC.SetTitle("Confirm");
	ExitDialogMC.SetInfo("Apply changes?");    
	ExitDialogMC.SetAcceptButtonLabel("Yes");
	ExitDialogMC.SetBackButtonLabel("No");
	ExitDialogMC.SetAcceptButton_OnPress(Select_Apply1);
	ExitDialogMC.SetBackButton_OnPress(Select_Apply2);
	ExitDialogMC.Outer.bCaptureInput = true;
	ExitDialogMC.Outer.bCaptureMouseInput = true;
	ExitDialogMC.Outer.bIgnoreMouseInput = false;
	MenuManager.SetSelectionFocus(ExitDialogMC);

This really ought to be fixable from .uc, which is why I posted it in this subforum, if anyone’s got an idea, I would appreciate the help.

Edit: i noticed i can still barely click on elements in the original menu under the info dialog… the mouse focus doesn’t travel at all to the info dialog, only the keyboard focus

There’s another bug where if you use the keyboard to go through a “stepper” element (where you highlight it and use the left/right arrows to change its currently selected item) you will then usually have to press Enter twice to activate the Back button and get out of the screen where that element was.
Would be nice if we could get this stuff figured out and maybe make GFxUDKFrontEnd more usable, otherwise I’ll be looking into making UIs from scratch.

I’ve solved all the issues with the menu so far

  1. menu options scrambled out of position: it happens when you try to speed through an initializing menu, so just block player input when a menu view is initialized for about 30-40 frames (note: using bAllowInput won’t work, it doesn’t do anything if you try to set that dynamically, use AddFocusIgnoreKey instead)
  2. stepper setting bug that makes you have to use the Back button twice after you’ve exited a menu with steppers once: restart the HUD whenever you leave a menu with steppers in it, you can jump back to the right screen by calling PushView one frame after reinitialization
  3. mouse focus bug on dialog boxes: edit MenuManager.as and make it so dialogs translate the rest of the menu much further away than normal

Cant help with this,but if you are not too in with scaleform,or you find it too dificult i recommend this ui script from hourences.

http://www.hourences.com/tutorials-ue3-kismet-interface/

Im using it, and you can do quite complex menu in kismet with it.

Also, there is no sunseting.They just dont want to host the files anymore.Use udk all you want for commercial purposes for as long as you want/need.

Thanks, but I got all the bugs fixed for now. I looked at a lot of solutions and somehow decided to debug the hell out of UDKFrontEnd in the end, I guess just because it looks cool? Also because it was a challenge.

Here’s how it looks right now with GFXUDKFrontEnd and GFxUI_PauseMenu. (warning the pause menu’s .uc is bugged, you need to add an entry in defaultproperties there and specify the actual SWF movie that needs to be loaded)

If anyone wants the edited .fla files I had to make for this (main menu with 8 options and no scrollbar, pause menu with 5 options) just let me know.

Looks cool.What does the video quality buton do?Changes the res of the shaders/textures?(if so,please more detail info)

1+ for the mig29 OVT with vector thrusters :wink:

Well, right now it does nothing, but I was planning to make it apply those settings stored in UDKSystemSettings, like SystemSettingsBucket1, SystemSettingsBucket2 and so on. Though so far I have only been able to set it through testing to buckets 1 and 5 with the Scale Lowend/Scale Highend console commands, as all the other commands for dealing with buckets don’t work.

Good catch, this game is about a mig29 and the OVT is the coolest one I know, so in there it went. Of course I can’t just leave that pic in there as it’s probably not royalty free but it’s a good test for now.

This is interesting. ill take you up on this offer:

Im trying to put together a nice guide, or at least include other people’s cool guides, currently the menu i use is one i did in flash, but its stripped down to the max because i had no idea what i was doing with integrating the UDK example with all the extra options, Sound volume wasn’t actually changing with sliders etc -
(everything quickly became flashtoudk- exec console command)

  • 2nd solution included in teh guide is a link to tegleg’s actor solution.

This method you have looks nice but without the flash im sure how much flash stuff you did. Was it simply the Visuals or was code added?-

Sure, I’ll include most of the files here: http://www.mediafire.com/file/x358atxchr5181n/UDKFrontend_Files.zip

I will release the edited menu when it’s finished, it probably won’t be a big guide but will have all the files and some notes about bugs like I already included in this thread. That guy I linked in the first post figured out and wrote down some of the most important parts already like adding new menus and saving the data.

True that integrating stuff is pretty hard and you rely on console commands a lot, I don’t really think that’s a bad thing.

There’s a lot of code, based on some very awkward original code which I didn’t find the motivation to refactor, so it’s mostly copy-pasted, you can have a look in the archive.
Right now what works codewise with the options is:

  • changing key bindings (simple but working)
  • changing resolution and fullscreen status if you confirm changes on leaving the video settings menu (the other settings are easy to do, but I need to solve the datastores issue first, the changes don’t get saved permanently atm)

Thanks alot. ill start by taking a look at the link in your first post.

I wouldn’t get to worked up about keybindings. I’m sure you can just use external software or even steam after the game is cooked to simply rebind to controllers. For mobile devices i suppose it needs consideration during development.
A little config edit for a user is nothing these days. But having it all “professionally done” with a menu is an obvious atraction.

I was just going to finish my project and then see if my xbox controller or graphics tablet worked off the bat, if it didn’t then start looking at bindings more in depth.

p.s.
If it helps you in some way i posted my source (menu system included) a few hrs ago. The problem with it is you either have to load the “main_menu_map.udk” from within UDK - choose map, or use a shortcut direct to the game (which skips the UDK loading video). Whilst writing this im wondering if i can add the UDK bink video for the license stuff to kismet before i load my GFX mani menu…

hopefully your solution may help in some way