UMG Documentation for 4.4 Preview

Unlike everyone else. I have been trying to get the animation part to work.
Trying to animate for example the button size.
Alternate is simply changing the box size using BP just like set opacity and color.
There is a function that changes size. But it doesn’t work.
Nor does sequencer animation works.

Also the sequencer is a trial and error kinda thing. Nothing is obvious, its almost encrypted.
I would suggest having a keying symbol next to the attributes that can be animated like in after .
Basically AE is a perfect example when it comes to UI animation.

Having had alot of experience in AE, I thought sequencer would be a breaze but sadly. Sequencer I have spent hours trying to get it to work after keying the button sizes. it just doesn’t work.
And also its work flow is not self explanatory, its cryptic.

Basically i want to animate button size or atleast change it dynamically during runtime.
would further help in my implementation of menu in/out transitions.

I cant even touch transitions until i can get basic animation work.

Hi Bladerskb, Animation in UMG is still in the infancy stage, it’s still very buggy. It will eventually be as easy as AE, but animation has had the least amount of work done to it. Give it a try in 4.5 and it should be at least have basic functionality.

Does anyone know how to get ComboBoxes working? I can only seem to set their content as actors from the content browser and am unsure how to use them to do anything meaningful.

4.4 ruined modal for me. I can’t seem to be able to keep the mouse within the screen!

Edit: Found a fix in editor preferences under play in play in editor options you need to check Game gets mouse control

How should I get a widget to follow the cursor? I have the following setup in my player controller, but the widget does not move at all:

In my widget blueprint:

I’ve used the debug object on my player controller, and the node flow seems fine. But the tooltip doesn’t move from the upper right corner of the window.

I’m also not sure how to toggle visibility of my widget. Is it related to IsEnabled or Visibility? Should I set the IsEnabled/Visibility flag for every child of my widget blueprint? Toggling the IsEnabled flag on the hierarchy root doesn’t seem to do anything.

Checking modals allows me to use my mouse for click events but it disables my keyboard. Not using it allows me to use the keyboard but it stops mouse click events what should I do? I want the click events for the selection box implementation and I want the keyboard for shortcuts!

Hey Nylira,

That’s a way to get it to follow the cursor, the only thing you’re missing is to check the Absolute Layout option when adding the widget, then those calls to set fullscreen position will work.

To toggle visibility use SetVisibility, you can just do it on the root widget and it will effect the children. IsEnabled just interaction, not visibility.

It shouldn’t disable the keyboard, however now that it is modal, the UI gets ALL the events. Modal is intended for main menus and pause menus…etc, times when you don’t want ANY input to go anywhere but to the UI. Because of that, it’s going to receive the events using the slate method of event capture:

&d=1408104361

I’ll see what I can do about making the normal mouse and key events in blueprints continue to work. The real bug is that you need to use modal to do what you’re trying to do, that should be unnecessary for hybrid RTS style UIs.

Hey , 's some feedback I gathered while doing my UI yesterday:

1:Sometimes the ‘create widget’ node does not list all of the blueprint widgets I’ve created. After going to the widgets and hitting recompile, they appear in the list again.

2:Z-Order didn’t quite work ( image showed over textblock )in the following set-up:

-overlay
–Image
-overlay
–textblock

3: When binding the ‘Text’ variable of a textblock, it might be nice to show some kind of a preview anyways. To see how the text is styled.

4: if I bind the ‘OnTextCommit’ event of a EditableText widget, I can get a infinity loop error thrown at me when I remove the widget. is fixable if I unbind the event right before I remove the widget.

5: How can I use ‘Escape’ to remove the whole widget when showing it modal?

6: Is there an easy way to re-order child widgets? ( I just drag them all over again in the same order each time :frowning: )

7: The RGBA sliders go beyond 1.0. Is there a reason for or is it just a bug?

8: Structs such as ETextCommit are not available in UMG so its hard to do a switch on the enums ( I just looked it up, what the int values mean )

9: Having 2 images in 1 overlay yields a white texture. ( is somehow fixed now that I deleted an UNUSED slate brush…very werid )

I wrote these in the middle of the night yesterday, if any of them don’t make sense, please let me know and I’ll try and explain in detail.

Having said , I think UMG already is at an awesome stage! I managed to build a scoreboard, kill screen( with auto populated textblocks for name and score and your killers name and score ) and now working on a chatbox. I even got some animation going! I love where UMG is going to! Keep up the great work.

