OKO 2024.10
Release Scope: Web, Unity iOS, Unreal, CSP, and CHS.
Web
Client version: 2.38.8
Web VR
As part of a request for a studio project, the team implemented support for Web VR. Users can now enter a space directly into VR, or toggle on VR mode via a button depending on the space settings and whether a supported device is being used.
Users can navigate a space using the following controller-based locomotion controls:
Input | Action |
Left joystick | Move in direction of joystick |
Right joystick | Rotates camera view when joystick is pressed right/left (up/down has no functionality yet) |
A button | Fly up |
B button | Fly down |
X button | Exit VR mode |
A representation of the device controllers will be visible to a user in VR and will precisely match the position and rotation of the player's real controllers. If the controllers are no longer being tracked they will disappear.
Currently, the only component supported for VR interactions is the button component. Pointers from the controller are visible in space, and once pointed at a button component it will fire a click event that will run any scripts associated with the component.
Components
When adding components, editors will notice the selection menu has now been grouped for easier navigation.
Additionally, OKO now shows the icon corresponding to component types in the hierarchy.
Lastly, the web client now supports selection highlighting for buttons, external links, reflection probes, and text components.
Support for New Environments
Following CHS’s work to move OKO onto new environments, the Web team has performed the following:
Site model URLs have been updated to the new format.
Added support for the environment switcher concept and maintenance URLs to the new deploy configurations.
Removed osandbox, odev, and ostage from the environment select menu.
Updated the environment switcher and deploys to use o2prod.
Other Updates
Creators can no longer double-click on the ground plane to teleport on Web desktop (note: this functionality still exists in viewer mode).
Upgraded to PlayCanvas 1.73.4 and added support for gltf files that use GPU mesh instancing.
Pressing the ESC key now deselects selected items (entities/components for users in creator mode and e-commerce products for users in viewer mode).
The pricing page has been updated to ensure our messaging on the OKO Basic account pricing is in line with consumer protection laws; now showing the price as a flat $0 fee.
Product details for e-commerce items are now displayed in a floating panel in space for viewers.
The microphone and camera buttons have been moved out of the call panel to the bottom right-hand side panel, and the AR/VR buttons have moved from over the top of the 3D view into the UI.
Bug Fixes
AR user height is now fixed.
The helper graphics when collision components are selected are now visible.
Pressing cancel in the edit comment panel without having changed anything now returns to the comment details.
Avatar is no longer visible in VR mode when zooming out prior to switching.
The avatar editor in OKO is now fixed.
Unity (iOS)
Client version: 1.13.0 Build 5.66.0.1
Updates
The room scan UX is now within a space.
Vision Pro:
Added ability to enter a space.
Added profile settings.
Avatar support.
CSP custom component support.
CSP image component support.
Static and dynamic model support.
CSP script component support.
CSP Update to 5.0.1 / FDN 2.0.0.
Gaussian Splats:
Added tint support.
Bug Fixes
Updated App Clips to new environments.
Fixed Gaussian Splat occlusion issues using a single VFX graph.
Anchors now resolve in the OKO iOS app.
Unreal Plugin
Client version: 149333
Drag and Drop Support
We have been slowly introducing a new UX for associating assets with components in UEEE, involving the user dragging an asset from the asset library onto a component’s asset collection property in the details panel. We have previously completed work for supporting this functionality for the image component, and this release sees three other components being added to the list:
Audio.
Button.
Gaussian Splat.
Support for New Environments
Following CHS’s work to move OKO onto new environments, there was an update to the environment switcher to ensure users can connect and successfully login into the new environments, while also updating sections of code that contain hard-coded references to default environments.
Bug Fixes
Text is no longer duplicated and the overflow was fixed on the asset library.
Uploading an asset on the web no longer causes the error message in the Unreal plugin.
Users are now able to scroll up and down on the asset library.
Connected Spaces Platform
Version: 4.31.0
Find us on GitHub and npmjs for Unity and Web packages.
Entity Hierarchy
CSP now supports the hierarchy of entities, where each entity can optionally have a parent entity associated with it. If the entity has no parent, we consider it to be a “root” entity within the space.
Component Naming
All components now include a Name property, enabling CSP client applications to label all current and future components with readable names.
Hotspots
CSP now allows client applications to reason about the ordering of hotspots via the HotspotSequenceSystem. This feature is designed to give applications a means to allow their users to control the ordering of hotspots within a list.
Space Duplication
CSP client applications can now invoke the duplication of spaces via the SpaceSystem API. The API allows the application to specify whether all assets in the space should be copied, as well as the entities, or just the entities (whereupon the newly copied space’s entities will continue to reference the previous space’s assets.
Bug Fixes:
Fixed CustomComponentTest Hanging.
CSP Native plugin is now included in the Xcode project for visionOS.
Cloud Hosted Services
This is a summary of the client-facing features available in this release.
Server Side Leader Election
This is disabled by default, but when CSP is ready to enable it, script leaders will be chosen on the server, not the clients. This will prevent inactive users from being script executors and allows us to give preference to sturdier client hardware.