Page 5 of 7 FirstFirst ... 34567 LastLast
Results 161 to 200 of 264
  1. #161
    MSgt. Shooter Person
    Join Date
    Sep 2007
    Posts
    217

    Default

    lol I knew that command to show the menu before, for some reason i didnt try it because i was thinking you created your own menu open command i will try it out.

  2. #162
    God King
    Join Date
    Jan 2010
    Location
    Germany
    Posts
    4,133

    Default

    Quote Originally Posted by thommie View Post
    EDIT:

    and it seems that the mouse input/hovering is also not working 100%...

    Think I found the issue. It's (yet again, those get me every now and then) one of those bloody exclamation marks!
    Way too often am I falling for it and use == instead of != and then spend hours searching the actual issue. -.-

    Well, in this case is it related to the new Getter functions in the GUIMenuScene. For instance do I have
    Code:
    // Get the current width of the targeted Canvas.
    function int GetScreenSizeX()
    {
        if (bIsScriptedTextureMenuScene)
        {
            if (OwnerHUD != None)
                return OwnerHUD.ViewX;
        }
        else
        {
            if (GUISTH != None)
                return GUISTH.ScriptedTextureResolution.X;
        }
    
        return 1024;
    }
    there. See something? I actually need to negate the bool before the check. Otherwise it checks the HUD when it's actually supposed to be in ScriptedTexture mode and the ScriptedTexture when it's actually in HUD mode. And usually is the opposite thing never present in that case, so it will just fallback to the "return 1024;" at the bottom. Just negate each IF condition in each Getter function and you should be good to go.
    Our Loop, which art in source code, hallowed be thy keyword.
    Thy condition come, thy instruction be done, in RAM as it is in cache.
    Increment us this day our daily counter,
    and forgive us our typos, as we also have forgiven our compilers.
    And lead us not to the nullpointer but deliver us from bugs.
    For thine is the API, the GUI, and the CLI while(true).
    Semicolon;
    Please don't send me questions about how to do something in the UDK via PM. That is better discussed in the forums and we only have limited PM storage.

  3. #163
    Prisoner 849
    Join Date
    Jan 2010
    Posts
    949

    Default

    I was still thinking there was something wrong with the mouse itself, not something in the components... some of those small things can get really frustrating when you're trying to solve it, i'm always thinking bigger than the problem turns out to be.

  4. #164
    Prisoner 849
    Join Date
    Jan 2010
    Posts
    949

    Default

    I've edited the Home page of the wiki, and the Sidebar after adding a small overview of GUIComponent.
    Feel free to change something should you find any errors Crusha

    i will try to add some more in the coming days.

  5. #165
    God King
    Join Date
    Jan 2010
    Location
    Germany
    Posts
    4,133

    Default

    Nice. Remembers me that I still need to implement the sorting by priority for drawing the Components. Currently only their order of declaration matters and the priority simply determines which component is considered selected when the mouse is over multiple overlapping components.
    Our Loop, which art in source code, hallowed be thy keyword.
    Thy condition come, thy instruction be done, in RAM as it is in cache.
    Increment us this day our daily counter,
    and forgive us our typos, as we also have forgiven our compilers.
    And lead us not to the nullpointer but deliver us from bugs.
    For thine is the API, the GUI, and the CLI while(true).
    Semicolon;
    Please don't send me questions about how to do something in the UDK via PM. That is better discussed in the forums and we only have limited PM storage.

  6. #166
    Prisoner 849
    Join Date
    Jan 2010
    Posts
    949

    Default

    Added 3 wiki pages, GUIComponentModifier, GUILabelComponent, GUIVisualComponent.
    only important variables (to be set in the defaultproperties) and some functions.

    i was thinking of releasing another update next week with some minor additions and tweaking, i might even add a new MenuScene with a semi-working options screen.

  7. #167
    Prisoner 849
    Join Date
    Jan 2010
    Posts
    949

    Default

    some minor changes, glad to announce alignment for the text

    at R39:

    -added GUISliderManager, this class gives the GUIBaseSliderComponent the ability to move other components. can be used to scroll through a list that is larger than the screen.
    -added AdvancedExampleMenuScene, this adds more functionality to the original ExampleMenuScene. to activate it, set it in the GUIExampleHUD's defaultproperties.
    -added CustomSystemSettings, this is not an ideal way of setting options, but it works.
    -added some lines to the Localization file.
    -removed some obsolete code from GUIExampleHUD
    -edited ExampleMenuScene to work properly again, exit button now closes the application.
    -added comments and Alignment functionality to GUIScrollBoxComponent.
    -fixed GUIMenuScene not working, added DefaultInputComponent options to PushPage and PopPage.
    -added alignment to GUILabelComponent.
    -GUICompatiblePlayerController changed parent class to solve error, i think you should ignore this crusha.
    -Added alignment to GUIButtonComponent.

  8. #168
    God King
    Join Date
    Jan 2010
    Location
    Germany
    Posts
    4,133

    Default

    Nice, was waiting for alignment options. :>
    And the SliderManager sounds very interesting.

    Yeah, that options are probably the best way to handle things as long as we don't have a GET command. Just a small hint: you can use "setres 1024x768x32" to set those values the proper way instead of using the set command.
    Gamma can also be adjusted with "Gamma [FLOAT]". And PlayerInput offers a bunch of functions for setting things like mouse smoothing, inverting and so on.
    And the command "dumpavailableresolutions" used to dump all resolutions supported at the user's screen to the log, but one of Epic's techs said that he was going to change it so that instead dumps the resolutions as return value for that console command, so a menu could potentially use that output to provide the available resolutions in a combobox later.
    Last edited by Crusha K. Rool; 06-15-2012 at 11:43 AM.
    Our Loop, which art in source code, hallowed be thy keyword.
    Thy condition come, thy instruction be done, in RAM as it is in cache.
    Increment us this day our daily counter,
    and forgive us our typos, as we also have forgiven our compilers.
    And lead us not to the nullpointer but deliver us from bugs.
    For thine is the API, the GUI, and the CLI while(true).
    Semicolon;
    Please don't send me questions about how to do something in the UDK via PM. That is better discussed in the forums and we only have limited PM storage.

  9. #169
    Prisoner 849
    Join Date
    Jan 2010
    Posts
    949

    Default

    i started out with the SetRes, but since you couldn't change all the other options at runtime i figured this would also do.

    there is just 1 problem with the SliderManager, the text moves a bit up when you first move all the components and refuses to move down again.

    if you would check the AdvancedExampleMenuScene, you would see i've got a SliderManager and a Slider present in the options menu though neither are visible. the Slider only becomes active when needed, currently all items fit within the specified area.

    oh and i forgot to add the .ini for the systemsettings.

  10. #170
    God King
    Join Date
    Jan 2010
    Location
    Germany
    Posts
    4,133

    Default

    Small update, as some crucial issues were fixed.

    -Fixed bug that caused always default return value for getter functions in
    MenuScene.
    -Fixed an issue that cause Components to be only clickable in a
    small area around the center.
    -Separated debug-frame drawing from normal drawing to assure that it's always
    called. (Actually I am not sure now if it's getting called at allů)
    -Added OnCustomDraw delegate and bCallCustomDraw variable. The delegate will get
    called immediately before DrawComponent and allows to either completely replace
    the normal drawing (turning the component into a scripted texture within the
    menu system) or to at least alter some last-second values. Returning True from the delegate will skip the normal render process.
    -Cursor should now start at 500, 300 position for convenience.
    -Made sure that Scaleform movies are really removed when using this system.


    I now also noticed the root of all of my trouble here: for some reason is the game getting paused when I progress from my first menu screen to the next (which is exclusively done with the Enter key), causing my InterpActor in the background not to rotate as well as my Timer for starting the next map not to fire off properly. Now I just needed to know what that reason isů

    EDIT: The reason was self-inflicted by using the Enter key to progress to the next screen but by also having the "Pause" command bound to it. I simply disabled the ability to pause the game in the GameInfo now and was fine.
    Last edited by Crusha K. Rool; 08-18-2012 at 08:25 AM.
    Our Loop, which art in source code, hallowed be thy keyword.
    Thy condition come, thy instruction be done, in RAM as it is in cache.
    Increment us this day our daily counter,
    and forgive us our typos, as we also have forgiven our compilers.
    And lead us not to the nullpointer but deliver us from bugs.
    For thine is the API, the GUI, and the CLI while(true).
    Semicolon;
    Please don't send me questions about how to do something in the UDK via PM. That is better discussed in the forums and we only have limited PM storage.

  11. #171
    God King
    Join Date
    Jan 2010
    Location
    Germany
    Posts
    4,133

    Default

    I sorta ran into an issue (and somewhat reported it to Epic already) and it would be interesting to know if you can replicate it on your side:

    When making a main menu with this system, then loading another map and then returning to the main menu (map) from that game map, the main menu doesn't render anymore. More precisely do the DrawInfo structs in the array to be completely missing and I have no idea if it's actually a fault in our code logic (I doubt it, honestly) or an issue with the engine itself when loading the map again.

    This does not happen in the normal development process but only when playing the cooked/installed game! And I also noticed that it appears when playing the main menu map from within the editor. The first time you start it from the editor, it works just fine. But starting it after that won't draw the main menu either. Really weird.
    Our Loop, which art in source code, hallowed be thy keyword.
    Thy condition come, thy instruction be done, in RAM as it is in cache.
    Increment us this day our daily counter,
    and forgive us our typos, as we also have forgiven our compilers.
    And lead us not to the nullpointer but deliver us from bugs.
    For thine is the API, the GUI, and the CLI while(true).
    Semicolon;
    Please don't send me questions about how to do something in the UDK via PM. That is better discussed in the forums and we only have limited PM storage.

  12. #172
    Prisoner 849
    Join Date
    Jan 2010
    Posts
    949

    Default

    never tried the menu in a cooked/installed game and the editor is even worse. I just open the menu with the consolecommand in the editor since escape shouldn't work, closing the menu goes the same way, no problems. The problem is closing the PIE window, once it is closed the editor crashes, every single time...

  13. #173
    God King
    Join Date
    Jan 2010
    Location
    Germany
    Posts
    4,133

    Default

    Well, I am using a main menu, which is on by default. Hence no use for the Esc key there.
    It's worrying me though that something that runs perfectly fine in an uncooked game suddenly breaks in a cooked one. We aren't using DLO and are also not on a console after all.
    Our Loop, which art in source code, hallowed be thy keyword.
    Thy condition come, thy instruction be done, in RAM as it is in cache.
    Increment us this day our daily counter,
    and forgive us our typos, as we also have forgiven our compilers.
    And lead us not to the nullpointer but deliver us from bugs.
    For thine is the API, the GUI, and the CLI while(true).
    Semicolon;
    Please don't send me questions about how to do something in the UDK via PM. That is better discussed in the forums and we only have limited PM storage.

  14. #174

    Default

    In my GUI framework Forms I got a similar issue where the cursor isn't drawn when cooked :P I thought this might just be my code and i'll check into it later but now reading that you got similar issues, oh god it might not be my code.

    @thommie, the reason is because the framework doesn't remove all references for garbage collection.

  15. #175
    God King
    Join Date
    Jan 2010
    Location
    Germany
    Posts
    4,133

    Default

    Well, the menu runs fine when loading the menu map for the first time in the cooked game. But after loading a game map and returning to the main menu map then, the struct arrays that were defined in the DefaultProperties of my GUIComponents are empty suddenly, though the components themselves are still there.

    All my structs are in GUIComponents that are childs of GUIPages, i.e. within subojects of subojects. Still need to check if the problem also occurs when the structs are in the first layer of the hierarchy.



    But yeah, you need to manually make sure that any Object-reference is cleared out. For that purpose do we have the DeleteGUIComp() event that gets called for each Component when GUIHUD.Destroyed() is called. It should make sure that all references get removed there and pass the call on to it's childs.
    Last edited by Crusha K. Rool; 08-18-2012 at 03:35 PM.
    Our Loop, which art in source code, hallowed be thy keyword.
    Thy condition come, thy instruction be done, in RAM as it is in cache.
    Increment us this day our daily counter,
    and forgive us our typos, as we also have forgiven our compilers.
    And lead us not to the nullpointer but deliver us from bugs.
    For thine is the API, the GUI, and the CLI while(true).
    Semicolon;
    Please don't send me questions about how to do something in the UDK via PM. That is better discussed in the forums and we only have limited PM storage.

  16. #176
    God King
    Join Date
    Jan 2010
    Location
    Germany
    Posts
    4,133

    Default

    Got some update on the situation: it seems like all my texture references are gone in the cooked game if they are just indirectly declared in the DefaultProperties.

    I replaced the entire struct system with one where all DrawInfos are Objects that hold the values are which are declared as subobjects as well and then referenced by other subobjects. The result was the same, though: all texture references were cleared out when loading the menu a second time in the cooked game.

    So the only way to get them to work properly is to add another explicit reference in the code itself, like this:
    Code:
    function InitMenuScene()
    {
        DrawInfo0.ComponentTexture = Texture2D'MyPackage.MyTexture';
    }
    Having to do this in addition to declaring a Subobject for each DrawInfo in the DefaultProperties is quite a tedious effort, but so far it seems the only one that gets this to work in the cooked game. Hopefully this is just some kind of engine error that can be fixed by Epic, so it would only need to be a temporary solution.

    The positive side of the change to the Object-based DrawInfo system is that a single DrawInfo can be used by all GUIComponents after it's declaration, so you only need to define a DrawInfo once for every possible appearance of a ButtonComponent and can then let every button reference and use it. This should slightly reduce the memory footprint of the menu.


    Another action I took to reduce the memory footprint is to move the string property of buttons from the CaptionDrawInfo to the DefaultProperties of the Component itself. This basically prevents to have different captions for different states of the Component, but I considered this a rare case anyway. The way it works now, the CaptionDrawInfo only defines the style of the text (and thus can easily be reused everywhere) while the Component itself is responsible for the text that should be drawn.

    I also changed the localization system slightly. Only the MenuScene will now define with a variable which file name the localization file has. The section of the localization will always be the name of MenuScene's class, making it easy to group strings by their usage area instead of their Component's class. A localized string can easily be retrieved by any Component with the wrapper function GetLocalizedString(string keyname).

    Also introduced a new Component: GUIInteractiveComponent. It takes the place that the GUIButtonComponent had previously, except for the caption drawing. All clickable Components now extend this class, including the GUIButtonComponent that introduces the caption again. I just found that many of the extending Components were not making use of the drawing and wanted to reduce the memory footprint for them.


    The next thing I plan to do is to change the system settings behaviour. From UDK-2012-05 on should it be possible to retrieve the current system settings by manually parsing the string output of the SCALE DUMP console command. DUMPAVAILABLERESOLUTIONS outputs all resolutions that are supported by the current system to a string as well. Unfortunately do commands not give a return value before that May build, since it was a MVP request that just recently got introduced.

    (Also, it seems impossible to apply all settings at once. No idea what happened when I tried to do that, but it basically killed my UDK. Not just the current session but also changing my INI in some way that any further UDK session showed only black screens. )




    I will probably upload the changes sometime next week.
    Last edited by Crusha K. Rool; 08-31-2012 at 07:48 PM.
    Our Loop, which art in source code, hallowed be thy keyword.
    Thy condition come, thy instruction be done, in RAM as it is in cache.
    Increment us this day our daily counter,
    and forgive us our typos, as we also have forgiven our compilers.
    And lead us not to the nullpointer but deliver us from bugs.
    For thine is the API, the GUI, and the CLI while(true).
    Semicolon;
    Please don't send me questions about how to do something in the UDK via PM. That is better discussed in the forums and we only have limited PM storage.

  17. #177

    Default

    Dear Crusha,

    I don't know very much about your project but from the description of your issue I just have to ask:

    1. You said you moved your structs into their own objects
    2. Have you tried using BasicSaveObject http://udn.epicgames.com/Three/Unrea...asicSaveObject

    to store the values of your structs to a file on disk,

    and then recover that information after a new map has been loaded and all your data has been lost?

    At this point you can load in all your values that you had, from the file on disk (created by SaveObject)!

    I've used SaveObject/LoadObject to save/load all the data I need from an in-game session of making level geometry dynamically with a mouse, it works great, the UDN standard save feature was way too complex for me to implement quickly.


    Again, I offer this idea just in the hope is it helps you, with virtually no knowledge of your entire project structure.


    Hoping to help

    Rama


    PS: It sounds like you have many many objects with values you want to store, clearly you'd want to collect all these various properties into one big Object that is just list of these properties and save that. After loading you could then use the Big Object to re-distribute all the properties to the various subobjects who lost their data in cooked version.

    I've had no luck saving dynamic arrays with basicSaveObject, just simple variable types.
    Last edited by evernewjoy; 08-31-2012 at 09:23 PM.

  18. #178
    God King
    Join Date
    Jan 2010
    Location
    Germany
    Posts
    4,133

    Default

    Collecting all the data into some super object would not be any better than directly referencing things in code like I do now - basically the same effort. Could probably try to handle it on a per-object base, but it seems way too hacky to me to be worth the overhead of working with actual files.
    Our Loop, which art in source code, hallowed be thy keyword.
    Thy condition come, thy instruction be done, in RAM as it is in cache.
    Increment us this day our daily counter,
    and forgive us our typos, as we also have forgiven our compilers.
    And lead us not to the nullpointer but deliver us from bugs.
    For thine is the API, the GUI, and the CLI while(true).
    Semicolon;
    Please don't send me questions about how to do something in the UDK via PM. That is better discussed in the forums and we only have limited PM storage.

  19. #179
    Prisoner 849
    Join Date
    Jan 2010
    Posts
    949

    Default

    Still waiting for the update Crusha

    anyway, i took the time to create a map with the GUIExampleGameInfo as default gameinfo, cooked and installed it. No problems, everything works just fine, even if i load another map and then go back to the one with the menu. Seems AdvancedExampleMenuScene works miracles?

  20. #180
    God King
    Join Date
    Jan 2010
    Location
    Germany
    Posts
    4,133

    Default

    I found the issue, tbh. It was caused by using the "instanced" modifier only on some Object references but not on all of them, so when a new MenuScene instance was created when returning to the menu, those references were still trying to point to the old Objects that also got deleted when the last map change was committed.

    But anyway, here you go with the new changes. I did not manage to propagate them to the example content yet, though. And it has causing crashes for me when trying to close the game from my main menu (not from the ingame menu, though), so if this crashes for you, we have a common problem to find, otherwise I know at least where I don't need to look.

    • GUIInteractiveComponent is now the base class for all components that are supposed to be clicked or used by the user.
    • GUIButtonComponent is a subclass of it as well and implements caption drawing functionality.
    • DrawInfo structs have been replaced by GUIInfo objects. They are defined as subobject of the MenuScene with individual names and properties and can then be assigned in the properties of any GUIComponent that makes use of them, so you have one central place where you can change your settings and apply it to all using components at once.
    • Added GUIMenuPageOptionScreen to the Example content. It showcases how you can encapsulate menu functionality in a GUIPage so it does not clutter the main MenuScene. It contains all functionality that works in itself and does not need to access other GUIComponents outside of it. You can then instance it in a MenuScene and make full use of it there and still extend it with more buttons if you so desire.
    • Changed Localization system. Each MenuScene now defines with a string the name of the localization file that all of it's Components are going to adhere to. The structure of the localization file is then that each string will be looked up in the [section] that is the name of the owning MenuScene instead of separating them by Component type.
    • Added support for hardware mouse cursors. If set to True, it will read the mouse coordinates directly from the OS instead of instancing a "software" mouse cursor with it's own coordinates. Hardware cursors don't have any smoothing or speed changes applied to them and are also automatically disabled if the players uses a controller input because the 360 pad can not change the hardware cursor in any way.
    Our Loop, which art in source code, hallowed be thy keyword.
    Thy condition come, thy instruction be done, in RAM as it is in cache.
    Increment us this day our daily counter,
    and forgive us our typos, as we also have forgiven our compilers.
    And lead us not to the nullpointer but deliver us from bugs.
    For thine is the API, the GUI, and the CLI while(true).
    Semicolon;
    Please don't send me questions about how to do something in the UDK via PM. That is better discussed in the forums and we only have limited PM storage.

  21. #181
    Prisoner 849
    Join Date
    Jan 2010
    Posts
    949

    Default

    Thanks for updating,

    i'll let you know if i've got the same crash and don't worry about the examplecontent, i will start on that.

    edit:
    systemsettingshandler was not included so the current version (R42) cannot be used without modification!

    this will be solved as soon as possible
    Last edited by thommie; 09-25-2012 at 08:05 AM.

  22. #182
    God King
    Join Date
    Jan 2010
    Location
    Germany
    Posts
    4,133

    Default

    Ah, SystemSettingsHandler is just a renamed version of CustomSystemSettings. I wanted to change that stuff anyway as soon as I update to the next UDK release.

    I was also trying to include Anti Aliasing settings, but for some reason I don't really get any change with this:
    Code:
    /* Sets the Anti-Aliasing type to use.
     *
     * 0 = off
     * 1 = FXAA0 - NVIDIA 1 pass LQ PS3 and Xbox360 specific optimizations
     * 2 = FXAA1 - NVIDIA 1 pass LQ
     * 3 = FXAA2 - NVIDIA 1 pass LQ
     * 4 = FXAA3 - NVIDIA 1 pass HQ
     * 5 = FXAA4 - NVIDIA 1 pass HQ
     * 6 = FXAA5 - NVIDIA 1 pass HQ
     * 7 = MLAA - AMD 3 pass, requires extra render targets
     */
    function SetAAType(int iInt)
    {
        local PostProcessChain Chain;
        local PostProcessEffect Effect;
    
        Chain = WorldInfo.WorldPostProcessChain;
    
        if (Chain != None && iInt < 7)
        {
            foreach Chain.Effects(Effect)
            {
                if (UberPostProcessEffect(Effect) != None)
                {
                    switch(iInt)
                    {
                        case 0:
                            UberPostProcessEffect(Effect).PostProcessAAType = PostProcessAA_Off;
                            break;
                        case 1:
                            UberPostProcessEffect(Effect).PostProcessAAType = PostProcessAA_FXAA0;
                            break;
                        case 2:
                            UberPostProcessEffect(Effect).PostProcessAAType = PostProcessAA_FXAA1;
                            break;
                        case 3:
                            UberPostProcessEffect(Effect).PostProcessAAType = PostProcessAA_FXAA2;
                            break;
                        case 4:
                            UberPostProcessEffect(Effect).PostProcessAAType = PostProcessAA_FXAA3;
                            break;
                        case 5:
                            UberPostProcessEffect(Effect).PostProcessAAType = PostProcessAA_FXAA4;
                            break;
                        case 6:
                            UberPostProcessEffect(Effect).PostProcessAAType = PostProcessAA_FXAA5;
                            break;
                        case 7:
                            UberPostProcessEffect(Effect).PostProcessAAType = PostProcessAA_MLAA;
                            break;
                    }
                    AAType = iInt;
                    SaveConfig();
                }
            }
        }
    }
    Maybe there is a set-function I am missing.
    Last edited by Crusha K. Rool; 09-25-2012 at 08:15 AM.
    Our Loop, which art in source code, hallowed be thy keyword.
    Thy condition come, thy instruction be done, in RAM as it is in cache.
    Increment us this day our daily counter,
    and forgive us our typos, as we also have forgiven our compilers.
    And lead us not to the nullpointer but deliver us from bugs.
    For thine is the API, the GUI, and the CLI while(true).
    Semicolon;
    Please don't send me questions about how to do something in the UDK via PM. That is better discussed in the forums and we only have limited PM storage.

  23. #183
    God King
    Join Date
    Jan 2010
    Location
    Germany
    Posts
    4,133

    Default

    Added a new SeqEvent (can be found under the "GFx UI" category in Kismet) that can get triggered by the MenuScene if it's ActivationTag matches the parameter of the function in the MenuScene. This way can you easily let the menu interact with Kismet to open it up for artists.

    For instance can you make a 3D level background for your main menu and then let the menu trigger different Matinees to move it around in your scene, depending on the currently selected screen. Or just use it to interface with the PlayMusicTrack node to change the music through the course of your menu.


    As a side effect did this also fix the crash bugs that I had, which were apparantly related to an AudioComponent that I instanced in my HUD and then tried to make use of it's delegate in the MenuScene.
    Our Loop, which art in source code, hallowed be thy keyword.
    Thy condition come, thy instruction be done, in RAM as it is in cache.
    Increment us this day our daily counter,
    and forgive us our typos, as we also have forgiven our compilers.
    And lead us not to the nullpointer but deliver us from bugs.
    For thine is the API, the GUI, and the CLI while(true).
    Semicolon;
    Please don't send me questions about how to do something in the UDK via PM. That is better discussed in the forums and we only have limited PM storage.

  24. #184
    God King
    Join Date
    Jan 2010
    Location
    Germany
    Posts
    4,133

    Default

    If you are currently trying to fix up the example content, you might want to wait for the next release. I just finished quite an overhaul on the ButtonComponent and LabelComponent, which slightly changes the way they are set up in the DefaultProperties.

    All in all it gives a bit more flexibility and exposes more options to the user (highlights are the ability to scale your text (while still keeping the alignment) and to add fully customizable font shadows below the text. Fancy!) and opens ways to take even more influence and have fade-pulsing text or color changes.

    I still plan to do similar changes to the texture drawing system before I upload the changes, though, so it might take another day or two. Furthermore did I want to try out if I can hit two birds with one stone and implement the GUI system in a way that makes it a bit easier to set up while also reducing the memory overhead even more. We'll see if it works out.
    Our Loop, which art in source code, hallowed be thy keyword.
    Thy condition come, thy instruction be done, in RAM as it is in cache.
    Increment us this day our daily counter,
    and forgive us our typos, as we also have forgiven our compilers.
    And lead us not to the nullpointer but deliver us from bugs.
    For thine is the API, the GUI, and the CLI while(true).
    Semicolon;
    Please don't send me questions about how to do something in the UDK via PM. That is better discussed in the forums and we only have limited PM storage.

  25. #185
    Prisoner 849
    Join Date
    Jan 2010
    Posts
    949

    Default

    Ok, sounds great.

    sadly due to personal circumstances i haven't been able to start on it yet. It is unlikely that i will in the next couple of days.

    Can't wait to see what you will add in the next update. Don't know if you're using any of that fancy stuff but if you are, maybe some pictures?

  26. #186
    Prisoner 849
    Join Date
    Jan 2010
    Posts
    949

    Default

    Quote Originally Posted by Crusha K. Rool
    -Added InterpDrawInfos. Using them instead of normal DrawInfos provides the
    ability to have the DrawColor interpolate between two values over time. This
    allows for blinking text, for instance when drawing a "Press Start" label in a
    title screen.
    -Fixed bug causing RenderDelta and LastHUDRenderTime to be always 0.
    -Changed more Components to also make use of DrawInfos now, rather than having
    their own set of variables for drawing.
    -Fixed bug causing GUISliders from not having their buttons in cooked games.
    -LabelComponent has now Set-functions for it's text and index changes, so calls
    to OnPropertyChanged() are always possible.
    -GUIComponent::GetComponentValue now returns a float representation of a
    Component's represented value, making it easier to check values of Components
    for further use and debugging.
    Started looking into it, getting the hang of it all.

    Hopefully i can upload a new version tomorrow with a working example menu scene.

  27. #187
    God King
    Join Date
    Jan 2010
    Location
    Germany
    Posts
    4,133

    Default

    Ah, you noticed it.

    Next thing to implement would be RadioButtons with ButtonGroups, context menus and tooltips. All pretty easy to implement, I just didn't get around to do it yet.
    Our Loop, which art in source code, hallowed be thy keyword.
    Thy condition come, thy instruction be done, in RAM as it is in cache.
    Increment us this day our daily counter,
    and forgive us our typos, as we also have forgiven our compilers.
    And lead us not to the nullpointer but deliver us from bugs.
    For thine is the API, the GUI, and the CLI while(true).
    Semicolon;
    Please don't send me questions about how to do something in the UDK via PM. That is better discussed in the forums and we only have limited PM storage.

  28. #188
    MSgt. Shooter Person
    Join Date
    Sep 2007
    Posts
    217

    Default

    I have a feeling I am going to like this more then Snakes uWindow3. This is closer to what the original uWindows was about in UT and from the demo I tried just now of uWindow it just appears to be all of the scaleform CLICK widgets placed on the screen. I would rather not rely on scaleform. I do not see the task bar functionality that the old one had. I am assuming he will implement that or he will make us do all of that ourselves. also please release a new version of your menu with working sample content the one that is uploaded had bad naming conventions with the system settings and got alot of errors before I read I had to rename the settings class. When I finally got it to compile the example was invisible and nothing was clickable.

  29. #189
    Prisoner 849
    Join Date
    Jan 2010
    Posts
    949

    Default

    I just finished getting part of the examplecontent working, started on the options screen and then i will do some tweaking. Expect the update somewhere tomorrow (probably early).

    Did you import the GUI_Buttons_02.psd from here while following the small description provided?

  30. #190
    MSgt. Shooter Person
    Join Date
    Sep 2007
    Posts
    217

    Default

    yeah i did all that, in an older release it worked great, before the new options menu stuff was added now it is invisible

  31. #191
    Palace Guard

    Join Date
    Jun 2007
    Location
    Christchurch
    Posts
    3,781

    Default

    UWindow3 eventually will have a task bar like widget down the road. The initial release of UWindow3 was about getting the proof of concept done.

    I did a lot of work using a Canvas to make a UI but recreating all of the basic widgets took a long time to do. This was of course UWindow2.

    At the end of the day, I understand some peoples reservation about Scaleform, but having used it commercially... it is insanely productive.

  32. #192
    Prisoner 849
    Join Date
    Jan 2010
    Posts
    949

    Default

    Oh that's right, i had the same issues when i started fixing all of it today.

    I don't know what of the examplecontent you were using, but i was planning on removing ExampleMenuScene's content since it is already included in the AdvancedExampleMenuScene.

  33. #193
    God King
    Join Date
    Jan 2010
    Location
    Germany
    Posts
    4,133

    Default

    I just updated the repo to also have the GUI.upk with the button textures used in the example content. Seems more convenient if the users don't have to import it themselves to see the stuff working.
    They just need to put it somewhere in their Content directory, for instance D:\UDK\UDK-2012-07\UDKGame\Content\Shared


    Also, I wish I could split myself a bit more. Currently working on three projects: this GUI system, our own game and a final release and proof of concept maps for my UltimateMappingTools for UT2k4. :/

    (And hell, things are getting really complicated when you go back to UE2 after all that time and don't have those fancy individual timers anymore…)
    Last edited by Crusha K. Rool; 10-10-2012 at 02:58 PM.
    Our Loop, which art in source code, hallowed be thy keyword.
    Thy condition come, thy instruction be done, in RAM as it is in cache.
    Increment us this day our daily counter,
    and forgive us our typos, as we also have forgiven our compilers.
    And lead us not to the nullpointer but deliver us from bugs.
    For thine is the API, the GUI, and the CLI while(true).
    Semicolon;
    Please don't send me questions about how to do something in the UDK via PM. That is better discussed in the forums and we only have limited PM storage.

  34. #194
    Prisoner 849
    Join Date
    Jan 2010
    Posts
    949

    Default

    -Changed the base class of GUICompatibleGameInfo to UDKGame, fixed a bug where you would be in both first and third person.
    -Added StartText to GUILabelComponent so the first line of the component can be set in the defaultproperties.
    -Pages are only popped now when any AbortKey is released, this makes sure you can still press escape without closing the menu after having pushed a page.
    -Fixed the AdvancedExampleMenuScene to be working, GUIMenuPageOptionScreen has been included to show how to use GUIPages.
    -Removed ExampleMenuScene, its contents are already in AdvancedExampleMenuScene.
    -Updated the localization file when fixing the examplecontent.
    at R46.

    Since the AdvancedExampleMenuScene is quite large, i was thinking of writing a simple getting started tutorial covering what you need to know in order to start creating your own menu.


    And i can understand that having to switch between engines can become confusing, but you have yourself to blame for all the work you are doing Crusha

  35. #195
    God King
    Join Date
    Jan 2010
    Location
    Germany
    Posts
    4,133

    Default

    That StartText wasn't really necessary, was it? You can simply use LabelText(0) = "Bla" when declaring the new Component in the DefaultProperties. Just because it's protectedwrite doesn't mean it's locked from having default values.
    Our Loop, which art in source code, hallowed be thy keyword.
    Thy condition come, thy instruction be done, in RAM as it is in cache.
    Increment us this day our daily counter,
    and forgive us our typos, as we also have forgiven our compilers.
    And lead us not to the nullpointer but deliver us from bugs.
    For thine is the API, the GUI, and the CLI while(true).
    Semicolon;
    Please don't send me questions about how to do something in the UDK via PM. That is better discussed in the forums and we only have limited PM storage.

  36. #196
    Prisoner 849
    Join Date
    Jan 2010
    Posts
    949

    Default

    ok, for some reason it wouldn't work, no matter what i tried (including that).

    and i just noticed the systemsettings class is still misnamed in the options page.

  37. #197
    Prisoner 849
    Join Date
    Jan 2010
    Posts
    949

    Default

    Quote Originally Posted by Crusha K. Rool View Post
    Next thing to implement would be RadioButtons with ButtonGroups, context menus and tooltips. All pretty easy to implement, I just didn't get around to do it yet.
    Started reworking the GUISliderManager to extend GUIContainerComponent, and fixing it since it wasn't properly working. It's coming along nicely.
    also discovered that the alignment was wrong, bottom was top and reversed.

    Got some ideas on how to do the RadioButtons, but i wouldn't mind it if you shared yours
    same goes for the context menus, though it will be a while until i can start on that.
    i'm still in the dark about the tooltips... i was thinking you would need a timer to determine when the tooltip should show since you wouldn't want it to show instantly after hovering a component.

  38. #198
    Prisoner 849
    Join Date
    Jan 2010
    Posts
    949

    Default

    oh and did you ever use bConstrainDrawAreaToContainer?

    it seems so scale all of the components, and that's not really what i thought it would be doing.

  39. #199
    Prisoner 849
    Join Date
    Jan 2010
    Posts
    949

    Default

    new revision at R47:
    - Moved Width and Height calculation to GUIComponent from GUIVisualComponent.
    - Introduced SetPos function to GUIComponent for setting a components position.
    - Fixed some bugs in GUIBaseSliderComponent.
    - Alignment in GUILabelComponent was all wrong, should be fixed now.
    - Solved disabled components still being clicked.
    - Updated GUIScrollBoxComponent to include the buttons in enabling/disabling.
    - Included the movement of the buttons in GUIScrollBoxComponent.
    - Updated GUISliderManager, it now extends from GUIContainerComponent.
    - Added a small comment to GUITextBox, it is on the list to be improved with some new features.
    - Reworked CustomSystemSettings to only include settings as defined at http://udn.epicgames.com/Three/SystemSettings.html (still some 5 functions missing, haven't looked for them yet).
    - Fixed the systemsettings class in GUIMenuPageOptionScreen.
    - Removed two obsolete settings already included in the GUIMenuPageOptionScreen.
    - Added a horizontal slider to GUIMenuPageOptionScreen, for use in GUISliderManager.
    - 'Misplaced' a label in GUIMenuPageOptionScreen, mainly used to show that GUISliderManager actually works with a horizontal slider.
    - Updated the SliderManager_1 in GUIMenuPageOptionScreen.

    Just noticed i missed removing the starttext from the labelcomponent, will have to remember that for the next revision.
    Enjoy!

  40. #200
    Prisoner 849
    Join Date
    Jan 2010
    Posts
    949

    Default

    - Removed StartText from GUILabelComponent since it was not needed.
    - Fixed some issues in GUISliderManager.
    - Introduced GUIButtonGroup together with GUIRadioButtonComponent.
    - Introduced 3 new components for lazy people, the DynamicComponentPlacers can be used to easily create components ( currently only labels and radio buttons) without having to copy-paste all of the buttons in the defaultproperties. Downside is that not all components are in the defaultproperties, but scattered around your class.
    - Updated GUIMenuPageOptionScreen to have the ability to select a resolution from a list of available resolutions, credit for retrieving the current and available resolutions goes to Jetfire (http://forums.epicgames.com/threads/...ind?p=30634461).
    - Added a line to the localization file for the Apply button in GUIMenuPageOptionScreen.

    at R48.

    i apologize for any mistakes made, couldn't really concentrate properly this week.


 
Page 5 of 7 FirstFirst ... 34567 LastLast

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Copyright ©2009-2011 Epic Games, Inc. All Rights Reserved.
Digital Point modules: Sphinx-based search vBulletin skin by CompletevB.com.