1. Neos VR
  2. News

Neos VR News

2021.3.28.524 - New Desktop mode is now default and usable without VR, fixes

Hello everyone! Sorry for another smaller build, but this one has pretty significant change - the new desktop mode is now default and usable without VR!

I did another pass on the keybinds as well, they have been changed quite a bit and should be closer to what fits with Neos the most. I'm sorry that it's going to mess up with your muscle memory (it does with mine too), but I wanted to make sure we have a good set for what Neos is, rather than haphazardly chosen ones.

Notably the locomotion ones were changed, which are now similar to Minecraft - Shift for "sneak" (slow movement) and double tap directional keys (WASD) to run. Using Space (jump) and C (crouch) in Fly/Noclip now also moves you up and down.

There's still lots of work and tweaks to do on the desktop mode, this doesn't mean it's quite finished yet, but I felt it's enough for the swap. The old one is still available as "Legacy Screen" for the time being if you need/want to use it (but prepare for it going poof at some point in the future).

Some work went into cleanup of initialization and postprocessing issues too, I managed to find reason why the streamer camera and in-game ones didn't have a working motion blur effect, so it's finally back! Also some other bugfixes, notably for the audio stopping with Unity Native video playback when switching URL, sorry for the trouble!

[h2]New Features:[/h2]
- The new desktop mode is now the default mode!
-- Launching Neos with "Screen" or AutoDetect without VR device will use the new desktop mode
-- Old debugging mode is available as "Legacy Screen" -LegacyScreen for the time being, but remains officially unsupported
-- Please note that this doesn't mean that the new desktop mode is finished, there's still a lot that will come to it
-- Note that we're also still updating associated materials like the tutorials and descriptions

- Neos now uses VSync by default in the new desktop mode, preventing running at unconstrainted framerate and wasting GPU performance (prevously requested by @かず (kazu / GitHub: kazu0617), @Shadow Panther [RU/EN, UTC+3] and others)

- Added MinInputCloseness and MaxInputCloseness to EyeLinearDriver
-- These allow adjusting the range of input values that the eye closing responds to. This can be used to tweak the range so the eyes stay fully open even when partially closed (e.g. due to eye tracking issues, as reported by @Rukio)

[h2]Tweaks:[/h2]
- Shift key is now used to slow down movement
- You can run by double tapping any of the movement keys (WASD)
- Space & C on keyboard and A/LeftBumper on gamepad (jump & crouch) are now also used to move up and down in Fly/NoClip
- Up/Down movement is now relative to the user's space, rather than the head (e.g. looking straight down and holding Space will move you upwards, instead of forward)
- Desktop Interaction Relay now ignores interactions when in the new desktop mode
- The LOD bias is now automatically switched when toggling between VR and Desktop mode
- Save To Inventory and Save Screenshot items now have distinct icons and colors

- Merged rewording of ban buttons in the Contacts menu in the English locale by @Polaris (she/her)
- Merged Korean locale addition by @MirPASEC
- Merged Japanese locale addition by @Aesc
- Merged Czech locale addition and tweaks by @rampa_3 (UTC +1, DST UTC +2)

[h2]Bugfixes:[/h2]
- Fixed Motion Blur not working on non-VR cameras or in Desktop mode when VR is running
- Fixed Ambient Occlusion trying to treat non-VR cameras as VR when VR is running, resulting in incorrect behavior
- Fixed VideoTextureProvider stopping audio playback after the URL has changed or when the video loops (reported by @Rukio, @Turk, @Alex from Alaska)
- VRIK now respects the Enabled property even when updated externally (e.g. from VRIKAvatar)
-- This fixes regression where some behaviors that depend on disabling the IK would no longer work (reported by @Dante and @Turk)

2021.3.27.510 - New desktop mode improvements, facial tracking tweaks & fixes

Hello, sorry for a smaller build this time, I just want to push out some fixes and tweaks rather than waiting on some bigger things to be finished first, particularly some regressions for the facial tracking blendshape auto-detection.

There's a few other smaller additions too, for example you can adjust the volume of people outside of your whisper bubble now.

Some smaller improvements and progress to the new desktop mode as well, with key bindings and legacy dialogs now working properly. I'll have more soon!

[h2]New Features:[/h2]
- Added "Whisper Voice Volume (outside bubble)" setting, which allows configuring the voice volume of users outside the whisper bubble (requested by @Robyn (QueenHidi))
- Added "StrengthMultiplier" to the AvatarRawMouthData, allowing scaling the strength of all the properties

