What are the UX Tools?
UX Tools for Unreal Engine is a UE game plugin with code, blueprints and example assets created to help you add in features commonly needed when you're developing UX for mixed reality applications. The project is still in early development (it provides a small set of features and breaking changes are to be expected) but the current features are complete and robust enough to use in your own projects.
NOTE: Only HoloLens 2 development is supported at the moment. |
---|
Getting started with UX Tools
If you're new to MRTK or Mixed Reality development in Unreal, we recommend starting at the beginning of our Unreal development journey in the Microsoft Docs. The Unreal development journey is specifically tailored to walk new developers through the installation, core concepts, and usage of the UX Tools.
CAUTION: The Unreal development journey currently uses UX Tools 0.9.x and Unreal 4.25.3 or later. |
---|
If you're already familiar with Mixed Reality development in Unreal, you can find the installation instructions for the UX Tools plugin here.
Documentation
Welcome to UX Tools |
Feature Guides |
API Reference |
---|
Required software
Windows SDK 18362+ | Unreal 4.25.3 or later | Visual Studio 2019 |
---|---|---|
To build apps with MRTK-Unreal and UX Tools, you need the Windows 10 May 2019 Update SDK | The Unreal Engine provides support for building mixed reality projects in Windows 10 | Visual Studio is used for code editing |
UX building blocks
Input Simulation | Hand Interaction | Pressable Button |
---|---|---|
Mouse and keyboard input in the editor to simulate a Head-Mounted Display and hand tracking | Hand interaction actor that takes care of creating and driving pointers and visuals for interactions | A button gives the user a way to trigger an immediate action |
Pinch Slider | Bounds Control | Manipulators |
A component allows the user to continuously change a value by moving the slider thumb along the track | A component that allows the user to change the position, rotation, and size of an actor | A component that allows an actor to be picked up by a user and then moved, rotated or scaled |
Follow Behavior | Hand Constraints | Palm Constraints |
A component used to keep objects "following" the user by applying a set of constraints on the component's owner | A component that calculates a goal based on hand tracking and moves the owning actor | A hand constraint component specialization that activates only when the palm is facing the player |
Far Beam | ||
A component allowing the user to visualize elements in the scene they can interact with from afar |
Tools
Utilities | Graphics |
---|---|
Plugin containing a handful of tools that augment the Unreal Engine editor | Breakdown of shaders, materials, and graphics techniques used to render UX components |
Example maps
If you want to explore the different UXT features or want a reference for how to use them we recommend having a look at the example maps contained in the UX Tools Game (/UXToolsGame) in this repository. For that you should:
- Clone this repository.
- Checkout public/0.9.x.
- Bear in mind that this branch is alive. It's not a release, and will be updated regularly with potentially breaking changes. There will be a release tag (e.g. release/0.9.0) marked as such in GitHub.
You can now open the UX Tools Game (/UXToolsGame) and explore individual example maps or open the Loader level to access some of the examples from a centralized hub.
Packaged UX Tools game
We also provide the UX Tools game pre-packaged for HoloLens 2 so you can try out the main UXT features directly on device easily. To use it:
- Obtain the packaged game from the latest release page (e.g. UXTGame-HoloLens.0.9.0.zip) and unzip it to a local directory.
- Install it in the device via the Device Portal.
Feedback and contributions
Due to the early stage of the project and the likelihood of internal refactors, we are not in a position to accept external contributions through pull requests at this time. However, contributions and feedback in the shape of bug reports, suggestions and feature requests are always welcome!