1. Neos VR
  2. News
  3. 2020.7.24.446 - Perspective 360 projection, updated LogiX visuals, world ban...

2020.7.24.446 - Perspective 360 projection, updated LogiX visuals, world ban...

Currently I'm focusing on the new unified Worlds UI/Facet (combining world switcher, world browser and session joiner into one interface). It's still being designed, but here are some things that have accumulated along the way, like new Perspective projection for 360 shader, GridLayout auto-fitting, UIX bugfixes and more!

Visibility of lasers has also been tweaked so they show less for other users and to prevent cases where they briefly flicker when moving a hand around rapidly.

Also includes new LogiX wire visuals by @Coffee | Programmer! Other changes are still being worked on before they're ready to be merged to the main build.

Now there's also ability to save objects outside of hierarchy together with the object! This lets you make objects that unparent some important pieces during use, but can be safely saved, without losing those pieces.

Based on urgent requests, also added ability to ban people from specific worlds, without need for them to join - you can search for them in the Friend list. Also includes the global ban from all your sessions too.
[h2]New Features:[/h2]
- Added "Perspective" projection mode to Projection 360 material, which renders a perspective projected view of the image to the UV coordinates of the mesh it's on
-- This works essentially like a traditional camera view for 360 photos in screen applications
-- You can use The new PerspectiveFieldOfView and PerspectiveAngleOffset fields to control the projection properties
- Added "ExternalSlotSaver" (under Utility), which will ensure that a referenced slot is saved as a child of the slot this component is on even if it's outside of the saved hierarchy
-- This can be used for any items that parent some crucial elements outside of themselves during use, making sure those elements are saved with the item
-- It allows overriding the local position, rotation, scale and active state of the item when it's saved
-- The hiearchy change is only applied during the save, after the save is finished the target slot remains where it was originally before save
-- It also ignores the "PersistentSelf" by default, making sure the target slot is saved despite being non-persistent, but allowing it to be set as such so it's not saved as part of other objects it's parented under
- Added "ExpandWidthToFit" to GridLayout, which will auto-expand the size of the cells to fill remainder of the free space
-- This can be used so the grid perfectly fits the width of the container, even if the size isn't a multiple of the CellSize and Spacing
-- You can also use "PreserveAspectOnExpand" so the height of the cell is scaled by the same ratio as the width, preserving the aspect ratio (default on)
- Added basic Viveport profile integration (in preparation for @jasonmo's Metamovie project)
- Added "Notify Modified" node under "Interaction", which allows sending modification events up in the hierarchy for components
-- This can be used to trigger the dash workspace to save (requested by @Toxic_Cookie and @Alex from Alaska)
- Added ability to ban any registered user from all sessions through the Friends list (based on feedback by @GearBell, @Ryuvi, @Zane and many others)
-- They don't need to be added as friend, simply search for them
-- This allows banning people without having to wait for them to join the session
- Added ability to ban any registered user from a specific world (requested by @GearBell, @Ryuvi and @Zane)
-- This is also done through the friends list, by finding the user and selecting them, the buttons appear in the upper bar
-- It will ban the user specifically from the world the user is in.
-- The world must be saved for this option to be available.
-- This is persistent for the given user and saved as part of the profile in the cloud, but doesn't transfer to other hosts of that world
-- User will still be able to join other worlds by the same host
- Added "Damping" property to CharacterController, which controls what percetange of player's velocity is removed over a unit of time
-- This can be used to easily setup physical fly (set damping to 1.0 and AirForce to a high value) (requested by @Nexulan, @Rue Shejn | Artist 3D, @Shifty | Quality Control Lead and others)
- Added "SearchFromEnd" to IndexOfString, which will search the string backwards for a match (requested by @Alex from Alaska)
- Pressing F9 on keyboard will log a snapshot of the background workers to the log file
-- Added to help diagnose some resource starving issues (reported by @Rukio, @ProbablePrime and @H3BO3)
-- If you experience UI freezing, press the F9 key repeatedly (about twice a second is enough) for about 10-20 seconds and then send the logs

[h2]Tweaks:[/h2]
- Revamped Logix wire visuals to indicate flow direction (implemented by @Coffee | Programmer)
-- This also changes the texture for impulse wires to be visually distinct from other wires
- Changed Impulse connector texture to be visually distinct to other inputs on Logix nodes (implemented by @Coffee | Programmer)
- Tweaked interaction laser visibility behavior for other users to prevent it from being distracting in some cases (based on feedback by @GearBell, @Rukio, @Shifty | Quality Control Lead, @Turk, @H3BO3 and others)
-- For grabbing it's now only shown when holding the object
-- For interaction, there's a small grace period before it shows, to prevent it from flashing briefly when it happens to hover over an item
- The easter egg exit messages now show who submitted the currently shown message
- Added memory pooling to loading/saving events
- Renamed "Sequence" to "Impulses" on ImpulseMultiplexer
- Tweaked some join error messages for better clarity
- Optimized Grid procedural mesh generation
- Upgraded to Unity 2019.4.5f1 (from 2019.4.4f1)

[h2]Bugfixes:[/h2]
- PerformanceMetrics component will automatically link local user when it's in the Userspace
-- This fixes the FPS facet (and any others that use this) randomly breaking when local database is cleared or the link to the user is somehow broken (reported by @Shifty | Quality Control Lead and @Turk)
- Fixed equipped item repositioning triggering for other users when toggled on and off (reported by @Conduit)
- Fixed non-functional B button on the Cosmos Controllers (reported by @I wont shut up about reflections)
- Removed useless outputs (analog Grip, Grip Touch, AB/XY Touch and Menu Touch) from the Cosmos Controllers (reported by @I wont shut up about reflections)
- Fixed keyboards being favoritable from public folders (with exception of owned by the Neos group) - you need to save a copy to your own inventory - only favorite keyboards you trust! (based on feedback by @Alex from Alaska)
- Added extra logging information for cases when local elements are attempted to be encoded, resulting in a world crash (based on report by @Enverex)
- Potentially fixed UIX canvas randomly breaking for certain users due to corrupting awaitable task state (reported by @KierDran)
- Fixed GridLayout not recalculating the layout when only the width of the parent container changes\
- Fixed default filename when exporting a photo defaulting to "FrooxEngine.PhotoMetadata" instead of the actual photo label (reported by @Shifty | Quality Control Lead)
- Fixed number of vertices for GridMesh being swapped between flat shaded and smooth shaded variant
-- This fixes the GridMesh breaking when flat shading is turned on reported by @A Monsoon of Babies)
-- This also fixes lots of unused invisible vertices being generated for smooth shaded version