Releases: UCL-VR/ubiq
(Ubiq) Unity Client v1.0.0-pre.16
- Significantly improved robustness of timeout+reconnect behaviour at both server and peer. The server is now more ruthless about forcing closed connections with no traffic. Peers now generate a unique UUID for each connection attempt, preventing situations where legitimate peers were being removed due to old connections timing out.
- Improved robustness of peer auto-rejoin on reconnect. It was possible for peers to 'forget' their room if their connection was down for long enough. This has been resolved.
- Added an example to demonstrate syncing an avatar-url in the ReadyPlayerMe sample
- Updated 'Save and Mirror' editor tool to also sync packages folder
- Fix significant memory leak on message receive
The above contains breaking changes. Before updating, consider whether the above benefits are worth the potential bugs! Things to watch out for:
- Messages were previously not being released back to the message pool. This meant that message contents could be stored by receivers and used after ProcessMessage. Now, messages are returned to the pool after all ProcessMessage calls are complete, so must not be stored after ProcessMessage returns. This was always the intended behaviour, and it's very unlikely you were storing message contents, but you may want to check through your ProcessMessage methods to be sure.
- Peer UUIDs were previously consistent for the life of the program. Now they are only consistent for the life of the connection.
This is a pre-release and bugs are likely. Should you find anything, please help us out by creating an issue.
(Ubiq) Unity Client v1.0.0-pre.15
- Fix import issues for ReadyPlayerMe sample
This is a pre-release and bugs are likely. Should you find anything, please help us out by creating an issue.
(Ubiq) Unity Client v1.0.0-pre.14
- Fix import issues for projects without XRI
This is a pre-release and bugs are likely. Should you find anything, please help us out by creating an issue.
(Ubiq) Unity Client v1.0.0-pre.13
- Fix to display correct traditional control hints in Quest browser
- Fix to correctly restore camera orientation after leaving XR mode in WebXR
- Fix for screen rotation issues in traditional controls
This is a pre-release and bugs are likely. Should you find anything, please help us out by creating an issue.
(Ubiq) Unity Client v1.0.0-pre.12
- Add control schemes for mobile and on-device XR browsers with on-screen touch controls. 'Desktop Controls' renamed to 'Traditional Controls' to reflect the extra platforms. At startup, finds the most applicable control scheme for the device it is running on and switches to it. Still permits cycling through applicable control schemes. Supports high DPI and landscape+portrait displays
- Add server-side timeout for peers which have not responded to a ping in a while (currently, the last 10 seconds)
- Fix local loopback scene regression
This is a pre-release and bugs are likely. Should you find anything, please help us out by creating an issue.
(Ubiq) Unity Client v1.0.0-pre.11
- Support hand tracking input in demo scene - can now join rooms, manipulate objects etc, through hand tracking
- Hand tracking can now drive controller positions, orientations and grip as fallback
- Disable MMVR by default to improve performance
- Fix regression causing Bots scene to error on load
- Fix missing dependencies #57
- Fix Vulkan+Oculus incompatibility with Unity's WebRTC package #43
- Fix Quest 3 microphone input garbling due to incorrect frequency reported by device #49
- Update XRI to version 3.0.7, XRHands to version 1.5.0 and WebXR-Export to 0.22.1
- Fix MMVR ambiguous method call on Unity 6
- Fix lower body calibration for ReadyPlayerMe avatar with MMVR
- Put desktop controller behind conditional compilation to prevent errors when missing XRI
- Convert sample materials to use URP SimpleLit counterparts for compatibility with Meta browser
Note that as of this release, the samples will no longer support the Builtin Render Pipeline. We recommend URP for new XR projects.
This is a pre-release and bugs are likely. Should you find anything, please help us out by creating an issue.
(Ubiq) Unity Client v1.0.0-pre.10
- New animation/IK system for full body avatars based on MMVR by @JLPM22. Big thank you to @sebjf and @JLPM22 for the integration. This is early and will likely go through many iterations in coming releases. If you do try it please let us know what you think on Discord.
- Added Rocketbox and ReadyPlayerMe full body example avatars. Part of the default avatar catalogue.
- Update to auto-reconnect behaviour. If connection times out on client end, client will now treat this as leaving the current room. The client can be optionally configured to attempt to re-establish the connection at a fixed interval, and re-join the room after re-establishing connection.
- Fireworks (example networked object) now have lifetimes.
Some known issues for this release:
- Full body avatars currently have various issues around hand position and elbow/wrist twisting when the local user is in XR. Recommended for remote avatars only at this stage.
- Server timeout does not match client timeout, so rooms may have unresponsive peers still connected and visible after a reconnect.
This is a pre-release and bugs are likely. Should you find anything, please help us out by creating an issue.
(Ubiq) Unity Client v1.0.0-pre.9
- Added a keyboard & mouse-based Desktop Control Scheme for first-person 2D interaction with the XR Interaction Toolkit. This scheme has been added to the XR Interaction Setup prefab as the default scheme for 2D, in place of the XR Device Simulator. The XR Device Simulator is no longer a pre-requisite to load the XRI Demo Scene. The XR Device Simulator can still be imported and used instead of or alongside the new 2D controls. Please provide any thoughts on discussions or Discord for future revisions.
This is a pre-release and bugs are likely. Should you find anything, please help us out by creating an issue.
(Ubiq) Unity Client v1.0.0-pre.8
- Added support for hand tracking input. Networking works well but currently sends a lot of data. We'll aim to optimise this in future releases. Works in built apps and the Meta browser.
- Replaced the old avatar 'Hints' system with 'Avatar Input'. Instead of getting individual 'hints' by a string name, now you get an 'input' of a particular C# type. Intended to be thinner abstraction than the previous system, to get in the way less when sending large amounts of data and to support arbitrary, complex types.
- Moved Avatar Input to its own prefab to simplify the process of using alternative player prefabs. This also applies to WebXR, so adding that export path to your project no longer requires replacing your player prefab. Comes with the added benefit that Ubiq no longer contains any of its own player prefabs as the long chains of prefab variants were causing dependency headaches.
- Updated Examples for new avatar input system.
Note that if you are updating from a previous version there are several breaking changes. Don't hesitate to ask in the discussions or Discord if you need help updating. Changes are as follows:
- A few important classes as part of the change to avatar input. If you were not directly using hints, you will mostly be isolated from this. If you have made a custom avatar, you may be using ThreePointTrackedAvatar, which is now HeadAndHandsAvatar. If you were using hints, the new classes in the Ubiq/Runtime/Avatars/Input folder might help you update to the new system.
- A few prefabs have been removed. If you were using the Player (XRI + WebXR) prefab and have made changes that you would like to keep, then before updating to this version, unpack the prefab and remake it. A special prefab is no longer required for the WebXR export path, so you can now use any player prefab. The default XRI player prefab in the Demo scene is a reasonable choice that we have tested.
This is a pre-release and bugs are likely. Should you find anything, please help us out by creating an issue.