- Added TongueRaise and TongueExtend expressions to the AvatarExpressionManager
-- Those are useful when there are two separate blendshapes for raising the tongue and then extending it out
-- The heuristics was updated to map the TongueLongStep1 and TongueLongStep2 to these two, resulting in better behavior for models following the HTC Facial Tracker naming convention

- AvatarExpressionManager heuristics now checks for the exact expression naming of the blendshapes first, before using heuristics (based on feedback by @GearBell)
-- Note that for this to work, you must name the blendshapes exactly the same as the expression names you see in the inspector, without any extra spaces, periods or underscores. It is however case insensitive

[h2]Tweaks:[/h2]
- Keyboard bindings that use Ctrl, Shift and Alt keys will now also accept the right Ctrl/Shift/Alt keys (based on requested by @Psychpsyo)
- Legacy dialogs (e.g. Hyperlink warning, Create New Directory, Credits Transfer and so on) will now open in the overlay in the new desktop mode so they can be easily interacted with
-- Note that you cannot grab and move them around, only click to interact. This might not be implemented before they're replaced with more modern variants
- Any focused elements (e.g. text fields) will now block keyboard interactions in userspace
-- This fixes the dash opening/closing when using keyboard to type (based on report by @Shadow Panther [RU/EN, UTC+3])
- Text fields will now unfocus when the Escape key is pressed

- Merged Russian locale additions (including MTC Avatar Lobby) by @Shadow Panther [RU/EN, UTC+3]
- Merged Japanese locale addition by @Aesc
- Merged Czech locale addition by @rampa_3 (UTC +1, DST UTC +2)
- Merged Korean locale addition by @MirPASEC

[h2]Bugfixes:[/h2]
- Fixed regressions in AvatarExpressionDriver, BipedRig and other naming heuristics, causing some blendshapes/bones and/or their chirality to not be detected properly
-- This fixes the HTC blendshape naming convention not automatically setting up all the names anymore
-- If you setup your avatar recently, it's recommended to rerun the auto-assignment
- Fixed headless not measuring auto restart and auto save intervals properly, using a mix of UTC and local time, resulting in incorrect intervals (reported by @Shadow Panther [RU/EN, UTC+3])
- Fixed regression where it wasn't possible to interact with touchables with the same hand that's holding an object with the laser
-- This fixes not being able to invoke the Overwrite menu for world orbs
-- It also fixes not being able to assign references/values to the inspector fields by clicking (reported by @Turk)
- Fixed being able to use worlds that you don't have write permissions for to overwrite your own worlds with (reported by @sirkitree)
- Fixed Unity Native video playback returning audio data when paused
-- This should fix VolumeMeter reporting volume when the source video is paused (reported by @Toxic_Cookie)
-- It should also fix AudioSourceWaveformMesh showing undesirable visuals (reported by @AshtonSparx)

2021.3.25.399 - New desktop mode additions, Linux reflection probe fix and more

A whole bunch of new goodies for the new desktop mode! You can now rotate items (GMod style!), scale them, scale yourself, take in-game photos (even with timer), save items to inventory and quick switch common tooltips. I've also changed a bunch of the existing bindings too (e.g. the Dash is now opened/closed simply by pressing Esc) and there's a whole bunch of other tweaks, improvements and bugfixes to make the new desktop mode more usable.

Currently it is still usable only by pressing F8 after launching in VR, but I'll be swapping it out within next few days, after adding a few more crucial things. It's coming along!

Also added a bunch of bugfixes to this one (including broken Reflection Probes on Linux, which turned out to be just a stupid typo in a flag when uploading HDR textures to GPU, sorry!) and some regressions (sorry for the inconvenience!). More to come soon!

[h2]New Features:[/h2]
- Added "Save To Inventory" context menu option, which will save the held object to the current inventory folder
-- Note that you currently need to open inventory folder where you have write permissions first. This will be simplified with the upcoming inventory UI redesign
-- This also allows easily saving items in the new desktop mode

- Added an internal mechanism to load-equip and stash tooltips from an URL
-- Tooltips and other equippable items are now internally tagged as equippable when saved to inventory, which will allow future UI to allow one-click equip directly from inventory
-- When switching tooltips, if the current one is quick loaded, it will be "stashed" - disabled and hidden, preserving its state on the next equip in the same session
- You can now quick switch tooltips in the new desktop mode via tha alphanumeric keys. Bindings are following (the loadout will be customizable in the future):
-- 1 - Dequip
-- 2 - Developer Tip
-- 3 - LogiX Tip
-- 4 - Material Tip
-- 5 - Shape Tip
-- 6 - Light Tip
-- 7 - Grabbable Setter Tip
-- 8 - Character Collider Setter Tip
-- 9 - Microphone
-- 0 - Glue Tip

