Skip to content

Commit d6e5074

Browse files
author
David Kline
authored
Merge pull request #8805 from davidkline-ms/relnotes251
Release notes for v2.5.1
2 parents b08c584 + d748243 commit d6e5074

File tree

2 files changed

+14
-243
lines changed

2 files changed

+14
-243
lines changed

Documentation/ReleaseNotes.md

Lines changed: 10 additions & 239 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Microsoft Mixed Reality Toolkit 2.5.0 release notes
1+
# Microsoft Mixed Reality Toolkit 2.5.1 release notes
22

33
- [What's new](#whats-new)
44
- [Breaking changes](#breaking-changes)
@@ -7,250 +7,24 @@
77

88
## What's new
99

10-
### Unity Package Manager (UPM) support
10+
> [!NOTE]
11+
> The Mixed Reality Toolkit 2.5.1 release is available exclusively via the [Unity Package Manager](usingupm.md).
1112
12-
The Mixed Reality Toolkit can now be managed using the Unity Package Manager.
13+
### Package dependency errors fixed
1314

14-
![MRTK Foundation UPM Package](Images/Packaging/MRTK_FoundationUPM.png)
15+
This release fixes incorrect inter-package file dependencies (ex: files in Standard Assets no longer incorrectly reference files in Foundation). Version 2.5.1 also adds an explicit dependency on Text Mesh Pro.
1516

16-
> [!Note]
17-
> There are some manual steps required to import the MRTK UPM packages. Please review [Mixed Reality Toolkit and Unity Package Manager](usingupm.md) for more information.
17+
### Standard Assets package shaders copied to Assets/MRTK/Shaders
1818

19-
### Oculus Quest XRSDK support
19+
When the Standard Assets package is installed via UPM, the shaders will be copied to the Assets/MRTK/Shaders folder so that they will no longer be immutable. This resolves the issue of shaders updated for the Universal Render Pipeline (URP) reverting the legacy behavior the next time the project is loaded.
2020

21-
MRTK now supports running Oculus Quest Headsets and Controllers using the native XR SDK pipeline. Hand tracking is also supported with the [Oculus Integration Unity package](https://assetstore.unity.com/packages/tools/integration/oculus-integration-82022) thanks to [Eric Provencher's](https://twitter.com/prvncher) work on MRTK-Quest!
21+
### Fixed teleport cursor sticking to hands
2222

23-
For instructions on how to deploy your device on the Oculus Quest using the new pipeline, see the [Oculus Quest Setup Guide](CrossPlatform/OculusQuestMRTK.md)
23+
This release fixes an [issue](https://github.com/microsoft/MixedRealityToolkit-Unity/issues/8755) where the teleport destination cursor can stick to hand visuals.
2424

25-
### Scrolling Object Collection
26-
27-
The MRTK UX component has been upgraded from an experimental feature and offers more freedom for layouting 3D content of different sizes with added support for objects that have no colliders attached. A new option for disabling content masking was also added, making prototyping easier.
28-
29-
See [Scrolling Object Collection](README_ScrollingObjectCollection.md) for more information.
30-
31-
![Scrolling Object Collection](https://user-images.githubusercontent.com/16922045/94465118-51537900-01b7-11eb-8f8b-bf864a8fee03.gif)
32-
33-
### Teleport pointer animation, handling, and sound improvements
34-
35-
The teleport pointer now has improved animations and audio feedback. We also improved the handling of the teleport pointer so it handles smoother when transitioning from pointing at nearby surfaces to farther away surfaces.
36-
37-
https://streamable.com/3f222q
38-
39-
### Input Simulation Cheat Sheet
40-
The HandInteractionExamples scene now has a configurable shortcut to show a help page for input simulation
41-
42-
![Input Simulation Cheat Sheet](https://user-images.githubusercontent.com/13754172/93232433-dea8cd80-f7b4-11ea-8500-eaee202f606f.png)
43-
44-
### Input Simulation Eye Gaze with mouse
45-
Users can now use the Mouse for simulating eye tracking. See the `Eye Simulation Mode` field in the input simulation profile and set it to Mouse. This replaces the previous `Simulate Eye Position` field
46-
47-
![Eye Gaze Mouse](https://user-images.githubusercontent.com/39840334/87720928-892b5280-c76a-11ea-9411-73ab69fc756c.gif)
48-
49-
### Input Simulation Motion Controller in Editor Play Mode
50-
51-
Users can now simulate motion controller just like hands in editor play mode. The trigger, grab and menu buttons are currently supported.
52-
53-
### Conical Grab Pointer
54-
55-
Grab pointers can now be configured to query for nearby objects using a cone from the grab point rather than a sphere. This more closely resembles the behavior from the default Hololens 2
56-
interface, which queries for nearby objects using a cone. The DefaultHoloLens2InputSystemProfile has also been adjusted to use the new `ConicalGrabPointer`.
57-
58-
![Conical Grab Pointer](https://user-images.githubusercontent.com/39840334/82500569-72d58300-9aa8-11ea-8102-ec9a62832d4e.png)
59-
60-
### TestUtilities package
61-
62-
There is now a package (Microsoft.MixedReality.Toolkit.Unity.TestUtilities.2.5.0.unitypackage) that contains the
63-
PlayMode and TestMode test infrastructure that the MRTK uses to create end-to-end tests. This infrastructure has
64-
been extremely handy for the MRTK team itself, and we're excited to have consumers use this to add test coverage
65-
to their own projects.
66-
67-
The following code shows how to create a test hand, show it at a certain location, move it around, and then
68-
pinch and open.
69-
70-
```csharp
71-
TestHand leftHand = new TestHand(Handedness.Left);
72-
yield return leftHand.Show(new Vector3(-0.1f, -0.1f, 0.5f));
73-
yield return leftHand.SetGesture(ArticulatedHandPose.GestureId.Pinch);
74-
yield return leftHand.Move(new Vector3(0.2f, 0.2f, 0));
75-
yield return leftHand.SetGesture(ArticulatedHandPose.GestureId.Open);
76-
```
77-
78-
For instructions on how to write a test using these TestUtilities, see this section on
79-
[writing tests](Contributing/UnitTests.md#writing-tests)
80-
81-
For examples of existing tests that use this infrastructure, see MRTK's [PlayModeTests](https://github.com/microsoft/MixedRealityToolkit-Unity/tree/mrtk_development/Assets/MRTK/Tests/PlayModeTests)
82-
83-
84-
### Support for the Leap Motion 4.5.1 Unity Modules
85-
86-
Support for the Leap Motion Unity Modules version 4.5.1 has been added and support for the 4.4.0 assets has been removed. The current supported versions of the Leap Motion Unity Modules are 4.5.0 and 4.5.1.
87-
88-
There is also an additional step for initial Leap Motion integration, see [How to Configure the Leap Motion Hand Tracking in MRTK](CrossPlatform/LeapMotionMRTK.md) for more information.
89-
90-
### Spatial Awareness Mesh Observer better handles customization of materials
91-
92-
With this release, the `Windows Mixed Reality Spatial Mesh Observer` and the `Generic XR SDK Spatial Mesh Observer` components have improved visual material handling. Materials are now preserved when a mesh has been updated by the observer where, previously, they were reset to the default VisibleMaterial as configured in the profile.
93-
94-
This enables developers to alter the mesh material and not have the changes overwritten unexpectedly.
95-
96-
### Link.xml created in the MixedRealityToolkit.Generated folder
97-
98-
With the introduction of Unity Package Manger MRTK, MRTK now writes a `link.xml` file to the `Assets/MixedRealityToolkit.Generated` folder, if none is present. It is recommended to add this file (and `link.xml.meta`) be added to source control. Link.xml is used to influence the [managed code stripping](https://docs.unity3d.com/Manual/ManagedCodeStripping.html#LinkXML) functionality of the Unity linker.
99-
100-
More information on the MRTK link.xml file can be found in the [MRTK and managed code stripping](MRTK_and_managed_code_stripping.md) article.
101-
102-
### Unity 2019.3+: MRTK configuration dialog no longer attempts to enable legacy XR support
103-
104-
To avoid potential conflicts when using Unity's XR Platform, the option to enable legacy XR support has been removed
105-
from the MRTK configuration dialog. If desired, legacy XR support can be enabled, in Unity 2019, using **Edit** > **Project Settings** >
106-
**Player** > **XR Settings** > **Virtual Reality Supported**.
107-
108-
### Reduction in InitializeOnLoad overhead
109-
We've been doing work to reduce the amount of work that runs in InitializeOnLoad handlers, which should lead to
110-
improvements in inner loop development speed. InitializeOnLoad handlers run every time a script is compiled, prior
111-
to entering play mode, and also at editor launch. These handlers now run in far fewer cases, resulting in general
112-
Unity responsiveness improvements.
113-
114-
In some cases there was a tradeoff that had to be made:
115-
116-
- See [Leap Motion Hand Tracking Configuration](CrossPlatform/LeapMotionMRTK.md) for the extra integration step.
117-
- For those who are using ARFoundation, there's now an additional manual step in its getting started steps.
118-
See [ARFoundation](CrossPlatform/UsingARFoundation.md#install-required-packages) for the new steps.
119-
- For those who will be using [Holographic Remoting with legacy XR pipeline](Tools/HolographicRemoting.md#legacy-xr-setup-instructions) on HoloLens 2, there is now a [manual step](Tools/HolographicRemoting.md#dotnetwinrt_present-define-written-into-player-settings) to perform.
120-
121-
### Bounds control graduated
122-
![Bounds control](../Documentation/Images/BoundsControl/MRTK_BoundsControl_Main.png)
123-
[Bounds control](README_BoundsControl.md) graduated out of experimental and comes with a bunch of new features and tons of bug fixes.
124-
Here a list of the highlights of this update:
125-
- properties are split into configurations which makes it easier to set up bounds control
126-
- configurations can be shared through scriptable objects
127-
- every property / scriptable property is runtime configurable
128-
- bounds control rig isn't recreated on property changes anymore
129-
- translation handles support
130-
- full constraint support through constraint manager
131-
- elastics system integration (experimental)
132-
133-
The old bounding box is now deprecated and existing game objects using bounding box can be [upgraded using the migration tool](Tools/MigrationWindow.md) or the [bounding box inspector](README_BoundingBox.md#migrating-to-bounds-control).
134-
135-
### Constraint manager component
136-
Constraints can now be used by both, bounds control and object manipulator via the new [constraint manager component](README_ConstraintManager.md). Both components will create a constraint manager per default and process any attached constraints automatically.
137-
138-
Additionally to the automatic behavior constraint manager also comes with a manual mode that lets users decide which constraint should be processed.
139-
For this reason the way we display constraints in the property inspector changed a bit.
140-
141-
<img src="../Documentation/Images/ConstraintManager/ManualSelection.png" width="600">
142-
143-
The constraints that are applied to the component are now shown as a list in the constraint manager component whereas the component using the constraint manager (either [bounds control](README_BoundsControl.md#constraint-system) or [object manipulator](README_ObjectManipulator.md#constraint-manager)) will now show the selected constraint manager and mode (auto or manual).
144-
For more information read the [constraint manager](README_ConstraintManager.md) section in our docs.
145-
146-
### HoloLens 2 Button material update
147-
Updated HoloLens 2 Button's front cage material to remove black color in MRC.
148-
149-
![HoloLens 2 button material update](https://user-images.githubusercontent.com/13754172/94341269-dcf7c900-0042-11eb-9028-e55abd2ead67.png)
150-
151-
### Description panel update, movable example scene
152-
Updated description panel. (SceneDescriptionPanelRev.prefab) New design provides a grabbable top bar which allows the user to adjust/move the entire scene.
153-
154-
![Description panel update](https://user-images.githubusercontent.com/13754172/91176366-28a21480-e71d-11ea-9e80-7e219595de9c.png)
155-
156-
### Spatial mesh visualization - Pulse on air-tap
157-
Updated pulse shader example for the spatial mesh to match HoloLens 2's shell behavior.
158-
159-
![Pulse on air-tap](https://user-images.githubusercontent.com/13754172/90310153-d0536180-df29-11ea-939a-e9572d4f5670.gif)
160-
161-
### Elastic system - Experimental
162-
![Elastic System2](Images/Elastics/Elastics_Main.gif)
163-
164-
MRTK now comes with an [elastic simulation system](Elastics/ElasticSystem.md) that includes a wide variety of extensible and flexible subclasses, offering bindings for 4-dimensional quaternion springs, 3-dimensional volume springs and simple linear spring systems.
165-
166-
Currently the following MRTK components supporting the [elastics manager](xref:Microsoft.MixedReality.Toolkit.Experimental.Physics.ElasticsManager) can leverage elastics functionality:
167-
168-
- [Bounds control](README_BoundsControl.md#elastics-experimental)
169-
- [Object manipulator](README_ObjectManipulator.md#elastics-experimental)
170-
171-
<img src="https://user-images.githubusercontent.com/5544935/88151572-568cba00-cbaf-11ea-91c2-d6b51829b638.gif" width="38%">
172-
<img src="https://user-images.githubusercontent.com/5544935/88151578-58567d80-cbaf-11ea-8f96-d24f2cf0d6e9.gif" width="45.7%">
173-
174-
### Joystick (Experimental)
175-
An example of joystick interface that can control a large target object.
176-
177-
![Joystick](https://user-images.githubusercontent.com/43013191/86156887-769ef100-babb-11ea-85be-ed6a6aed89d2.png)
178-
179-
### Color picker (Experimental)
180-
An experimental control that makes it easy to change material colors on any object at runtime.
181-
![Color picker](https://user-images.githubusercontent.com/43013191/85468370-3b536e00-b561-11ea-812c-b3f7d43dd999.png)
182-
183-
![Color picker](https://user-images.githubusercontent.com/43013191/85468994-fa0f8e00-b561-11ea-89f2-0810d1998518.png)
184-
185-
<br/><br/>
18625
## Breaking changes
18726

188-
### Assembly Definition Files Changes
189-
190-
Some asmdef files are changed and are now only supporting Unity 2018.4.13f1 or later. Compilation errors will show up when upating to MRTK 2.5 in earlier versions of Unity. This can be fixed by going to `Assets\MRTK\Providers\XRSDK\Microsoft.MixedReality.Toolkit.Providers.XRSDK.asmdef` in the project window and removing the missing reference in the inspector. Repeat those steps with `Assets\MRTK\Providers\Oculus\XRSDK\Microsoft.MixedReality.Toolkit.Providers.XRSDK.Oculus.asmdef` and `Assets\MRTK\Providers\WindowsMixedReality\XRSDK\Microsoft.MixedReality.Toolkit.Providers.XRSDK.WMR.asmdef`. Note you must revert the changes by replacing those three asmdef files with original (i.e. unmodified) ones when upgrading to Unity 2019.
191-
192-
### IMixedRealityPointerMediator
193-
194-
This interface has been updated to have a new function:
195-
196-
```csharp
197-
void SetPointerPreferences(IPointerPreferences pointerPreferences);
198-
```
199-
200-
If you have a custom pointer mediator that doesn't subclass DefaultPointerMediator, you will need to implement this
201-
new function. See [this issue](https://github.com/microsoft/MixedRealityToolkit-Unity/issues/8243) for more background
202-
on why this was added. This was added to ensure that pointer preferences would be explicitly passed to the mediator,
203-
rather than having it be implicitly done based on the presence of a constructor that took a IPointerPreferences.
204-
205-
### Rest / Device Portal API
206-
207-
The `UseSSL` static property has been moved from `Rest` to `DevicePortal`.
208-
209-
If you did this previously...
210-
211-
```csharp
212-
Rest.UseSSL = true
213-
```
214-
215-
Do this now...
216-
217-
```csharp
218-
DevicePortal.UseSSL = true
219-
```
220-
221-
### Link.xml
222-
223-
If an application was previously using the NuGet distribution of the MRTK, the `link.xml` file has been removed from the Foundation package. To restore code preservation rules, opening the project in Unity once will create a default `link.xml` file in `Assets/MixedRealityToolkit.Generated`. It is recommended that this file (and `link.xml.meta`) be added to source control.
224-
225-
### Transform Constraint Changes
226-
227-
TargetTransform property has been marked as obsolete as it wasn't used by constraint system. Constraint logic is based on the transform passed into Initialize and Apply methods. Derived user constraints that rely on this property can cache the TargetTransform in their implementation by storing the transform of the constraint component to achieve the same behavior.
228-
229-
The stored initial world pose `worldPoseOnManipulationStart` data type has been changed from MixedRealityPose to MixedRealityTransform, which includes the local scale value of the manipulated object. With this change it's not necessary to separately cache any initial scale values anymore.
230-
231-
### New Property in IMixedRealityDictationSystem
232-
233-
A new property `AudioClip` has been added to the IMixedRealityDictationSystem interface. The `AudioClip` property enables access to the audio clip associated with the current dictation session. Users must implement the property in their scripts implementing the interface.
234-
235-
### Service Facades turn down
236-
237-
[Services facades](https://github.com/microsoft/MixedRealityToolkit-Unity/blob/06a06778e38da622b37cc299a93f16e143b7bdeb/Assets/MRTK/Core/Inspectors/MixedRealityToolkitFacadeHandler.cs)
238-
are being turned down in 2.5. This feature was originally added to make configuration
239-
of the MRTK profiles easier (by creating fake in-scene GameObjects that represented each of MRTK's
240-
services). In the long run, we want to avoid creating fake in-game objects and trying to keep them
241-
in sync (as data sync and "source of truth" issues are notoriously difficult to scale and get right).
242-
243-
In 2.5, the service facade handlers are kept around to ensure that project upgrade goes smoothly -
244-
any facades that exist in the project will be deleted by the service facade handler to ensure that
245-
scenes opened up in 2.5 get automatically fixed.
246-
247-
The remaining code associated with the service facade feature will be removed in a future release.
248-
249-
### Addition of Motion Controller to Input Simulation Service
250-
251-
Motion Controller simulation is now offered in editor play mode along side the existing hand simulation. To enable this change, many current functions/fields/properties are now marked obsolete, with `InputSimulationService.cs` and `MixedRealityInputSimulationProfile.cs` getting the most significant changes. The logic and behavior of relevant code largely remain the same, and the majority of obsoleted functions etc. are related to replacing reference to "hand" to the more generic term "controller" (e.g. from `DefaultHandSimulationMode` to `DefaultControllerSimulationMode`). Besides getting new names, the return type of certain new functions are updated to match the name/behavior change (e.g. `GetControllerDevice` based on the original `GetHandDevice` now returns `BaseController` instead of `SimulatedHand`).
252-
253-
`IInputSimulationService` now has new properties `MotionControllerDataLeft` and `MotionControllerDataRight`. `MixedRealityInputSimulationProfile` now includes new fields for the keyboard mapping of certain motion controller buttons.
27+
There are no breaking changes since version 2.5.0.
25428

25529
## Known issues
25630

@@ -274,10 +48,8 @@ To resolve, please ensure that:
27448

27549
![Select Audio Apatializer](Images/ReleaseNotes/SpatializerSelection.png)
27650

277-
27851
### NullReferenceException: Object reference not set to an instance of an object (SceneTransitionService.Initialize)
27952

280-
28153
In some situations, opening `EyeTrackingDemo-00-RootScene` may cause a NullReferenceException in the Initialize method of the SceneTransitionService class.
28254
This error is due to the Scene Transition Service's configuration profile being unset. To resolve, please use the following steps:
28355

@@ -288,7 +60,6 @@ This error is due to the Scene Transition Service's configuration profile being
28860

28961
<img src="Images/ReleaseNotes/FixSceneTransitionProfile.png" width="500px">
29062

291-
29263
### Oculus Quest
29364

29465
There is currently a known issue for using the [Oculus XR plugin with when targeting Standalone platforms](https://forum.unity.com/threads/unable-to-start-oculus-xr-plugin.913883/). Check the Oculus bug tracker/forums/release notes for updates.

0 commit comments

Comments
 (0)