[Bug Report] Scaled 3D Widgets are erroneously offset with z = 1

Hello Epic and Friends!

This is both a report of a bug as well as a workaround solution that I could not find on here, I will remove this if I see evidence of similar report/workarounds.

Scaling a widget in an actor blueprint causes the click collision on the buttons to be quite offset. Eventually, depending on how scaled things are, it can become unworkable.

This is simply solvable however, by NOT leaving the widget Z at 1. Z probably shouldn’t have any say in the matter here, and may be the thing to fix, but in order to fix this error, simply set z to something comprable to your x y scales. so if x and y are 0.01, set z to 0.01 to compensate.

I hope this helps someone!

~Spiris

  1. Spiris thanks for offering that, but in a umg, Z is an integer. Did you mean to say that if you scale your umg down to 0.1, then you should use a Z value of 10 or 100? (didn’t work for me). You can’t set it to 0.1

(in ue 4.9)

  1. I cannot get OnMouseMove to fire for a Border in a 3d widget in a blueprint.

  2. I think the source of the issue is Scaling. 3d umg’s are HUGE and have horrible resolution from a reasonable distance, and so we must scale them down to 10 or 20%.

  3. I have tried all the tricks, setting pivot points, enabling the cursor in various ways, setting controller input to UI and Game mode, tried all scaling combinations and root/child component ordering in the parent blueprint, etc. I can only get OnMouseDown to fire for a 3d widget Border if that widget has been scaled down.

I’m pretty sure it’s all related to UE-20777. Either the position or rotation of the area that SHOULD be detected by OnMouseMove in 3d space is off for the widget binding it. Something of the like. Very annoying and I can only rely on buttons for 3d umgs for the time being. In any case please let me know if I am missing something about being able to set Z to a decimal value.

Thanks!

Never

Hey Never,
I am not talking about the Z in umg, as I am pretty sure that is for sorting.
I have mouse overs and clicks all working as intended in my project, in 4.9 I have attached a screenshot for reference.

As you can see the areas that are in red are of most importance. If you keep the scale of the actor component (left side) uniform, you should not run into any issues in mouse collision detection. Make sure that the other two fields match and you should be golden. (it is often a good idea to use custom res with 3D widgets, as they aren’t limited by viewports)

Spiris you rock!!! Wow i’ve been beating my head against a wall for days!!! I set the draw size to custom for the umg, matched it with my draw size for the widget component in the parent blueprint, and set the z scale for the widget in the parent blueprint to match my x and y scales. IT WORKED!!!

Oddly enough after it started working, i set my draw size and scale back to where they were before, and it still works now. In any case you have solved my OnMouseMove problems! Good on you. Very, very much appreciated. Wish i would’ve found this post a couple days ago.

thank you!!
Never