- You can now capture in-game photos in the new desktop mode
-- To capture instant photo, press Shift+P or Shift+PrintScreen
-- To start timer photo, press Ctrl+P or Ctrl+PrintScreen
-- The capture won't start until you release the combination, allowing you to hold it to see a preview

- You can now rotate held items in the new desktop mode
-- Hold the E key while holding an item and move the mouse around to rotate object around X and Y axes
-- Hold the Shift+E key to rotate only around the vertical axis
- You can now scale held items in the new desktop mode
-- Hold the Shift key while holding an item and use the mouse scroll wheel to scale it

- Added a mechanism to block inputs within InputGroup by specifying a priority level for each binding, simplifying setup of common control schemes (e.g. Ctrl+, Shift+ and as modifiers)
- Reworked FingerPhotoGesture into a more general PhotoCaptureManager

[h2]Tweaks:[/h2]
- Dash is opened/closed by the Escape key now in the new desktop mode
- The locomotion switch and scaling options are now shown on the context menu even with equipped tooltip
- Keyboard & Mouse input is now fully supressed while the dash is open in the desktop mode
- Lowered the limit of how close you can bring grabbed items to your viewpoint from 10 cm to 5 cm in the new desktop mode
- Increased vertical mouse look angle limit to 89 degrees from 80 to allow looking near straight up and straight down
- You can now use PageUp and PageDown to quickly cycle between active locomotion modules
-- This will have a visual at some later point, not too usable at this point just yet, but it's been added as part of larger work
- You can now self-scale in new desktop mode by holding Ctrl and using the Mouse Scroll button
-- Scaling still needs to be enabled first in the context menu
- Tweaked finger photo gesture supression level, to be more tolerant of bent fingers
- Developer Tooltip laser now considers Gizmo controls as preferred targets and will pass through other objects and stick to them (based on report by @H3BO3)
- Undo & Redo context menu options are not generated when holding items with the active hand

- Merged Japanese locale additions for the new MTC Avatar Lobby by @Aesc
- Merged Czech locale additions for the new MTC Avatar Lobby by @rampa_3 (UTC +1, DST UTC +2)
- Merged Korean locale tweaks by @MirPASEC

[h2]Bugfixes:[/h2]
- Context menu positioning in the new desktop mode now properly handles user's scale
- Interaction Laser now consider user's current scale when ignoring near raycast hits
-- This fixes the context menu not being usable when the user scale is too small in the new desktop mode
- Fixed SyncType inspector field not accepting any type strings after recent changes (reported by @3x1t_5tyl3)
- Fixed incorrect flags being set for BC6H textures when uploading them to the GPU through OpenGL, resulting in the texture data to be interpreted incorrectly on Linux and Android
-- This fixes ReflectionProbes being overly bright on Linux (@Shifty | Quality Control Lead, @happysmash27, @Polychrome, Silvea12, Enverex and @Develon)
- Fixed favorite avatar, keyboard, camera and home being unfavorited on manual log out (reported by @Flame Soulis and @H3BO3)
- Fixed gamepad mouse look being framerate dependent (reported by @Lewis Snow | Lead Audio Engineer)
- Fixed regression breaking the context menu flick functionality (reported by @Flame Soulis, @DeliriousJax, @ohzee, @H3BO3 and @Turk)
- Fixed regression when aligning laser-held objects to the vertical axis having a small offset from the aligned position, depending on the hand movement speed (reported by @orange)

2021.3.23.391 - Crash and exception hotfixes for the input system and IK

An extra hotfix to fix some more issues that were found. Compatible with previous build, but update recommended for headless, since it mainly concerns bugs manifesting on those.

[h2]Tweaks:[/h2]
- Merged Korean locale translations by @MirPASEC (including new MTC Avatar Lobby)

[h2]Bugfixes:[/h2]
- Fixed Neos trying to use VR bindings against VirtualController instead of VR one in some cases, causing the user's session to crash
-- This should fix some session crashes when joining worlds or switching locomotion in desktop, particularly with Oculus runtime (reported @epicEaston197, @Shifty | Quality Control Lead, @/home/JellyOsaurusPC)
- Fixed exceptions due to updating InputGroups for owners that have been removed in the input update cycle
- Fixed grabber transform computations using local user's space, instead of the user actually owning the grabber
-- This also fixes exceptions on the headless for the CommonTool, due to not having a user root
- Fixed VRIKAvatar trying to calculate distance to user's head when the head position is not available (e.g. during respawn or on headless)
-- This fixes IK avatars stopping to update when the user exits them on a headless session

