Table Of Content
UI3 Overview
UI3 Get Started
3.1 Info Map
UI3 Variations
UI3 Other BPs
UI3 Input&Mode
UI3 FAQ + TIPS
3.1 Bugs Fixes
UI3 Input Controls & Game Modes
The Game Mode defines the type of game (Touch, VR) for the scene and what input devices are used to control it.
Some of the content is slightly different between versions.
Content:
World Settings
The Game Mode in Unreal defines which Character (Pawn) and Input Controller will be used in your project.The Game Mode can be set in the World Properties. Each (persistent) level has its own World Properties. If you only have one level then this is the persistent level. You can have multiple Game Modes in the same Project.
There are 4 Game Modes to choose from:
- SDotUI3_GameModeKeyboard for keyboard and mouse support
- SDotUI3_GameModeTouch for touch controls
- SDotUI3_GameModeGamepad for XBOX Gamepad support
- SDotUI3_GameModeVR for VR headsets with a controller or gamepad.
Multiple Input Controls
You may want to use your project for keyboard and mouse and for a VR headset. You can do this by creating multiple persistent levels as it is the case in the demo project. Set the game mode in the world properties of the persistent level accordingly.The persistent level only contains the Info Map blueprint, a player start and some components that may be necessary for the specific game mode.
All assets are split into sub levels, like for Building or Furniture. These levels are then added to the persistent levels as sub levels. All persistent levels use the same sub levels and changes to the sub level are applied to all versions of your project.
Game Mode Keyboard
SDotUI3_GameModeKeyboardThis is the Game Mode for keyboard and mouse controls. It uses
- SDotUI3_CharacterV3
- SDotUI3_ControllerKeyMouse. The controller blueprint contains all the nodes to navigate the menu.
The game mode contains a node from the OpenXR plugin to disable the VR headset.
The Info Map will work without changes with this game mode.
Game Mode Touch
SDotUI3_GameModeTouchUse this Game Mode for touch screen devices. Also use it if you want to Pixel Stream onto a touch screen device. It uses
- SDotUI3_CharacterV3
- SDotUI3_ControllerTouch. The controller blueprint contains all the nodes to navigate the menu.
The game mode contains a node from the OpenXR plugin to disable the VR headset.
Touch can be simulated during development with Project Settings -> Input -> Use Mouse For Touch. Note that this will block the Mouse input from working in the keyboard mouse game mode.
Project Settings -> Input - > Mouse Properties | |
Use Mouse for Touch | Allows you to use the mouse to simulate touch controls. Turn off after use as it blocks the mouse from working correctly. |
Settings in the Info Map blueprint:
Info Map -> Project Settings | |
Use Mouse Move | Will be enabled automatically |
UI Design | |
Button Text Size | Main menu button size: 20 - increase the size from the default |
Scene Presets | |
> advanced display | |
Save Slot Size | 80 x 80 - Increase the size for touch screen controls |
Floorplan | |
> advanced display | |
Dot Size | 32 - Increase the size of the marker |
Info and Help | |
> About Project and Help | The control scheme is used as the first Info Media |
Help Image | Use the image that shows the touch control
scheme from the Tex folder
In previous versions the help image was set as index [0] of the Info Media Array. |
Game Mode Gamepad
SDotUI3_GameModeGamepadUse this Game Mode with the XBox gamepad controller or any other compatible controller. It also supports the VIVE and Oculus/Quest controller. Find some more info for the use of other controllers at the end of the page.
This Game Mode uses the
- SDotUI3_CharacterV3
- SDotUI3_ControllerGamepad. The controller blueprint contains all the nodes to navigate the menu.
The game mode contains a node from the OpenXR plugin to disable the VR headset.
Settings in the Info Map blueprint:
Project Settings | |
Use Mouse Move | If true a target circle will be displayed on the floor. Once the move button (depends on the controller used) is clicked the player will slide to the circles position. |
UI Design | |
> advanced display | |
Icon A | Lets you replace the default gamepad face button down icon. This is used to select menu items (like enter). |
Icon B | Lets you replace the default gamepad face button right icon. This is used to toggle the menu visibility and move sliders to the right. |
Icon X | Lets you replace the default gamepad face button left icon. This is used to cancel and move sliders to the left. |
Info and Help | |
Info Media > 0 | By default the control scheme is used as the first Info Media |
Image | Replace the current image with the image that shows the control scheme of the connected controller. There are images for Gamepad, VIVE and Oculus Rift controller available. |
How to use a different controller with the user interface is explained at the end of this page.
Select may be either [SPACE] or [ENTER] in earlier versions.
Game Mode VR
SDotUI3_GameModeVRUse this Game Mode for VR scenes. It enables the 3D interface on the virtual tablet. It uses
- SDotUI3_CharacterV3
- SDotUI3_ControllerGamepad. This is the same as described in the GameModeGamepad
Follow the link below to read more about the VR mode.
Input settings (classic) for controllers
This describes the Classic Input Settings. See further down for Enhanced Input Settings (Unreal 5.3+).You can use other controllers if they are generally supported in Unreal. You may have to activate them through a plug-in, or they may become available once they are connected.
Then add their buttons to the input controls in the Project Settings. Navigate to Engine / Input and then add your controller buttons to the Bindings. This should be somewhat self-explanatory.
Action Mappings are button clicks like ENTER, or keyboard shortcuts like [I] = Screenshot.
Axis Mappings are for player movement or mouse turn.
Detailed information can be found in the Unreal Engine Documentation.
Enhanced Input Settings
The file DefaultInput.ini has become obsolete. Input Actions are now defined as assets saved in the folder ArchVizUI_V3/UI/Etc/Input.The actual input keys and buttons are assigned in the file MC_ArchVizUI3
Here are two examples of how it works:
Keyboard Key S
This key controls the backwards movement. Movement is two- dimensional and can be X or Y, or forward/backward and Left/Right. You'll need 2 modifiers for this control key
- Swizzle Input Axis Values: redirects default X to direction Y which is forward/backward.
- Negate will invert (negate) the value to move backwards.
Gamepad Left Stick
The lift stick is a 2 dimensional input. There are another 2 modifiers used for this type of input:
- Dead Zone is a limiter that stops input of low values. Most controllers are not perfectly calibrated and send low values when they are idle.
- Scalar is a simple multiplier that increases the value of the stick 50 times for X and Y axis.
A simple Button, like the Select Button doesn't need any modifiers.