View Issue Details

IDProjectCategoryView StatusLast Update
0002906NoesisGUIUnrealpublic2024-01-22 11:56
ReportervogelLightword Assigned Tohcpizzi  
PrioritynormalSeveritymajor 
Status resolvedResolutionno change required 
Product Version3.2 
Target Version3.2.3Fixed in Version3.2.3 
Summary0002906: Unreal controller navigation broken
Description

We use Noesis to navigate in menus and other navigable user interfaces. When having a list of buttons and trying to navigate through it, we can no longer use the gamepad to do it. Keyboard navigation works fine.
It feels like that problem appeared with the EnhancedInput-support for noesis, but that's a blind guess as we're not able to trace back long enough.
We're using unreal engine 5.2 and noesis plugin 3.2.2.
Reproducable also with the BrushShaders sample (we didn't try any other).

The code in which the problem seems to lie is in NoesisInstance.cpp line#1495.
Please let us know if we're missing anything, we just can't spot the problem on our side! It's a major problem for us that recently came to surface as we're working on implementing the ui and controller-support.
Thanks in advance!

Steps To Reproduce

1: Start unreal engine (5.2 f.e.) with the BrushShaders sample (or probably any other with native navigation)
2: use keyboard to navigate through interactable objects
3: use controller (d-pad or left thumbstick) to navigate through the interactable objects

Problem: Controller doesn't do anything as KeyToNoesisKey returns nullptr
Fix: Controller navigation works just as well native as keyboard navigation

PlatformAny

Activities

sfernandez

sfernandez

2024-01-08 12:57

manager   ~0009055

In order to use the gamepad in Unreal you need to do a couple of things as explained in the Unreal tutorial: https://www.noesisengine.com/docs/Gui.Core.UnrealTutorial.html#gamepad

  1. Go to the Level Blueprint and configure the Enhanced Input to use the Noesis Controller config (or any one other actions configuration you want to use).
  2. Enable Actions in the View to use them as input.

I've just did that in the Materials sample you mentioned and the gamepad works as expected to move the focus between the buttons and click them. Could you please try that?

ttermeer-rcg

ttermeer-rcg

2024-01-08 15:11

reporter   ~0009056

Unlike vogelLightword , we are on Unreal 5.3.2. I tried the same Materials sample and also experience the same issue.
On Unreal 5.3, there is no "Add Player Mappable Config" in the Enhanced Input - those have been deprecated (see https://www.noesisengine.com/bugs/view.php?id=2919). So I used "Add Mapping Context" (see attached image)
As we are unable to make it work I thought this was the same issue as reported by vogelLightword but maybe it is different.

gamepad_setup.png (113,138 bytes)   
gamepad_setup.png (113,138 bytes)   
ttermeer-rcg

ttermeer-rcg

2024-01-08 15:19

reporter   ~0009057

My bad, I forgot the footnote where it says the "Enable Action" in the view blueprint!
It works now.

sfernandez

sfernandez

2024-01-08 16:55

manager   ~0009058

Can we close this ticket then?

vogelLightword

vogelLightword

2024-01-09 08:50

reporter   ~0009064

Last edited: 2024-01-09 08:58

In our code we can't make it work, no matter what we set up (unless we actually modify the KeyToNoesisKey function). We have added an appropriate mapping context and it's added in game, the action (up in this case) does fire but it doesn't navigate up. The view has actions enabled and navigating the buttons with the arrow-keys on keyboard works just fine. As you can see in my attached screenshot, the mapping-context is added, OneNoesisControllerMapping action Up is triggered by the gamepad but it just doesn't navigate to the above buttons (same for navigating down).
Second image shows the view-setup. We add the mapping context via AddMappingContext as well. We also set the keyboard focus on the new widget (where "w" is the new widget):
UWidgetBlueprintLibrary::SetInputMode_GameAndUIEx(this->PCRef, w, EMouseLockMode::LockAlways, false, true);
w->SetKeyboardFocus();
Can you see anything we might be doing wrong/differently; anything I'm missing?

image.png (1,922,018 bytes)
image-2.png (48,065 bytes)   
image-2.png (48,065 bytes)   
vogelLightword

vogelLightword

2024-01-09 10:22

reporter   ~0009065

Okay managed to find the issue. The path of input-actions that are responded to are hard-coded (inside UNoesisInstance::InitInstance()), we duplicated them and had them in a different folder (so inside the project, not inside the plugins folder). Removing the hard-coding helped.
Another issue that arose from this is that we want to react to the "up"-action (which also refers the up-arrow-key). If we now add the up-arrow to the mappingcontext (for action up) it works fine in that case but now navigation is triggered twice (so instead of moving up one button, we move up two buttons). I attached a screenshot of what I mean. It's a different issue though, navigation now works after we realized the inputAction-paths are hard-coded (might be important for the documentation?). Thanks for the help!

image-3.png (62,462 bytes)   
image-3.png (62,462 bytes)   
vogelLightword

vogelLightword

2024-01-09 13:06

reporter   ~0009066

that is now fixed as well (not a bug), we had to disable keyboard in the view. Ticket can be closed, thanks!

Issue History

Date Modified Username Field Change
2023-11-29 13:36 vogelLightword New Issue
2023-11-29 13:36 vogelLightword Tag Attached: controller
2023-11-29 13:36 vogelLightword Tag Attached: Navigation
2023-11-29 13:36 vogelLightword Tag Attached: Unreal
2023-11-29 13:59 jsantos Target Version => 3.2.3
2023-11-29 13:59 jsantos Assigned To => hcpizzi
2023-11-29 13:59 jsantos Status new => assigned
2024-01-08 12:57 sfernandez Status assigned => feedback
2024-01-08 12:57 sfernandez Note Added: 0009055
2024-01-08 15:11 ttermeer-rcg Note Added: 0009056
2024-01-08 15:11 ttermeer-rcg File Added: gamepad_setup.png
2024-01-08 15:19 ttermeer-rcg Note Added: 0009057
2024-01-08 16:55 sfernandez Note Added: 0009058
2024-01-09 08:50 vogelLightword Note Added: 0009064
2024-01-09 08:50 vogelLightword File Added: image.png
2024-01-09 08:50 vogelLightword File Added: image-2.png
2024-01-09 08:50 vogelLightword Status feedback => assigned
2024-01-09 08:50 vogelLightword Note Edited: 0009064
2024-01-09 08:58 vogelLightword Note Edited: 0009064
2024-01-09 10:22 vogelLightword Note Added: 0009065
2024-01-09 10:22 vogelLightword File Added: image-3.png
2024-01-09 13:06 vogelLightword Note Added: 0009066
2024-01-22 11:47 sfernandez Target Version 3.2.3 => 3.2.4
2024-01-22 11:56 jsantos Status assigned => resolved
2024-01-22 11:56 jsantos Resolution open => no change required
2024-01-22 11:56 jsantos Fixed in Version => 3.2.3
2024-01-22 11:56 jsantos Target Version 3.2.4 => 3.2.3