2021.3.23.231 - Context Menus & Tools/Weapons work in new desktop mode, fixes

Hello everyone, sorry it took a while to get this build ready, but it presents a major milestone in the develpment of the new desktop mode! You can now fully use Context Menus and Equippable items (Tools, Weapons, Gadgets...), making the mode fully usable for core interactions! With those in place, I'll start progress on making this the default desktop mode now. I'll keep the old one as legacy for a bit while it still gets more polish. Right now you still need to startup in VR and press F8 to activate it, but hopefully it'll prove very useful already!

There are some semi-major things that changed/expanded in this internally, the input handling has been restructures quite a bit, which reduced latency of some input handling by a frame (making things feel more responsive), but watch out for potential side effects. Thanks to the following danger testers for catching some game breaking bugs before this went live: @/home/JellyOsaurusPC, @Kulza, @Raith (CytraX), @Alex the pet peeve avali 🐦, @Epsilion, @Gawdl3y and @Shadow Panther [RU/EN, UTC+3]

This build has a whole bunch of tweaks, security improvements and fixes too, so hopefully that'll solve some of the pains and problems that you've been dealing with, sorry that those fixes got held up a while! I hope to have more ready soon, probably tomorrow. I'll probably have to release the weekly update tomorrow too instead of today, it took a bit longer than expected to get this ready and not sure how much longer I'll be able to stay up and focus.

But in the meanwhile, have fun! There's a lot more to come to desktop, but with this we should have all the necessary basics.

[h2]New Features:[/h2]
- Context Menus are now usable in the new desktop mode
-- Press the Middle mouse button or the "Y" button on gamepad to open/close them
-- They will also open when clicking on certain objects (e.g. Avatars or Tooltips/Equippable items)
-- When Context menu is open, the cursor will switch to a freeform one, allowing to easily select and click on the items without having to aim head at them

- Tools, Gadges and other equippable items are now usable in the new desktop mode
-- When equipped, the avatar's hand is positioned relative to the head so the item is visible in the first person mode
--- The positioning is based on the grip pose. If it's not setup properly, the item will be misaligned
-- The tool/item/gadget is automatically aimed at the point in world currently under the cursor reticle
--- For this to work correctly, the item needs to have a properly setup TipReference, that corresponds to the exact tip and direction that the tool should aim at (using Z axis as forward)
--- Existing RawDataTooltip items are auto-upgraded using heuristics, using sources of raycast or particles. You might need to adjust the TipReference on some manually if the detection doesn't work properly
-- Current bindings are (these are tentative and will likely change)
--- Primary - Left Mouse Button / Right Trigger (gamepad)
--- Secondary - R key / Mouse Button 4 (is present) / X button (gamepad)

- RawDataTooltip & StandardController now provide proper inputs in the desktop mode, making items that rely on those work
-- The values are fed through a VirtualController type from the current input bindings of corresponding actions

- Pointer interaction system now routes the first and second pointer (mouse cursor and/or touch) through the hand interaction system
-- This results in the intereractions posing the avatar's primary and secondary hand and being able to grab and scale with toushcreen
- Neos now renders its own cursor even in freeform cursor mode to provide visual consistency and contextual behavior and avoid the system cursor to be overlaid on top of the in-game reticle
- InputDeviceStreamDriver now disables streams for input devices that are currently inactive, saving network bandwidth
-- E.g. VR controllers when Screen is active and VirtualControllers when VR is active

- You can now self-assign the hearing impaired, color blind, mute and potato badges
-- To assign or remove, simply send following commands to the Neos bot account in your Contact list:
-- /addHearingImpaired, /removeHearingImpaired, /addColorBlind, /removeColorBlind, /addMute, /removeMute, /addPotato, /removePotato

