1. Neos VR
  2. News

Neos VR News

2021.5.9.179 - Fixing random Contacts+ connection failures and other fixes

Hello guys, another small patch, fixing up some critical issues! Notably Contacts+ not working in some cases (I think this should be the last of it now), messages not loading and some logspam with procedural assets.

Build is compatible with the last two, so update at your own leisure! You'll definitely need to update if you want Contacts+ to work reliably though.

[h2]Tweaks:[/h2]
- When procedural asset encounters an exception, it will stop updating and replace the asset with an error proxy (e.g. error texture)
-- If you encounter this, please send logs, as exceptions mean there are problems that need to be fixed!
-- You will need to respawn the component for it to resume operation
-- This will also prevent log-spam on continually changing assets (reported by @Enverex)
- Added extra logging information to exceptions thrown from procedural assets
- Small CPU and memory optimizations when fetching messages from the cloud and making other API requests

[h2]Bugfixes:[/h2]
- Fixed connecting to Contacts+ sessions randomly not working due to certain token symbols not being encoded properly (reproted and logs provided by @Shifty | Quality Control Lead, @AshtonSparx, @Raith (CytraX))
- Fixed fetching of unread messages causing inefficient database queries, due to fetching sent messages as well, resulting in the initial fetch failing when cloud is under load, resulting in the users not receiving any messages (based on report and logs by @Ho'polis and @Wolfie)
- User status sessions are now null when the user is online, but Invisible, fixing exploit allowing to differentiate if user is really Offline or Invisible (reported by @Blaze)

2021.5.8.440 - Fixes for messages and invites not being delivered

Hello everyone! Just a small patch, I was investigating the messages not loading and wanted to push a (potential) fix as soon as possible, hopefully this helps! Please let me know how it goes and if you still experience issues!

This build is compatible with the last one!

[h2]Tweaks:[/h2]
- Merged Esperanto locale additions and tweaks by @Inferus
- Merged Russian locale additions by @Shadow Panther [RU/EN, UTC+3]
- Merged Czech locale additions by @rampa_3 (UTC +1, DST UTC +2)

[h2]Bugfixes:[/h2]
- Fixed Neos stacking multiple concurrent unread message requests, potentially resulting in messages not being delivered or missed (reported and logs provided by @Froppy, AjaxWolf and @Ho'polis)
- Improved rate limiting logic for fetching cloud messages, which should fix cases of messages not loading in some cases (reported by @Medra and related to report above)
- Added extra diagnostics for fetching contact messages to help diagnosing problems

2021.5.6.453 - Significant UI Aligned Camera Mode improvements and fixes

A whole bunch of additions and improvements for the UI Aligned Camera mode! Interacting with items and working with LogiX should now be much friendlier and easier to do (check #devlog channel for some examples) and some bugs have been fixed. Sorry that there's not much else apart from a few other tweaks and fixes, got some other things to deal with today, but hopefully this brings the new camera mode to it's proper potential!

Also this build is compatible with previous one, so you don't need to update right away, though it's recommended as soon as you can!

[previewyoutube][/previewyoutube]

[h2]New Features:[/h2]
- Aligning grabbed items in the UI Aligned Camera mode now aligns them exactly to the current camera plane (both position and rotation)
-- This makes it very easy to align nodes and other interfaces within a plane
- Interfaces and other elements get positioned on the current plane in the UI Aligned Camera mode when spawned/opened
- Deleting LogiX wires now works properly in UI Aligned Camera mode
- Grabbing objects in UI Aligned Camera mode now preserves their distance, rather than snapping it to the plane
- Context Menu now opens around the current cursor position in UI Aligned Camera mode

- Added ability to change Group names (requested by @ChrisWarner103 (DelVR), @ToMo (DelVR) and others in the past)
-- This can be done on a request to team member and shouldn't be done often
-- Note that the internal ID "G-GroupName" will remain unchanged

- Neos now properly imports texture wrap modes from Assimp when importing 3D models (based on feedback by @uyjulian)
-- Note that Assimp doesn't read the wrap modes correctly in all cases, so this won't fix all cases of them being incorrect

[h2]Tweaks:[/h2]
- Captured photos that aren't 360 now default the texture to Clamp mode, instead of Repeat (based on feedback by @Earthmark, @ProbablePrime and @H3BO3)
- Tweaked defaults of Context Menu and general UIX Z-write materials to fix more issues with Z-fighting, particularly in desktop mode
- MirrorTransform component is now categorized under Transform/Drivers (suggested by @Komdog)
- Imported rig bones colliders now have names in format " Collider" to avoid confusion (suggested by @ProbablePrime)
- When dragging LogiX wire in the UI Aligned Camera mode, the wire point is positioned exactly at the cursor now
- You can now zoom closer in UI Aligned Camera mode, making it easier to fill the screen with small pictures or video players (based on feedback by @Psychpsyo)

[h2]Bugfixes:[/h2]
- When focused UI is currently parented under the user (e.g. Context Menu or grabbed UI) it won't be focused on to avoid undesired behavior with camera flying off (@Shifty | Quality Control Lead, @Cyro, @Aegis_Wolf | Creative Director and others)
- Interaction origin and direction is now based on the actual view, rather than the laser origin on user's hand
-- This fixes UI's (Inspector's, Context Menus and others) not being interactable when the user is behind them, e.g. in UI Aligned Camera mode (reported by @Shifty | Quality Control Lead)
- Changing user's username now also updates the cached username in all submitted worlds

UI Aligned Camera, Cloud Variable improvements & headless role/access control

Hello and welcome to another of our weekly updates!

Last Friday we showcased the community creations from the month of April, we had quite a good crop of games and interactive worlds! From the incredibly polished narrative escape room experience Cabin Of The Seasons, to MurderX game from the Japanese community with its own game editor, Puyo Puyo recreation with community voice lines or Ghost Talk from the Creator Jam.

We also introduced a new UI Aligned camera mode for desktop, which makes it much easier to interact with interfaces in the worldspace and build LogiX by aligning everything in a single plane. The cloud variable system introduced last week has also received numerous improvements, including ability to use it for role and access control on headless and more components and permissions to increase its flexibility even further.

We added some smaller, but hopefully useful features too, like baking any static (non-changing) blendshapes into base mesh to help you optimize your avatars and other objects.

Neos also celebrates its 3rd year on Steam now! It's been an incredible ride and we have grown much both in terms of features and the community, which grew from small group of early supporters to a vibrant daily community with lots of creativity every day! If you'd like a bit of a throwback to the earliest days of Neos, check the videos below!



[h2]Community April Showcase - Cabin of The Seasons, MurderX, Puyo Puyo and more[/h2]
Every month, we dedicate the last Friday stream to showcasing all the amazing community creations in Neos and this one was no different. We had an incredible crop of interactive experiences and games built inside of Neos VR.

We went through a portion of The Cabin of The Seasons, an incredible narrative escape room experience by the Mystic Forge. This is one of the most polished quality experiences on our platform, which is no surprise given it's been in production for several months! We avoided going too far, because it's definitely something you should experience for yourself!

Other games we checked out include the MurderX game by the Japanese community, which is the most elaborate version of it so far. It even includes a custom level snap-map editor, which lets you easily make your own levels as you play and even watch the other players during gameplay as miniature holograms.

Other games include a Puyo Puyo recreation, with voicelines from many members of the community or a Ghost Talk from the Creator Jam. We did check a number of beautiful social worlds as well, so we definitely recommend giving this stream a watch if you missed it, because it shows some of the best of the creativity and ingenuity of our community!

[previewyoutube][/previewyoutube]

[h2]Neos celebrates 3rd year on Steam![/h2]
On May 4th 2018, we have officially released the first beta version of Neos on Steam. Since then, it has come quite a long way, both in the terms of features and polish and in terms of its community, growing from a few initial supporters to a vibrant daily community overflowing with creativity every day.

As a little throwback, here are some of the early videos showing what Neos was like back then:

[previewyoutube][/previewyoutube]
Bloopers form the original trailer in 2018, featuring the now infamous "Jello IK"

[previewyoutube][/previewyoutube]
Some of the sandbox tinkering, working on one of the earliest drones

[h2]UI Aligned Camera[/h2]
To make interacting with in-world UI’s and building with LogiX easier in the new desktop mode, we have introduced another camera mode in addition to 1st and 3rd person: UI Aligned Camera mode.

This can be activated by simply holding the Ctrl key and Left Mouse clicking on a desired UI. This will automatically align the view with the UI and unlock the mouse cursor, making it easy to interact as with traditional desktop UI.

[previewyoutube][/previewyoutube]

Hold Ctrl and the Right Mouse Button you can also pan the view around, or use Ctrl and the Scroll Wheel to adjust the distance/zoom. Left clicking any UI while in this mode will also realign the camera to it.

You can exit this mode by holding Ctrl and Left Clicking into an empty space, or by pressing the key to switch between first and third person (F5 at the time of writing, but this will change in the future).

When working with LogiX, all of the spawned nodes will be placed in the same plane, making it much easier to build and edit LogiX nodes in this mode. There’s some more things coming to this mode as well that will make it even easier to use.

We hope that this new mode helps expand Neos’ Desktop editing capabilities and make it much easier to use for both new and existing users.

[h2]Expanded Cloud Variables abilities[/h2]
Last week we introduced the new cloud variable system for persistence across different instances of objects, worlds and sessions. To make the system even more powerful and flexible, we have introduced several new features last week.

[h3]Controlling access to headless sessions with cloud variables[/h3]
Notably, you can now use cloud variables to control access to your headless sessions. By defining a cloud variable that only you can write to, you can assign default roles and grant access to your session. This way you don’t need to manually add each person to the configuration list on your headless, but only the cloud variable path.

To configure this, add roleCloudVariable configuration option and point it to a cloud variable of type string. It’s recommended to use definition_owner_only permission for write. Then write a value for each user with the name of the role you want assigned to them when they join. If you don’t assign any value to the user, or set it back to an empty string, the normal Role assignment will be used.

You can also configure allowUserCloudVariable setting, pointed to a cloud variable of type bool. Setting value True for an user will allow that user to always join the session, regardless of the Max Users limit or if the session is Private (although they will need to obtain a join link).

Once we expose API for managing cloud variables, these settings will allow you to automate access management, which will be useful for events and similar venues.

[h3]New permission levels for more flexibility[/h3]
We have added several new permission levels as well, including ones that allow only the definition owner to ever have a value (meaning there’s only one instance of the variable, rather than each user having their own) or only the contacts of the definition owner.

These permission levels are usable by User defined variables as well, which previously couldn’t use the tagging pattern workflow for security reasons. With these new permission levels they have gained more capabilities as a result, bringing them closer to Group variables!

Due to the ease of creation of user accounts, we still need to keep them a bit more limited, but we think with those permissions we found a good compromise between usability and ease of abuse of the system.

[h3]New components, types, tweaks and bugfixes[/h3]
To make interacting with the system easier, we added some more components as well, like ActiveUserCloudVariable which automatically provides the value based on the user under whose hierarchy the component is located. This makes it easy to setup avatars, tools and items that automatically link to the user currently wearing/holding them.

We improved type support as well, most notably adding support for Enum datatypes on Neos’ end (the cloud variable needs to be of type string) and fixed numerous issues with certain data types not validating properly.

Along with numerous other additions, tweaks and bugfixes, the cloud variable system should now be a fair bit more robust than with its initial release and keep growing even more so in the future.

[h2]Baking static blendshapes into the mesh[/h2]
Another of the notable additions this week has been a new processing option on SkinnedMeshRenderer, which lets you automatically bake any non-driven blendshapes into the base mesh.

Using this, you can optimize your avatar and other meshes that contain dozens of body shape customization blendshapes, by completely removing them from the mesh and making them part of the geometry itself.

This way you not only save on load times and memory usage with your meshes, but you can also employ other optimizations as well, like splitting the mesh between blendshape affected parts and ones that are not, which normally wouldn’t work due to the entire body being affected by blendshapes.

[previewyoutube][/previewyoutube]

[h2]Community Highlights[/h2]
Hello Neos Community, I hope your week has been a blast, here’s some of the cool things the community has released this week!

[h3]Flight VTOL Platform/Prefab by H3B03[/h3]
Long awaited by creators in the community, H3B03’s flight platform has finally been released! A premiere physics based VTOL flight platform where the speed is felt as you fly through maps, or bob and wave though mountains. By virtue of how he set this up, you can now set up all types of physicals of your choice! From Xwings, to Dropshops, to Fighter Planes! If you ever wanted to have a proper flying experience in VR, this is definitely a contender! Thanks H3B03 for the effort! I can’t wait for all the custom ships to come out!

[previewyoutube][/previewyoutube]

[h3]CytraX Pool by CytraX[/h3]
Filled with water and splendor, a nice pool map made by the CytraX Group! Ever just feel a bit stressed out from the activities in Neos? Just wanna kick back and swim with some friends. This map fits that feeling perfectly! The Dome also has spacial audio and audio reactive lights to set the mood as you swim. Thanks CytraX Group!



[h3]MEROOM by epiceaston197[/h3]
A popular map from original creator MERU, a recreation is made in Neos by Epiceaston197 and Jellyosaurus. A nice cozy little bedroom filled with SO many mirrors. So if you're coming over from other platforms and want to feel like at your home away from home, hopefully this helps! Thanks guys for the map!



[h3]Music Lab by Neos Music Group[/h3]
Starting out in the world, you see the music in the background slowly fall and lift as the curtain rises and you see the presentation in front of you. We’ve had music instruments in Neos for quite some time, but this map brings it’s presentation and ease of use for folks to just kick back and jam! There is even a handy tutorial inside the map to give you an idea on how to use them! Much thanks to Cid for your work on this map!



[h3]The Nuke by Staccato[/h3]
Ever just wanted to visit a club and walk forward in any direction and end up in the same spot? Welcome to the Nuke! A Dance club made with Gravity in mind as you can have a different orientation as you run around the club! Surrounded by speakers, you can get lost in the energy of the music as you are at the center of the party always! It’s hard to put this place into words so definitely take a chance to check it out! Thanks Staccato!



-------------------------------------------------------------

Anyway that's all for this week! Thank you very much for reading and for being part of this project! Without you we wouldn't be able to continually grow and improve! We'll see you next week with more goodies and updates.

2021.5.5.159 - Cloud variable & UI camera additions, Contacts+ & security fixes

Sorry for a small build, there are a few important fixes that I don't want delayed by work on other features. Notably the Contacts+ mode should now finally (really finally_FINISHED_v2_DONE) work properly again and there's an important security fix with the permission system, so I recommend to update ASAP!

A few tweaks and improvements to the UI aligned camera and cloud variables, there's a lot more coming to it, but I didn't want it to hold up this build.

[h2]New Features:[/h2]
- Running /setUserVarDefaultValue or /setGroupVarDefaultValue without value provided will reset it back to default (requested by @Dante)

[h2]Tweaks:[/h2]
- LogiX Impulse inputs and outputs now use same positioning logic as other nodes (reported @Shifty | Quality Control Lead)
- LogiX Node Selection window now uses same positioning logic as other UI panels
- Activating UI Aligned Camera now supresses locomotion inputs
- UI Aligned Camera can now be also activated on any SnapPlane objects (e.g. imported or captured photos), general Neos UI panels and Video Players

- Merged Korean locale additions by @MirPASEC
- Merged Japanese locale additions and tweaks by @Aesc

[h2]Bugfixes:[/h2]
- Fixed UV Offset not working on the backside of QuadMesh when DualSided is enabled (reported by @Ukilop and @3x1t_5tyl3)
- Fixed issue with handling one-time contacts check tokens on the Cloud API, which should fix the last remaining issue with Contacts+ not working correctly (reported by @Readun)
- Fixed issue with permission system initialization (reported by @ShifterX2, @epicEaston197 and @Enverex)