Announcement

Collapse
No announcement yet.

Editor Utility Widgets Feedback

Collapse
This is a sticky topic.
X
X
  • Filter
  • Time
  • Show
Clear All
new posts

    Editor Utility Widgets Feedback

    Editor Utility Widgets, new in Unreal Engine 4.22, allow you to modify the layout of the editor user interface and set up Blueprints just like UMG widgets. These are Editor-only UIs, and the current implementation enables you to create custom tabs that can be selected from the Windows menu just like existing Editor tabs.

    And we'd like your feedback! How are you using them? What changes would you like to see? We want to hear it all!

    If you haven't experimented with them yet, check out the documentation below or our recent livestream:

    Editor Utility Widgets
    Editor Scripting How-Tos
    Creating Editor Utility Widgets Livestream


    #2
    Hey folks! If you want to play with the examples I showed on the live stream, you can download them from GitHub.

    Give me a shout here or on Twitter if you have any questions!
    Last edited by pfist; 04-08-2019, 04:46 PM.
    Join Unreal Slackers, the largest Unreal Engine communuty on Discord! → https://unrealslackers.org
    Have a question? Give me a shout on Twitter → https://twitter.com/heypfist

    Comment


      #3
      Suggestion #1: Access to more editor-specific events (e.g. actor selection changed, actor(s) moved, actor(s) updated, etc.). This would make it possible to do things like display real-time information in my widget's tab without using Tick.

      Suggestion #2: Expose functions for duplicating actors. I want to be able to make "smart" copy tools that allow users to quickly copy actors in specific patterns and/or specific distances.
      Last edited by pfist; 04-08-2019, 04:59 PM. Reason: Added a second suggestion
      Join Unreal Slackers, the largest Unreal Engine communuty on Discord! → https://unrealslackers.org
      Have a question? Give me a shout on Twitter → https://twitter.com/heypfist

      Comment


        #4
        I think Editor UMG is great! I did some tests and i like it.
        Feedback:

        +1 for editor events.
        Also, more access to the editor viewport. Right now only camera position is accessible, would be nice to have also other stuff like fov, viewport size etc.
        Asset list widget, like the standard palette or content browser, so you can drag- and drop into level etc.
        Snap Plugin for EditorSnap Plugin for GamesModular Japanese House
        TwitterBlogYoutubeitch.io

        Comment


          #5
          This feature has been awesome so far, can do a lot of stuff with it.

          My feedback is mostly that we quickly reach the limits of it as soon as we try to do more advanced things than just a few buttons that do simple actions.
          Advanced display of data is very challenging, and could be made way more simple.
          Ideally it'd be great if we could have "editor specific" UI items like tables, drop downs, filters etc... (see below)


          UMG Specific

          What i'm struggling with at the moment is making UI that will display data in the way the editor UI would normally do.
          I end up reaching the limit of UMG being made for ingame UI and not having access to more editor-like kind of UI.

          So doing something like a big table with columns that can be resized seem to be almost impossible without doing complicated workaround and hacks.
          My one feedback would be to consider adding very simple ways for people to replicate editor style UI functions, such as tables (with resizable columns), right click menu, drop down buttons, etc...

          This is the kind of display i'm trying to go for (Statistics window), and all the nice features you get from having editor specific UI.
          Click image for larger version  Name:	statistics.jpg Views:	1 Size:	119.6 KB ID:	1605115

          But that's as far as i was able to go without doing crazy things, you can see it's far from ideal:
          Click image for larger version  Name:	failresize.gif Views:	1 Size:	230.7 KB ID:	1605116

          Drag n drop
          An "easy" way to handle drag n drop of assets into the editor widget BP (or vice versa) with a specific UI element (ideally not with a bunch of blueprint node, but a specific class of UI element that is like an "object picker drag n drop target", the exact same way you can drag and drop a mesh into a static mesh property in the editor for example.)

          UI Styles
          Another point that seems very time consuming for no reason is having to handle the state of items in the UI manually (like hovered/selected...).
          It seems only the button class has a "style" property that allows easy edit for these states, but if I end up having to use a listview, i have no access to those, and have to do them all manually with events...

          What could be good for editor widget BP, is to have an option to inherit the overall style/theme of the editor (match button styles, selection colors etc...)


          Blueprint specific
          Haven't found a case yet where I didn't have access to the BP i needed.
          A lot of it is in the Editor scripting plugin, which is off by default, even though editor widget BP is on by default so that's a bit confusing.
          Last edited by Christoufu; 04-08-2019, 06:17 PM.

          Comment


            #6
            I’ve been building a list of General blutility requests for a while and a lot of them will fit here so I’ll post some more on Thursday when I’m back at my PC, but the ones already mentioned here (all of them) are a big +1 for me. I think the single biggest one for me besides those ones, is being able to bind key shortcuts to utility events/functions.
            Dev Blog
            Twitter: @TheRealSpoonDog
            150 FREE Blueprint functions for your project

            Comment


              #7
              I'm using these in combined with my data tables and enums (my game is entirely modular) to save and quickly populate building presets. It's saving me a ton of time in world creation and so far works seamlessly due to the get selected level actors function. Great work, look forward to doing more with this especially as UMG/UX stuff is my bread and butter in freelance so blueprinting in UMG is insanely fast.
              Follow Unreal Dev Grant winner KINETIK's prgress on our YouTube Channel or FB page

              Comment


                #8
                I can`t find "filter by ID Name" function...where is it ?

                Comment


                  #9
                  A tool I'm working on uses the Procedural Mesh Component to generate meshes for my levels in-editor. One of the things I want it to do is convert the Procedural Meshes into Static Meshes since they're being made in-editor and don't need changed during gameplay. At the moment this functionality isn't exposed to Blueprints, so I need to manually go into each instance of the Blueprint, select the Procedural Mesh Component, then in the PMC's details panel click on the "Create StaticMesh" button. It would be amazing if this could be exposed to Blueprints for Editor Scripting.

                  Comment


                    #10
                    At around 53:35 of the youtube copy of the stream Lauren mentioned that you can only save the variable to the currently opened instance of the Widget. Really need a way to save variables to the Widget asset (to the actual asset so that it can be easily updated using source control)
                    Also would definitely like to see those editor only widget components for being able to select assets based on class.
                    Basically the two I need to make the Batch Rendering tool I want to make for easily setting up batch scripts for Sequencer.

                    Comment


                      #11
                      Perhaps I missed it but is there any way to project to the viewport or render UMG in the editor viewport? Would be great for having overlays.
                      Website:http://www.NonLocalitySoftware.com
                      Facebook: www.facebook.com/NonLocalitySoftware
                      Twitter: https://twitter.com/NonLocality_Dev
                      Instagram: @nonlocalitysoftware
                      Discord: JBBym8F

                      Comment


                        #12
                        Also I know variables in the editor UMG dont get edited permanently, but is there a way to change values of blueprints or assets? For example if I wanted to make a quest outliner UMG tool to help visualize quests, could that change the value of a data table or .uasset as my developers change out tasks or requirements? Or is it locked to editing values in the level instances?
                        Website:http://www.NonLocalitySoftware.com
                        Facebook: www.facebook.com/NonLocalitySoftware
                        Twitter: https://twitter.com/NonLocality_Dev
                        Instagram: @nonlocalitysoftware
                        Discord: JBBym8F

                        Comment


                          #13
                          Thanks for all the feedback and questions so far, folks! I will do my best to get answers for all of you here over the next little while, but hope you can bear with me as I will probably have to do some investigating myself. There's lots of cool applications mentioned in here, so I'm looking forward to giving things a try!

                          Comment


                            #14
                            I've had this error a few times since starting to play with the editor utility widget - not sure if its to do with the widget or just a 4.22 UMG thing, and I don't have a reliable repro yet but I'll leave this here:
                            Code:
                            LogOutputDevice: Error: === Handled ensure: ===
                            LogOutputDevice: Error: Ensure condition failed: !IsGarbageCollecting() [File:D:\Build\++UE4\Sync\Engine\Source\Runtime\UMG\Private\Slate\SObjectWidget.cpp] [Line: 43]
                            LogOutputDevice: Error: SObjectWidget for 'Spoon_Tools_Rollout_C /Engine/Maps/Entry.Entry:Spoon_Tools_C_0.WidgetTree_0.Spoon_Tools_Rollout' destroyed while collecting garbage.  This can lead to multiple GCs being required to cleanup the object.  Possible causes might be,
                            LogOutputDevice: Error: 1) ReleaseSlateResources not being implemented for the owner of this pointer.
                            LogOutputDevice: Error: 2) You may just be holding onto some slate pointers on an actor that don't get reset until the actor is Garbage Collected.  You should avoid doing this, and instead reset those references when the actor is Destroyed.
                            LogOutputDevice: Error: Stack:
                            LogOutputDevice: Error: [Callstack] 0x00007ff9ad4cdc3e UE4Editor-UMG.dll!UnknownFunction []
                            LogOutputDevice: Error: [Callstack] 0x00007ff9ad3526ea UE4Editor-UMG.dll!UnknownFunction []
                            LogOutputDevice: Error: [Callstack] 0x00007ff9af46960a UE4Editor-SlateCore.dll!UnknownFunction []
                            LogOutputDevice: Error: [Callstack] 0x00007ff9af94080e UE4Editor-Slate.dll!UnknownFunction []
                            LogOutputDevice: Error: [Callstack] 0x00007ff9af933068 UE4Editor-Slate.dll!UnknownFunction []
                            LogOutputDevice: Error: [Callstack] 0x00007ff9af936ee9 UE4Editor-Slate.dll!UnknownFunction []
                            LogOutputDevice: Error: [Callstack] 0x00007ff9ad407c8b UE4Editor-UMG.dll!UnknownFunction []
                            LogOutputDevice: Error: [Callstack] 0x00007ff9d0d10deb UE4Editor-CoreUObject.dll!UnknownFunction []
                            LogOutputDevice: Error: [Callstack] 0x00007ff9d0cee40c UE4Editor-CoreUObject.dll!UnknownFunction []
                            LogOutputDevice: Error: [Callstack] 0x00007ff9d0c9ce0d UE4Editor-CoreUObject.dll!UnknownFunction []
                            LogOutputDevice: Error: [Callstack] 0x00007ff9d0c9c3ea UE4Editor-CoreUObject.dll!UnknownFunction []
                            LogOutputDevice: Error: [Callstack] 0x00007ff9aca42265 UE4Editor-Kismet.dll!UnknownFunction []
                            LogOutputDevice: Error: [Callstack] 0x00007ff9ae525404 UE4Editor-UnrealEd.dll!UnknownFunction []
                            LogOutputDevice: Error: [Callstack] 0x00007ff9acb2dad6 UE4Editor-Kismet.dll!UnknownFunction []
                            LogOutputDevice: Error: [Callstack] 0x00007ff9acb48e78 UE4Editor-Kismet.dll!UnknownFunction []
                            LogOutputDevice: Error: [Callstack] 0x00007ff9af7917ca UE4Editor-Slate.dll!UnknownFunction []
                            LogOutputDevice: Error: [Callstack] 0x00007ff9af8690e2 UE4Editor-Slate.dll!UnknownFunction []
                            LogOutputDevice: Error: [Callstack] 0x00007ff9af84aa44 UE4Editor-Slate.dll!UnknownFunction []
                            LogOutputDevice: Error: [Callstack] 0x00007ff9af9029d2 UE4Editor-Slate.dll!UnknownFunction []
                            LogOutputDevice: Error: [Callstack] 0x00007ff9af754021 UE4Editor-Slate.dll!UnknownFunction []
                            LogOutputDevice: Error: [Callstack] 0x00007ff9af7d02c1 UE4Editor-Slate.dll!UnknownFunction []
                            LogOutputDevice: Error: [Callstack] 0x00007ff9af7baa8a UE4Editor-Slate.dll!UnknownFunction []
                            LogOutputDevice: Error: [Callstack] 0x00007ff9af7b03d4 UE4Editor-Slate.dll!UnknownFunction []
                            LogOutputDevice: Error: [Callstack] 0x00007ff9d148b8e0 UE4Editor-ApplicationCore.dll!UnknownFunction []
                            LogOutputDevice: Error: [Callstack] 0x00007ff9d147ef9f UE4Editor-ApplicationCore.dll!UnknownFunction []
                            LogOutputDevice: Error: [Callstack] 0x00007ff9d148d77f UE4Editor-ApplicationCore.dll!UnknownFunction []
                            LogOutputDevice: Error: [Callstack] 0x00007ff9d147c090 UE4Editor-ApplicationCore.dll!UnknownFunction []
                            LogOutputDevice: Error: [Callstack] 0x00007ff9e8e26d41 USER32.dll!UnknownFunction []
                            LogOutputDevice: Error: [Callstack] 0x00007ff9e8e26713 USER32.dll!UnknownFunction []
                            LogOutputDevice: Error: [Callstack] 0x00007ff9d148e946 UE4Editor-ApplicationCore.dll!UnknownFunction []
                            LogOutputDevice: Error: [Callstack] 0x00007ff6a5d45d3e UE4Editor.exe!UnknownFunction []
                            LogOutputDevice: Error: [Callstack] 0x00007ff6a5d5554c UE4Editor.exe!UnknownFunction []
                            LogOutputDevice: Error: [Callstack] 0x00007ff6a5d555ca UE4Editor.exe!UnknownFunction []
                            LogOutputDevice: Error: [Callstack] 0x00007ff6a5d6315c UE4Editor.exe!UnknownFunction []
                            LogOutputDevice: Error: [Callstack] 0x00007ff6a5d65b7e UE4Editor.exe!UnknownFunction []
                            LogOutputDevice: Error: [Callstack] 0x00007ff9eb683dc4 KERNEL32.DLL!UnknownFunction []
                            LogOutputDevice: Error: [Callstack] 0x00007ff9eb943691 ntdll.dll!UnknownFunction []
                            Dev Blog
                            Twitter: @TheRealSpoonDog
                            150 FREE Blueprint functions for your project

                            Comment


                              #15
                              Another suggestion would be for an eye dropper type of tool or widget for editor utility widgets incase we only need to select one actor in the level for something, or a specific type of actor.. that would be nice

                              Comment

                              Working...
                              X