's a video of what I have so far in action:

  1. Yup known.
  2. Z-Order only works within an overlay, So you do 1 overlay panel, with two children.
  3. I think what I’m going to do is make all bindings turned off in the designer, and the text that shows up will be whatever you have in the property field.
  4. Hmm, can you give me some more information, what were you doing in the on text commit?
  5. Check my last response about the overridable functions and key events.
  6. Reorder them in the designer? Working on it, eventually you’ll be able to reorder them in the hierarchy view.
  7. HDR. Eventually it makes sense when the UI can render as part of the scene and produce a glowing effect by having values greater than 1.
  8. Will look into it.
  9. Magic :slight_smile:

Man that video is awesome, thanks for all the feedback. How are you doing the slide out animation of the scoreboard?

  1. Awesome, that should help :slight_smile:
  2. I’ll try and replicate the tonight and send you whatever info I have.

The animation is done by simple animating the ‘Left’ offset of an overlay to go from 0 to 200 and I play the animation when I construct it. It was very easy to do, but the animation workflow is very wonky atm. I didn’t comment on it yet because you stated that it’s SUPER early, but I guess it can’t hurt ( II can wait for the animation system :slight_smile: ):

10: it would be nice if the time slider could snap to 0.
11: I don’t understand how to add new animations to feed the ‘Play Animation’ node. ( It asks for a string, so I used ‘DefaultAnimationData11’ which was shown on top of my time slider and it worked! )
12: In the time slider there is a box and keys. I can move the keys but also move the box and resize it. What does the box do?

Also, is another thing I’m a bit confused about:
13: Sometimes when creating my UI, some random widgets become variables. What is based on? Is a bug? It’s annoying to go back in and uncheck them hehe.

I just tried out the events ( OnKeyUp to be specific ) and gives me a struct for KeyBoardEvent but there’s nothing I can do with it. It’s a similar as #8 :slight_smile:

And about 8: So I keep getting it more often now, that widgets look white or gray etc. As you said in the answerhub it’s beceause they are not getting cooked( so I manually cook it now ). Just in-case anyone else encounters the same problem.

I found what I was doing wrong. My released mouse button was executing for unknown reasons and when I checked it turned out that I was removing the widget from viewport while the mouse was pressed which caused the release mouse button to fire off. Or so what I think right now. Been trying to figure out a fix for the past 4 hours :frowning:

Note: I had Modal unchecked. doesn’t happen if modal was checked.

Edit: Ya, it’s the problem removing the widget causes the mouse to fire off released event.

Modal and Show Cursor are easy and convenient but how do we focus the mouse back in the game for example afte we close the menu?
By default you need to click once on the screen to get the game’s control back and I wish to avoid that.

Bug in slate/umg, working on it :slight_smile:

Hey , I noticed it’s also impossible to query the ‘ESlateVisibility::Type’ enum. I’ll stop posting about these enums, I assume there’s lots of them not in there yet hehe.
Also, is a tiny thing, but it would be nice if the throbber could space out its dots across the complete width ( or set custom spacing etc )

Oh is one more from me, I managed to make a in-game server browser with UMG, was fun doing it!

Great that’s actually better than the ‘focus to game’ blueprint node I was expecting.

I have some concerns regarding the 3D UI. Will it be affected by motion blur?
We want to have the now common HUD elements with a slight rotation on them (you know left and right elements are rotated in oposite directions slightly to give you an impression of depth) and the entire HUD would be controlled by physics (so the hud is bumping up and down when you jump for example).

Transparent objects such as HUD elements placed in front of the camera are not picked up by the depth buffer and as a result the motion blur on those elements are typically very strong, because of that HUD elements are not readable when they move.

Another way I hoped was to have the ability to ‘rotate’ for example a brush or picture in the depth direction (not 2D rotation), the same way you can rotate HTML DIV, its not true 3D but it looks like it and that does the trick for ‘3d’ huds.

Lastly, regarding scrolls, I hope to see some more advanced vertical boxes that would for example allow me to have a picture on the left, a button in the middle and some text on the right. It could be used for example to list players and mute their voice with a button, or to list actions to bind to a keyboard/controller in the usual controller settings menu. Basically, you would setup one single row properly, then just copy past it to fill in the list as much as necessary, rename the text accordingly, etc. and if the content gets out of bounds a scrollbar would appear.

Keep the amazing work coming, every release feels like Christmas for us ^^

That’s exactly how it works now. In the video above that’s how I do the server browser. It consists of 2 widgets. ServerContainer and SingleServer. I populate the ServerContainer with SingleServer instances ( and I set their variables as needed ). It’s a really powerful workflow!

Right but you don’t have the scroll, or do you?

You can put horizontal boxes inside vertical scrollboxes.