[h2]Tweaks:[/h2]
- Restructured update order of the input handling components, avatar posers, VRIK and CommonTool
-- This reduces latency of input response by a frame (e.g. making the laser/cursor respond in the same frame that the input happened, rather than lagging a frame later)
-- It also allows for automatic interactions based on a laser hit (e.g. based on a screen touch that happens instantly)
- Desktop mode grabbing now uses user's head forward direction as rotation reference instead of the hand
-- This reduces slight rotation of the grabbed object upon grabbing due to the hand being procedurally moved
- Cleaned up and tweaked several user related components for driving the root objects based on inputs, tracking compensation and so on
-- Many of the components now implicitly work based on the user they're initialized on, rather than explicitly assigned
-- Where possible, the components only register events for the user actually using them, rather than for everyone
- Improved parsing of URL's when classifying asset types to search the URL query for a file extension in addition to the main data path
-- This makes certain types of URL to get detected properly and imported directly from the clipboard (e.g. IPFS file URL's, as reported by @Komdog)
-- E.g. https://example.com/somepath?file=MyFile.mp4&someparam=42 will now properly import as a video
- Near head hand gestures/shortcuts are no longer triggered in the desktop mode
- Saving world with Ctrl+S is now supressed when the new desktop mode is active (based on report by @Cyro)
- Crouch is now on the Left Bumper on gamepad

- Added new English MTC Avatar Lobby locale strings by @Ryuvi | Technical Artist and @Aegis_Wolf | Art Director

- Merged Estonian locale additions and fixes by @Meron
- Merged Russian locale addition & tweak by @Shadow Panther [RU/EN, UTC+3]
- Merged Korean locale addition by @MirPASEC
- Merged Japanese locale addition by @Aesc
- Merged Esperanto and Chinese locale additions and tweaks by @Melnus
- Merged Czech locale addition by @rampa_3 (UTC +1, DST UTC +2)
- Merged English store page fixes by @rampa_3 (UTC +1, DST UTC +2) and Enverex (will take a bit before it's pushed to store)
- Merged British English addition by Enverex

[h2]Security:[/h2]
- Fixed SimpleAvatarProtection throwing an exception when checked against user who has been destroyed (based on report by @3x1t_5tyl3 and @marsmaantje)
- Fixed CommonAvatarBuilder not cleaning up user's default avatar if it fails to be equipped for any reason (based on report by @3x1t_5tyl3 and @marsmaantje)
- Improved security of touch sources (based on report & sample by @Psychpsyo and @Epsilion)
- Improved sanitization of held items being transferred through the userspace (based on report & sample by @Psychpsyo and @Epsilion)
- Reworked mechanism for cleaning up Userspace-only components, so placing them on protected Slots (e.g. Root slot) doesn't cause exceptions and failure to clean them up (based on report by @Psychpsyo)
- Fixed usernames not being sanitized in the World UI and on the world orbs, causing any RTF tags in the username to be parsed (based on report by @Kodey and @Psychpsyo)

[h2]Bugfixes:[/h2]
- Fixed Neos locking the cursor when running in the VR mode (reported by @Hayden)
- Fixed headless running some actions that should only be ran by user under who is given behavior parented
- Fixed BeforeInputUpdate event being potentially executed twice on some components
- Fixed SmirkLeft and SmirkRight expressions breaking the AvatarExpressionDriver when activated (reported by @Alex the pet peeve avali 🐦)
- Fixed ContextMenu collider being enabled until it's first used
- Fixed some odd interactions when using the new desktop mode with the old one
- Fixed ScreenController update order being same as TrackedDevicePositioner, causing the simulated hand to freak out in some cases (where it ends up initialized after the TrackedDevicePositioner)
- Fixed ValueField and other generic components that handle value types allowing certain non-value types (e.g. System.Type) and causing the session to crash (reported by @dfgHiatus, @Epsilion, @Psychpsyo and @Zyzyl)
- Fixed component exception handling misbehaving when placed on a destroy-protected slot (based on feedback by @Psychpsyo)
- Fixed Neos crashing when running on devices without a mouse present (e.g. Android) (based on report by @かず (kazu / GitHub: kazu0617))
- Fixed reliable user positioning breaking and throwing exception when the user is deleted in the middle of the process, causing other processes to break (based on report by @3x1t_5tyl3 and @marsmaantje)
- Added generic type validation to more components to prevent crashes when creating them with invalid argument (based on findings by @Zyzyl and @Banane9)
- Fixed some World event behaviors (e.g. focus change, on save, user join or leave) breaking due to not setting up proper update scope (e.g. when fields are driven)
- Added Type validation for setting SyncType and related operations, to avoid setting/processing of invalid types (e.g. type with invalid generic argument) and causing the session to crash (reported by @Psychpsyo)
- Fixed LipMoveLeftLower expression on AvatarExpressionDriver driving the target with movement to right, instead of left (reported by @umbran)
- Fixed nameplates using the IsPresentInHeadset state instead of IsPresent, causing them to become semi-transparent when the user switches to the desktop mode after existing their headset (reported by @Shifty | Quality Control Lead)
- Fixed Userspace having two instances of PointerInteractionController, resulting in cursor and touch interactions in userspace being processed twice
Known Issues:
- When interacting with context menu on gamepad, the camera view will move if you don't let go before the menu disappears
- Some tooltips are hard to use without additional behaviors (e.g. LogiX tooltip)
- Currently key bindings are tenative and will likely be tweaked as more behaviors are added