Skip to content

Releases: MindPort-GmbH/VR-Builder

Support for Unity 6 and XRI 3

10 Dec 12:37
Compare
Choose a tag to compare

[Changed]

  • VR Builder now supports Unity 6 out of the box. Unity 2022 and previous versions are not officially supported by VR Builder 5.
  • Since Unity 6 uses URP by default, we now consider URP as our default render pipeline as well, and updated our content accordingly.
  • The default interaction component is now based on XRI 3. This entails a completely new rig (based on the XRI default rig) and some updated interactions.
  • The default raycast and interaction layers for teleportation are now named "Teleport" instead of "XR Teleport" and set to layer 31 if possible.
  • Teleportation anchors now have two more options: Add Snap Volume and Add Interaction Affordance, respectively auto configuring the anchor so that the teleportation ray snaps to it and so that it provides affordance when hovered.
  • Changed and tidied up namespaces. This can result in API breaks on custom content, but it should be a simple case of pointing to the new namespace.
  • Merged Text-to-Speech and Basic Interaction assemblies in the Core assembly, in order to simplify the architecture. Custom content that referenced these assemblies now needs to reference the Core assembly.
  • Removed obsolete code.

[Known issues]

  • There is no automated upgrade path from VR Builder 4 processes. It's technically still possible by manually editing the JSONs, but we recommend not upgrading a project in progress.

Text-to-speech API Updates

05 Nov 14:02
Compare
Choose a tag to compare

[Added]

  • The Object in Collider condition now supports multiple object references and lets the user specify a number of objects that needs to be in the collider.
  • Every text-to-speech provider implementation can now have custom configuration fields. This makes it easier to implement custom TTS providers.
  • UserSceneObject now has a Base property corresponding to the position of the user's feet.

[Changed]

  • Standardized component configuration sections in Project Settings (like the SnapZone settings) to make it easier to create more.

[Fixed]

  • Fixed automatically focusing the Step Inspector window when recompiling.
  • Play Audio behavior now stops playing before aborting.
  • If a condition is a lockable property provider, lockable properties are retrieved using the condition's API instead of a helper method. This makes it easier to implement custom conditions that return a specific set of lockable properties.

Abort Lifecycle

17 Sep 09:27
Compare
Choose a tag to compare

[Added]

  • The Parallel Execution node now lets you create optional paths. You can make a path optional by clicking the new button next to its name. An optional path will be interrupted when all non-optional paths have completed, and execution will immediately proceed to the next node. This can be useful to create background looping animations, recurring hints and so on. An optional path can even be an endless loop and it will still be interrupted.
  • Added advanced user settings to Project Settings > VR Builder. Advanced users can, for example, skip the "adding Process Scene Object" dialog or automatically add properties when an object is dragged in the step inspector, effectively auto-pressing the "Fix it" button.
  • VR Builder components now have a custom icon instead of the Unity script icon.
  • Added API to abort entities to entity lifecycle. Calling the Abort() method on an entity lifecycle will enter a short Aborting stage where all child entities are aborted as well, then will revert the entity to Inactive. Note that while every lifecycle can be individually aborted, it mostly makes sense to abort entire processes or chapters.

[Changed]

  • The Set Next Chapter node has been renamed to End Chapter node. It now actively ends the current chapter (by aborting it) instead of just setting the following one. This means it now also works reliably in nested nodes, so we made it possible to create this node inside step groups or parallel execution nodes, where it was previously greyed out.

[Fixed]

  • Fixed warning in Unity 2022+ when using the Move Object behavior to move a kinematic object.

Compatibility Update

31 Jul 11:32
Compare
Choose a tag to compare

[Added]

  • Added resource drawer for animation clips, in order to support the new Play Animation Clip behavior in the Animations add-on version 2.1.0.

Copy/Paste Behaviors and Conditions

08 Jul 09:15
Compare
Choose a tag to compare

