LogoLogo
What's new?StatusMSquared
  • Morpheus Platform Documentation
  • What is Morpheus Platform?
    • Glossary
    • Interoperability
    • Support
    • EULA
  • Firewall Problems
  • CREATION
    • Unreal Development
      • Get Started
        • Download the Editor
        • Upload Content
        • Creating your Own Map
        • Morpheus Base Project
        • Differences from Unreal
          • Character Configuration
        • Morpheus Networking
          • Introduction to Morpheus Networking
          • Network Levels
          • Replicated Properties
          • RPCs
          • Morpheus Render Targets
          • Morpheus Array
          • Networking FAQ
          • Replicating Sublevels
      • Editor Versions
      • Features & Guides
        • Example Plugin
          • Nameplates
          • In-Game Roles
          • Resizing
        • Actor Pooling
        • Audio
        • Avatars
          • Creating an Avatar
          • Attachments
            • MML Attachments
          • Custom Animation Variables
          • Importing an NFT Collection
          • Capsules and Mesh Transforms
        • Bots
        • Chat
          • Unreal Text Chat
        • Control Panels
          • Control Panel Configuration
          • DJ Booth Mission Control
          • Observer Controls
        • Crowd Audio
        • Crowd Rendering
          • Legacy Animated Crowd
            • Animated Crowd Console Commands
            • Attaching static meshes to crowd members
          • Crowd Materials
          • Performance Parameters
          • Live Config Settings
          • Crowd Animation
            • Crowd Anim Blueprint
              • User Guide - Crowd Anim Blueprint
              • Reference Guide - ABP Nodes
                • Animation Playback
                • States and State Machines
                • Variables
                • Transitions
                • Special
                • Blends
                • Additional Notes
        • Helpers & Extras
          • "Instanced Objects" in Blueprints
          • Objects with "world context"
          • Making DataAsset classes
          • Duplicate Objects
          • The Bootflow Subsystem
          • The "Wait For Condition" System
          • Advanced Graphics Settings
          • Listening to Inputs on UObjects
          • Morpheus UserID
          • World Services
          • M2Extras: Skins System
        • Loading Screen
        • Live Config
          • Editing for a World
          • Editing Locally
          • Default Settings
          • Accessing via Blueprint
          • Adding New Settings
          • Overriding Defaults
          • Using Arrays
        • MML
        • Motion Capture
        • Networking
        • Notifications
        • Raycastable Crowd
        • Singletons
        • Streaming & Multiplatform
          • GFN on Mobile
        • UI
          • "UI Mode"
        • User Collections
          • Creating a New Object Definition
          • Accessing from Unreal
            • Creating Objects Definitions
            • Transfer Objects
            • User Collection Views
            • Receiving Updates
        • Video Players
          • Embedded Video Player
          • Millicast video streaming
            • How to Setup an In-Game Video Stream
            • Picture-in-Picture mode
          • Streaming Video Player
            • How to Setup a URL Video Player
            • Picture-in-Picture mode
        • Visual Debugging
          • Inspector
        • Web UI
        • Online Services
          • KV Store Service
        • Web Requests
          • Http Requests
            • Legacy HTTP Nodes
          • JSON Handling
          • WebSockets
          • Identity Validation
          • Allowed External URLs
          • Walkthrough Example
            • Example Counter Service
        • World Travel
          • World Travel in the Editor
        • Avatar Physics Assets
        • Action Gameplay Helper Components
      • Workflows
        • Upgrade the Editor
        • Editing Project Settings
        • Profiling
        • Performance Guarantees
        • Marketplace Importing
        • Extra Workflows
          • Setup Play-in-Editor
          • Setup Local Asset Validation
          • Adding Gameplay Tags
          • Validating Game Assets
          • Custom Connection Modes
          • Connect Editor to a World
          • Common Issues
      • Best Practices
    • Worlds
      • Invite Players
        • Setting Role Groups
      • Persistent Worlds
      • Always on Worlds
    • Running Events
      • Large Scale Events - Checklist
      • Anti-Cheat (EAC)
      • Player Entry
        • React Native
        • Steam
        • Hardware Requirements
      • Broadcast
        • OBS Integration
      • Failover
      • Capacity and Queue Management
  • ADMINS
    • Access Control
      • Add Metaverse Contributors
      • Create a New Project
    • Pricing
      • Development Support
      • Included Usage & Overages
      • Cloud Streaming
      • Access Modes
      • War Room Support
      • Platform SLA
    • Settings
      • Projects
  • APIs and Tooling
    • API Reference
      • Accounts
      • Events
      • Key/Value Store
      • Organizations
      • Realtime
      • User Profile
      • World Builder
      • Worlds
    • Template Web App
      • Moderation
    • Pixel Streaming
    • Launcher
  • Integrations
    • Analytics
      • Send Events from Web
      • Send Events from Unreal
    • Chat
      • Integrate Pubnub with your Unreal Project
      • Add Moderation to Chat
