Search Unity

Official XR Interaction Toolkit 1.0.0 will be held in pre-release for the 2021 cycle

Discussion in 'XR Interaction Toolkit and Input' started by chris-massie, Oct 7, 2021.

  1. chris-massie

    chris-massie

    Unity Technologies

    Joined:
    Jun 23, 2020
    Posts:
    231
    We have published a new release of the XR Interaction Toolkit (XRI) that brings a number of bug fixes and improvements. This version is available now for Unity 2019.4 and later. For those who want to experiment with XRI, the best way to start is with our samples available at https://github.com/Unity-Technologies/XR-Interaction-Toolkit-Examples. As always, you can refer to our documentation for more information.

    Our goal with XR Interaction Toolkit is to have it serve as the foundation for cross-platform XR interactivity, so that Unity developers can create applications that can be deployed anywhere and provide seamless end user experiences. It is essential that we provide a baseline that is as future-proof as is reasonable for the foreseeable horizon before declaring a production-ready verified release.

    We have collected feedback on the pre-release of XRI from a number of users, and this is what we’ve heard:
    • A common issue is problems with extensibility. We’ve received many requests for more base methods/properties to be overridable and protected instead of being internal or private. This is especially true for AR behaviors where much of the supporting utilities are completely internal, making it difficult for developers to handle touch gestures. Some of the larger methods also need to be broken up more to allow users to have more fine grained control over overriding certain aspects or inserting code between sections.
    • The absence of systems to support some interaction patterns such as multi-selecting for two-handed interaction, dynamic attach points when grabbing, and decoupled visual representation of rigged hands or controllers from the tracked position of controllers cause much pain when implementing custom solutions that work within the current architecture of XRI.
    • For those using AR, there is very little guidance on configuration and XRI is not flexible enough in its implementation to be integrated into larger projects.
    As a result of this feedback and to provide the best possible experience for everyone using XRI, we have decided to hold XRI in pre-release. As we look to add exciting new features outlined on our public roadmap, such as two-handed interaction and articulated hand tracking, we want to ensure the supporting API those features depend on are in a mature state. XRI would not be at the right level of upgradability or quality that a verified package should convey, and we need the extra time to ensure the API becomes stable.

    Pre-release
    This 1.0.0-pre.8 version of the XR Interaction Toolkit is considered pre-release. Pre-release packages are supported packages in the process of becoming stable. Starting in 2021.1, Unity is changing the way we publish and show packages in the Package Manager, and is designed to provide clear guidance around a package's readiness and expected support level. For pre-release packages to appear in Package Manager, they must be enabled in Edit > Project Settings > Package Manager and it must be scheduled to be released by the LTS version. There will be additional iterations of XRI before we get to the final verified release.

    Installation
    XR Interaction Toolkit will not appear in the Package Manager window in Unity 2021.1 and 2021.2 even when the option to show pre-release packages is enabled unless it has already been added. This is intentional and due to the package being held in pre-release and not having a verified 1.0.0 release version for 2021.2 (LTS). Existing projects with the package included, such as the Examples project, will show XR Interaction Toolkit in the Package Manager window.

    See Installation in the Manual for instructions to add the package to your project by name.
    The current latest versions of the package are 1.0.0-pre.8 and 2.0.0-pre.6 (recommended).

    Roadmap
    Use the public roadmap to see our latest plans, upvote existing feature requests, and/or submit new feature requests. We are currently working towards a final 1.0 pre-release that is compatible with Unity 2021.2 (LTS), and a verified release that addresses the above feedback by Unity 2022.1. The feature set for the Unity 2021.2 release will primarily reflect what exists today. Most of our focus and development efforts now are on bug fixes and polished documentation & samples to improve developer onboarding. We are simultaneously working to refactor some of the behaviors to improve flexibility for the verified release.

    Stay tuned for our plans to get XRI to a verified status.

    What’s new
    For a full list of changes, refer to the Changelog in our documentation.

    Many of the changes and fixes were a direct result of feedback we received from the forum and from reported bugs. Thank you to everyone who took the time to make these issues known to the team and for your feedback!

    Notable changes
    • Fixed the attach point for Grab Interactables being inconsistent between Movement Type values. Instantaneous will now be entirely based on the Attach Transform instead of being partially based on its center of mass. This was an important change to make going forward, but it may cause the effective attach position to be different after upgrading when using Instantaneous. It is recommended that you adjust the Attach Transform or pivot as needed, but an Attach Point Compatibility Mode property is available to revert to the old calculation method. The option will be removed in a future version. (1294410)
    • Made several additional adjustments and fixes to Grab Interactable and the handling of the different Movement Type values. The Attach Transform can now be moved after being grabbed. The Rigidbody is now being set to Is Kinematic when Instantaneous to improve collisions and transform syncing. The default property values were adjusted to remove the damping when using Velocity Tracking mode, and the default mode was changed from Kinematic to Instantaneous. The Scripting API documentation for movement types were improved to better describe the differences.
    • Fixed an exception being thrown when an Interactor or Interactable was registered or unregistered (such as from being enabled or disabled) during processing and interaction events.
    • Fixed Direct and Socket Interactor sometimes not being able to interact with an Interactable with multiple Colliders or when either were registered after the trigger collision occurred. (1325375)
    • Fixed the Default Input Actions sample asset using the wrong pose bindings for Windows Mixed Reality controllers, causing the controllers to point at the wrong angle. You will need to import the sample into your project again to receive this update.
    • Fixed poor performance scaling as the number of valid targets and hover targets increased. AR projects with hundreds of gesture interactables should see a large speedup.

    Known issues
    Use the Unity Issue Tracker for Package: XR Interaction to see the active issues.
    • The package must be installed by name in Unity 2021.1 and Unity 2021.2 (LTS) since it will not appear in the Package Manager window even when pre-release packages are enabled in project settings.
    • Custom reticles get displayed on objects without a custom reticle (1252565)
    • Socket Interactor can apply the wrong rotation to an interactable and cause the interactable to skew in scale when the interactable has a parent with a non-uniform scale (1228990)
    • UI clicks are cancelled when multiple Ray Interactors are being pressed at the same time (1336124)
    • Grab Interactables can cause undesired behavior when using Continuous Move locomotion where the Character Controller can be blocked from moving while holding it, or cause the rig to rapidly move away when the object overlaps with the Character Controller
    • The XR Device Simulator can’t rotate the HMD when the Mock HMD is enabled.
    • The XR Device Simulator can conflict with connected HMD and controller devices, causing the position or rotation to be from different sources.
    • The XR Interaction Manager can pass invalid EventArgs to Interactors and Interactables when the same event is recursively triggered again by the event handler.

    Deprecated members
    As we continue developing the package, properties, methods, and events that are currently marked as Obsolete or Deprecated will start to be elevated from warnings to errors before ultimately being removed from the package before the final, verified release version. As more users begin to use the package, we want to eliminate potential confusion from the different members available and improve the experience while developing in an IDE with code completion and member lists.

    Sharing feedback
    This forum is the best place to open discussions and ask questions. As mentioned above, please use the public roadmap to submit feature requests. If you encounter a bug, please use the Unity Bug Reporter in the Unity Editor, accessible via Help > Report a Bug. Include “XR Interaction Toolkit” in the title to help our team triage things appropriately.
     
    Last edited: Jan 10, 2022
    Thimo_ and freso like this.
  2. freso

    freso

    Joined:
    Mar 19, 2013
    Posts:
    73
    Good. Make the core functionality stable as f.

    During the pre-release phase, I strongly urge you to also add another Sample to the package with minimal sandbox sample scenes for VR and AR. No textures, shaders, or foo. To be used as a template for bug reporting.

    When we suspect we see a bug, we can just create a new project based on this template. It will save much time for both us developers and you.
     
  3. AvinashB9

    AvinashB9

    Joined:
    Feb 10, 2021
    Posts:
    14
    Hey Guys,

    I am working on physical rotation of HMD. Basically, when I turn around physically within the tracking space without using any input(eg: thumbstick). How to rotate gameobject when I rotate HMD.

    I have tried getting the camera's quaternion, but it is not rotating at center.

    Any help will be greatly appreciated.

    Thanks,
    Avinash
     
  4. edhpoisson

    edhpoisson

    Joined:
    Feb 14, 2021
    Posts:
    1
    Hi !!
    About the compatibility of XRI with 2021.2, do you have any clue about a pre release date???
    Thanks for your marvelous work!
    edh
     
  5. chris-massie

    chris-massie

    Unity Technologies

    Joined:
    Jun 23, 2020
    Posts:
    231
    You can install the Input System package from the Window > Package Manager window, and then add the Tracked Pose Driver (Input System) component to the Camera GameObject. You can add a binding to the Position and Rotation input in the Inspector to use the centerEyePosition and centerEyeRotation. That component will automatically set the Transform's position and rotation values to those read from the XR HMD.

    1.0 pre-release and 2.0 will both be compatible with Unity 2019.4+. As soon as we publish the final 2.0.0 release, we will work to get it backported to the Package Manager window in Unity 2021.2. I don't have the exact date of the 2.0.0 release, but it will be by March 2022.
     
    edhpoisson likes this.
  6. freso

    freso

    Joined:
    Mar 19, 2013
    Posts:
    73
    Uhm, wth? Are you actually working on a 2.0 alpha, while 1.0 alpha is in development?
    No wonder nothing gets released... If 2.0 release is targeted for March, what is ETA of 1.0 release?

    Nice to see you've implemented the "Interaction Layer Mask" setting though, but yikes.
     
  7. chris-massie

    chris-massie

    Unity Technologies

    Joined:
    Jun 23, 2020
    Posts:
    231
    The 2.0 version is going to be replacing the 1.0 version of the package, which will stay in pre-release. We received feedback and enough feature requests to add interfaces and support multiple selections, which would have required a breaking change from users, that we decided to add those before we had our first verified release. We felt that it would have been worse for our users to release a final 1.0 version and then release a 2.0 version with Unity 2022.1 requiring significant code changes in user's projects.

    We could have added those changes as a postfix increment on 1.0.0-pre.x since those would have been relative to the previous preview version, but that seemed like an even worse way to communicate the level of change between versions for those users who have been staying current with each 1.0 version. So because of that, we decided to bump the major version to 2.0 for this latest release candidate version.

    We will consider backporting critical bug fixes to 1.0 for those users who really can't upgrade, but we encourage users to upgrade to 2.0 instead as we feel it is the better starting point for users to base their projects on. We spent time trying to make the upgrade process as painless and backwards compatible as possible to reduce the burden on users to make this upgrade.
     
  8. freso

    freso

    Joined:
    Mar 19, 2013
    Posts:
    73
    I see. So that is what you meant with "held in pre-release". It don't think it was very clear that you'd abandon 1.0 to focus on a better designed package with 2.0.

    I do support this, but also indicates you tried to push the 1.0 release too early. I was surprised when you went from 0.10 to 1.0, because the package felt very early alpha. Anyway, thanks for clarifying. Will upgrade to 2.0 asap then.
     
    chris-massie likes this.
  9. chris-massie

    chris-massie

    Unity Technologies

    Joined:
    Jun 23, 2020
    Posts:
    231
    I agree that we pushed the 1.0 release too early. If I could do it over, I would have changed the package to experimental and then changed to pre-release when it was more polished and complete. Unity packages were shifting from preview to the new lifecycle for 2021 with experimental, pre-release, and released, and we probably jumped to pre-release prematurely.
     
  10. Deleted User

    Deleted User

    Guest

    Hi!
    I'm using the 2021.2.5f1 version and following the steps you provided isn't working. When I try to 'add package by name' it returns me the following error: 'unable to find the error with the specified name'. It happens even without specifying the release version.
    Is there anything I can try?
     

    Attached Files:

  11. chris-massie

    chris-massie

    Unity Technologies

    Joined:
    Jun 23, 2020
    Posts:
    231
    From the screenshot, it looks like there is an extra space at the end that is causing the error. Please try again with it removed.
    com.unity.xr.interaction.toolkit
     
    weizgit likes this.
  12. R1PFake

    R1PFake

    Joined:
    Aug 7, 2015
    Posts:
    542
    Oculus started to release their own XR Interaction SDK with the newest update.

    It's still experimental but it's working with controller and hand tracking interactions but lacking movement (no rotation, teleport etc.). Im going to be honest, some of these interactions already look/feel better than the XR Toolkit, especially the hand tracking interactions, which are not implemented in the XR Toolkit (yet?).

    Will this somehow affect the development of the XR toolkit?

    I thought Unity and Oculus work close together, so I don't understand why they developed a different system instead of extending / improving the XR Toolkit that Unity already started, but Im wondering if there are any plans to combine these packages in the future?

    As a Quest 2 developer Im a bit conflicted about the situation, I always liked how easy the XR Toolkit was to get started with some basic movement and interactions, but now that they have their own interaction SDK, I fear that this Toolkit will not get as much attention / ressources anymore. For Unity this is only a "side project" but for Oculus it's part of their "main project" and it's in their own interest to make the interaction system for their platform as good and unified as possible.
     
  13. Shizola

    Shizola

    Joined:
    Jun 29, 2014
    Posts:
    476
    I haven't tried it yet but they specifically mentioned a few times that they designed it so it could be used in conjunction with other frameworks including XR Toolkit.
     
  14. Kavithagamer

    Kavithagamer

    Joined:
    Feb 18, 2022
    Posts:
    8
    hi, I am using unity version 2021.2 but could not access XR interaction toolkit. even i give preview enable packages, i could not find XR interaction toolkit.
     
  15. chris-massie

    chris-massie

    Unity Technologies

    Joined:
    Jun 23, 2020
    Posts:
    231
    To install XR Interaction Toolkit in Unity 2021.x, you will need to install the package by name.
    Copy and paste the package name into the Name field:
    com.unity.xr.interaction.toolkit

    You can leave the optional Version field empty and it will install the latest version of the package.
     
    nmarechal likes this.
  16. Kavithagamer

    Kavithagamer

    Joined:
    Feb 18, 2022
    Posts:
    8
    chris-massie likes this.