[Added]

  • Added support for copy/pasting behaviors and conditions in the Step Inspector. The Delete button has been replaced with a Menu button which allows to delete, copy and paste behaviors and conditions, similar to the Unity inspector. Additionally, a Paste button has been added next to the New Behavior/Condition button to allow pasting into an empty inspector.
  • New Load Scene behavior letting you load scenes with options to load additively and/or asynchronously.
  • Generic dropdown drawer that can be used for your custom behaviors/conditions: your class should extend DropdownDrawer and should be passed a string in the attribute [UsesSpecificProcessDrawer("YourDrawerName")] above the property you want to select via dropdown.

[Changed]

  • The Process Editor now displays a message when it is open in a scene without a process. This also displays warnings in case the process has been moved/deleted.
  • The Runtime Configurator now handles a moved/deleted process by displaying a message in the dropdown instead of silently defaulting to the first selectable process.
  • Improved the UI of the dropdowns showing scene object groups.
  • Improved error handling with having multiple instances of type RuntimeConfigurator in all loaded scenes.

[Fixed]

  • Black text on the "drop object here" box of scene object references in Step Inspector.
  • Fixed exception when attempting to create snap zone highlight from multiple large meshes.
  • Fixed a build error.
  • Small editor performance improvements in behaviors/conditions that let you choose between a data property and a constant value.

Editor Improvements

10 Jun 13:07
Compare
Choose a tag to compare

[Changed]

  • Significantly improved editor performance when deleting a step in a chapter with many steps.
  • The user's position in the graph is now persisted between sessions.
  • The selected tab in the step inspector (Behaviors, Transitions or Unlocked Objects) is now stored globally, so it will stay the same when cycling through steps.
  • HasGuidValidation no longer accepts any object if no guids are specified, but will accept no object as is logical instead. While this can result in an unusable snapzone, it makes it possible to potentially add valid objects at runtime.

[Fixed]

  • The progress bar doesn't get stuck when the TTS provider fails to generate a clip, an error message is displayed in the console.
  • Fixed language settings not being saved correctly in certain cases.
  • Fixed process controller prefab so that unnecessary components are not present when Standard is selected.
  • Groups created from a Process Scene Object are persisted correctly.
  • Fix for occasional ArgumentOutOfRangeException causing the wizard not to display correctly when importing VR Builder for the first time.
  • Fixed the bug where an outdated process is executed when pressing play.

Runtime Performance Improvements

21 May 10:00
Compare
Choose a tag to compare

[Added]

  • Significantly improved runtime performance for processes with many steps. Now the number of steps in a process has no impact on the performance.
  • New multiline text drawer contributed by LEFX - thank you! The drawer is currently used in the Text To Speech behavior but can be manually set for fields in other behaviors/conditions.
  • Added ForceLockControllerState and UnlockControllerState public methods to ActionBasedControllerManager. These can be used to externally lock the controllers e.g. in UI mode or teleport mode, which can be useful if the user is required to perform a specific action.

[Changed]

  • The UserSceneObject component does not inherit from ProcessSceneObject anymore. This allows you to use the rig in a scene without scene object registry without getting errors - for example when loading additively scenes with processes in them. As a result, BaseRuntimeConfiguration.User does not work anymore. You can still use BaseRuntimeConfiguration.LocalUser which provides the same functionality while returning a UserSceneObject component. Note that nothing stops you from manually adding ProcessSceneObject components to parts of the rig you want to interact with the process.

[Fixed]

  • A link.xml file is now automatically created before Android builds in order to prevent managed stripping from removing behavior/condition code which is actually in use, and thus resulting in a non-functional process in a standalone headset.
  • Fixed tags on game objects not being converted to groups when upgrading from version 3 to 4.
  • Fixed bug in the automatic updater of the Enable/Disable Object by Tag behaviors. Now these should be replaced by a correctly configured non-obsolete behavior.
  • Scene property extensions will not be added multiple times when selecting the Add Scene Property Extension menu entry in a scene where they have already been added.

New Object Referencing System

25 Apr 12:18
Compare
Choose a tag to compare