Powered by GitBook
On this page
  • Overview
  • How this works
  • How to use the input icon widget
  • Using Skins with Input Icons
  • Upcoming Work

Was this helpful?

  1. CREATION
  2. Unreal Development
  3. Features & Guides
  4. UI

Input Icons

Last updated 4 months ago

Was this helpful?

Due for Removal, please see Docs.

MSquared will not be addressing non-critical issues on this feature going forwards. If you want equivalent functionality, it will need to be created in your own project.

Please speak to your Support Engineers for more info.

Overview

WBP_InputIcon is our solution to handling on-screen widgets to represent particular inputs. e.g. if you want to give a prompt for the "jump" button, it will show the key mapped to the jump button (e.g. spacebar)

Using this widget over hard-coding the icon gives us benefits such as allowing it to update automatically if the mapping for a given input changes.

How this works

This widget determines the key from the input action provided, and looks up the corresponding icon from the M2_InputIconMap

Which map is used (and so the styling of icons per key) is determined by your skin settings. By default DA_InputIconMap is used.

NOTE: If you need any icons which aren't defined in DA_InputIconMap you will need to supply your own map. See Using Skins with Input Icons for details on how to do this.

How to use the input icon widget

  1. Add the widget.

  2. Provide an action for the widget. This can be done in a number of ways:

    1. Provide an InputActionName in the Designer view. This is the value of an "input action" in your project settings (Note this may not be easily configurable in WorldBuilder projects)

    2. Provide an "Enhanced input" action and mapping context for your icon in the designer view.

    3. Update/set the the icon through BP/Code: If the icon you're wanting to display depends on data passed through, this can be used. It works for both the standard input ActionMappings, or EnhancedInput.

Using Skins with Input Icons

For more details on how skins work, and what they are, see How to use skins.

  • Create a new M2_InputIconMap, and provide the required icons for the required keys. (I'd recommend copying the existing DA_InputIconMap, so that the map is largely filled in already)

  • In your skin's SkinSettings, add a M2_InputIconSkinSetting entry.

  • In this, provide your newly created icon map asset

Upcoming Work

  • We still need to fill our our icon map with all the relevant icons

  • The input icon widget approach will later be extended to support different control schemes, i.e. swapping out the icons when switching to using gamepad.

Support for skinning is ending soon. Please see for details.

We will later also support "custom icon names", to provide icons for things that don't have a direct action mapping, e.g. "WASD and mouse movement, for moving and looking around

https://docs.msquared.io/tutorials-and-features/ui/how-to-use-skins
We have a widget with the "Jump" input action. The widget therefore shows the spacebar
In the Project Settings, we have defined that the "Jump" input action maps to space bar for Keyboard
How the configuration looks in the designer view - Uses Enhanced Input Action is false, and the Input Action Name is provided
In the above example, this is the input action that the icon is representing
Uses Enhanced Input Action is set to true.
The above Input Mapping Context, showing the Input Action (IA_QuickbarPrimaryAction mapped to left click
Adding a DA_InputIconMap_MyProject, and filling it out.