[Added]

  • Added upgrade tool for updating processes to the new referencing system (see below). If you open an old process in VR Builder 4.0.0, all object references will be null because the system has changed. You can attempt to update the process by opening its scene, then selecting Tools > VR Builder > Developer > Update Process in Scene. Note it's important that the correct scene is loaded, as the updater will have to search for the correct game objects in order to update the references.
    If you have custom behaviors or conditions in your project, you'll need to update them to the new referencing system. Afterwards they will be supported by the automatic updater.
  • Added support for TTS when using an async provider, courtesy of LEFX.

[Changed]

  • Rebuilt the system for referencing scene objects in the process from the ground up. The new system is more robust and lets you use prefabs normally, without worrying about unique name conflicts. References in behaviors and conditions now can hold a mix of unique objects and object groups (formerly tags). They can be single or multiple references, meaning they will return one object or all viable objects. Make sure to check the documentation for more information.
  • "By tag" behaviors and conditions have been removed. Now there is only one version of a given behavior/condition, but where it makes sense it will be possible to reference multiple objects, thus replicating the functionality.
  • VR Builder is now a hybrid package. This means that while it's still an Asset Store .unitypackage, it will be imported in the Packages section of the project instead of your Assets folder. It's recommended to delete the MindPort/VR Builder/Core folder under Assets before updating to this version.
  • Scene Object Tags have been renamed to Groups. Functionality is the same, but if updating from an old project you will notice that the Scene Object Groups settings page is empty. You can import your old tags by selecting Tools > VR Builder > Developer > Update Object Groups.
  • Objects unlocked by conditions are now unlocked when the step is active instead of activating. This means, for example, that the teleportation anchor for a teleport condition will appear after all blocking behaviors have finished instead of the beginning of the step. It also means that it won't be possible to teleport there before the condition starts checking.
  • The process won't stop executing because of entity lifecycle exceptions, instead, an informative error will be displayed in the console.

[Fixed]

  • Fixed Set Next Chapter node exception when being fast forwarded.
  • Fixed some errors when creating a new scene through the wizard.
  • Fixed manually unlocked objects not locking again if they had been manually unlocked in multiple consecutive steps.
  • Fixed unresponsive buttons in the Scene Object Groups settings page.

[Removed]

  • Removed previously deprecated code. This includes the C# events on all properties, the old process editor, and more.

Experimental Hand Tracking Rig

08 Dec 09:22
Compare
Choose a tag to compare

[Added]

  • Experimental hand tracking rig based on the default XRI Hands rig. The prefab is named XR_Setup_Action_Based_HandTracking and can be used in place of the default rig. The rig supports both controllers and hand tracking. Note that there is no teleportation solution currently available for hand tracking, and some controls and behaviors are slightly different from the standard rig.
  • Added dependency to the XR Hands package.
  • The XR Teleport interaction layer is now automatically created when importing VR Builder.
  • Added a check to ensure rig and teleportation areas/anchors are set to the correct raycast/interaction layers. The rig is automatically set up on rig creation, and you can check the entire scene manually by selecting Tools > VR Builder > Developer > Configure Teleportation Layers. The demo scene is automatically set up when opened from the menu or the wizard.
  • Added animation curve functionality to the Move and Scale Object behaviors. Thanks LEFX!

[Changed]

  • Updated XRI dependency to XRI 2.5.2
  • Changed how the Project Setup Wizard decides whether to show the hardware selection page: now the page will show if none of the common XR SDKs (OpenXR, OculusXR, WMR) are installed.

[Fixed]

  • Fixed having a full path stored in the runtime configuration instead of a relative one when renaming a process, which could cause issues in builds or when working across different computers.

Anchor Proximity Detection

07 Nov 14:35
Compare
Choose a tag to compare

[Added]

  • It is now possible to add proximity detection to VR Builder teleportation anchors. This means that the anchor will send a teleported event readable by VR Builder even if the user gets near it by continuous locomotion or walking, without teleporting. Click the "Add Teleportation Proximity Entry" button on the teleportation anchor to instantiate the necessary components.
  • Added support for the Cognitive3D integration.
  • Added drawer for selectable value between int and data property reference.

[Changed]

  • The touchable property now recognizes touch from any direct interactor, not only from interactors parented to the user scene object.

[Fixed]

  • Fixed issue when having punctuation in the name of a localization table.