In this update7
Full notes
Full ChilloutVR update
Read the full published notes in a cleaner layout. The original post stays linked below.
What changed
- Gameplay
- UI and audio
- Events
- Store
- Performance
- Maps
ChilloutVR changes
We have just released a Stable update to ChilloutVR that includes various fixes and improvements, including but not limited to:
UI / Keyboard Rework
New home menu with more features
Activity feed to see what your friends are up to
New Keyboard that is independent from the main menu
Groups
Create a Join groups with common interests
Management and permissions options for Group owners
New Public and Private instance types for Group members and friends
Portal Rework
New circular Portals
Fancy closing animation
Support for panaramic images with depth for more immersion
Native Face Tracking Rework
Eye Tracking and Mouth Tracking are now separate modules
Smoother with support for viseme blending
OSC & OSC Query Support
Send and Receive avatar customization and game inputs from external applications
Other cool stuff waow
Relative Syncing
In-game Content Sharing
User Notes
Unity UI Input rework
and so much more that will not fit here
this change log is too big
Full Changelog:
Added a 10m distance limit to the Video Player UI
Added a Menu & HUD notification when World Anchored Menu is temporarily forced to Play-Space Anchored due to distance
Added an Activity Feed
Shows activities, such as instance changes and online status, for your friends.
Added applyMinimalHoldingTorque to CVRWheelController
Added a strict mode bool to gravity zone (Malthbern)
Enable this to use a stricter/smaller collision shape for player gravity. Useful for large, smooth surface transitions.
Added a strict mode proxy collider (Malthbern)
Added a toggle to switch between player-like and plane-like drone mode rotation. You can find this toggle in the Drone section of camera settings.
Added basic Badge functionality
You can set featured badge in-game
You can now view other users badges as well as your own
Added basic in-game Sharing functionality
You can share your uploaded content directly to those in the same instance and un-share from yourself or others
Added button to the in-game Support page to open the Logs folder in Windows Explorer
Added CancelAllDelays, CancelDelayAtIndex(actionIndex), CustomTrigger(actionIndex) methods on CVRInteractable to the whitelist
Added clickable featured Group and Avatar on all pages showing the user
Added CVRGameEventSystem.World.OnReady event
This will fire after world filtering & setup
Added CVRPickupObject.ForcePickup() method for Unity Events
Added default disabled toggle to keyboard settings for UI grab component
Added default Dismiss button to Quick Menu messages instead of decline
Added display Group detail page as a CVRInteractable operation
Requires CCK 4.0 - to be released at a later date
Added double-click to re-open Search Keyboard
Added file drag drop handler for selecting files to be used for images and such
Added font shrink to most menus, names shouldn't escape bounds now
Added Groups
The following are current functional:
Creation
Joining
Leaving
Management (name, image, description, permissions, members, transfer, deletion)
The following new Instance Types are now available:
Public (Groups)
Friends of Members
Members Only
Added Friends of Group Members instance type
Added fitting icons for everything in Groups
Added Group invite and invite request functionality
Hooked up Quick Menu Groups button
Added Home Instance Privacy and Home Instance Region to General settings
Added HUD shard timeout
Added IsFriend local core parameter
This is true on the remote avatar animator if they are on your friends list. This is always false for the currently worn avatar.
Added logs to the voice connection flow. This means there will be extra logging and even some errors (they are safe to ignore)
If you experience the issue of joining an issue and not being able to hear and not be heard, please submit the logs via email. We're trying to hunt down this but, but we can't really reproduce
Added LTCGI support to Worlds
Requires CCK 4.0 - to be released at a later date
Exposed SetGlobalState and SetVideoTexture method calls on CVRLTCGIAdapter (new component in CCK)
Documentation: https://docs.abinteractive.net/cck/components/ltcgi-adapter/
Added Mature Content toggle to Discover
Added missing licenses to LicenseManager
Added My Profile with detail view
Added new menu parameter streams:
IsAnyMenuOpen
IsMainMenuOpen
IsQuickMenuOpen
Added onSnapped and onReleased events to CVRSnappingPoint
Added OSC
Added avatar endpoint to send/receive avatar parameters
Added avatar endpoint to send/receive avatar changes
Added input endpoint to send game inputs
Added option to enable/disable OSC in-game on Settings -> Implementation -> OSC, OSC is disabled by default
Added launch argument to override the OSC listener port, sender ip/host, and sender port
Expose helper functions and events to allow easily tapping into for new OSC Modules
Added OSC Query
Added launch argument to override CVR's service ID, this should allow it to function with OSC applications not compatible with CVR
Added parameter stream types for GameFocused and TimeSinceGameUnfocused
Added Quick Menu message filtering
Added relative sync for seats & movement parents
Added relative timestamp to activity feed entries
Added --safe-mode launch argument
This will load you into the default Kyle Avatar and Hub World
The Steam Launch Options dialog will display this on initial launch
Added setting to disable triggering the AFK parameter when in VR using the Headset Sensor
Added slight fade time to selection highlight
Added Steam branch to Main and Quick Menu info blocks
Added the AFK core parameter. You can now add a bool parameter named AFK, and the game will set it accordingly:
In VR it will be active while you have the headset removed from your head
In Desktop you can toggle on/off by pressing the END key. This will also work in VR if you press END on your keyboard.
Added TimeSinceAFK to the parameter stream
Requires CCK 4.0 - to be released at a later date
Added TooltipHandler and ScrollHandler to Quick Menu, removed built in scroll handler and adjusted sliders to not scroll
Added tooltips to the menu
Now present in many parts of the Quick Menu and Main Menu
All Settings now have tooltips that explain their purpose
Thanks to DragonSkyRunner for providing descriptions for nearly all of those that we used as the starting point
Added User Notes to a new Info tab in the user detail view
Added VelocityX, VelocityY, and VelocityZ local core parameters for avatars
Added visualization to Mic Volume and Sensitivity sliders
Adjusted CacheManager to skip loaded asset bundles when clearing the cache
This is now needed since we're steaming the asset bundle files instead of copying them to memory
Adjusted content-name position and height across all list views, shouldn't cut off the bottom of letters now
Adjusted CVRBlitterController to not iterate all CVRBlitters needlessly when the rendering camera is not the main camera
Adjusted grip threshold for Quick Menu repositioning
Adjusted held pickups to teleport or move with the player on movement parents
Adjusted IKTrackingSmoothing setting default to 2 from the evil 5
Adjusted menus to not be forced closed on loading a new world
Adjusted Player Click handling to not occur when in a prop selection mode
Adjusted Quick Menu repositioning to not allow Object Push/Pull
Adjusted Quick Menu repositioning to require holding down Grip on the opposite controller while hovering the menu
Adjusted sizes of buttons and their text
Adjusted skid steering logic
Adjusted steam rich presence to mirror privacy options
Adjusted the Avatar & Spawnable Pickup Marker UIs to work with this new method of interaction
Adjusted the Portable Camera to require holding it to take pictures on interact again
Adjusted the Video Player UI to work with this new method of interaction
Fixed the header button not being interactable
Fixed the background buffer slider eating interactions from the progress slider
Fixed the progress slider value changed event not working properly
Fixed the progress slider not being interactable in its unfilled area
Removed the now unused SliderDragHelper script
Removed many box colliders from the UI elements
Adjusted UI Scale slider to also be VR-aware & work in VR
"VR-aware" means the setting is saved differently between Desktop & VR
The UI Scale slider maximum was also adjusted to 125%
Changed font of UI to use NotoSans, should support basically all symbol languages properly now
Changed how main tab view hiding works to reduce the amount of visible elements at once
Changed how Quick Menu and Main Menu initialize, things should generally be a bit more consistent during startup and with reloads
Changed seeking logic for LibVLC (Malthbern)
Changed the Unity Company name from Alpha Blend Interactive to ChilloutVR
The game will automatically migrate the AppData/LocalLow folder to the new company name at first launch
Changed the Video Player shader to output alpha = 1
This doesn't change anything in game. However it allows for shaders that use the alpha channel to actually display the Video Player render texture
Changes & Additions to the Game Event System
Actually hooked up Spawnable.OnDownloadQueued
Added Spawnable.OnPropSpawned & Spawnable.OnPropDestroyed, which provide the PropData instead of Spawnable
The original Spawnable.OnInstantiated & Spawnable.OnDestroy events have been marked obsolete
Destroyed the obsolete OnPlayerEntityCreated & OnPlayerEntityRecycled events in CVRPlayerManager
Destroyed the obsolete Player.OnJoin & Player.OnLeave events, as they've been replaced with Player.OnJoinEntity & Player.OnLeaveEntity
Cleaned up many Settings categories
Cleaned up unneeded Cohtml components
Cleaned up unneeded UI code that was replaced by newer stuff
Completely rebuilt the Keyboard
Now support multi-line and normal single line input
In single line mode, up and down arrows act as history
Line count and character count
Placeholder text
Keys no longer wiggle around when switching from lower to upper case
Arrow keys to navigate the text
Native copy/paste
Keyboard now exists on it's own view, so you can move it around your playspace
Collapse mode, you can configure this to be automatic on desktop
In-keyboard settings window
Settings can be configured from a window within the keyboard
Completely reworked Discord Rich Presence
Implemented rich invites/ask to join features
Added privacy options to Implementations/Rich Presence of main settings
Cleaned up and merged old rich presence into 1 main class
Uses world image when details visible
Completely reworked Messages
Message system is now handled entirely in managed code, handed to Cohtml for display and interaction only
Quick Menu Notification panel completely redone and restyled
Quick Menu Notification Panel now shows all messages that are allowed to appear there, added scrolling and total message count
Implemented additional categories for future info/alert messages or mod dev usage
Messages now have defined title and main body text blocks
Messages can now have any number of dynamically created buttons
Enabled ZETTAI_USE_UNSAFE in the Dynamic Bones job for free performance
Exposed Terrain to Unity Events
Fix CVRLeg logic to account for local rotations better
Fixed an error with TerrainFoliageFix.CleanupAllKnownCameras when leaving a 2019 bundle world
Fixed an issue where clicking Current Instance would open the wrong World details page if you had changed your home world while at home
This also addresses clicking Current Instance sometimes doing nothing
Fixed an issue where dropped pickups would not un-listen to Teleport and MovementParentMove events
Fixed an issue where interactables would not react to variable buffer changes
Fixed an issue where OnPlayerTriggerEnter would fire 2x if moving fast enough
Fixed an issue where running multiple clients out of the same installation folder would native crash the second client to open the Main Menu
Fixed an issue where the UI Scale setting did not apply its saved value on startup
Fixed an issue with how sprint mode Always was handled in the Gamepad & VR input modules
Sprint will now only be applied when the specific input module is driving movement, instead of always enforcing it
This addresses a case where the Gamepad input module forced sprint when enabled in settings & using KBM
Fixed Avatar IsEmotePlaying state persists through avatar switches
Fixed Avatar switch and prop spawn button being falsefully disabled in rare cases
Fixed being able to interact on Video Player playlist entries that are outside the canvas bounds
Fixed being able to spam the go home button
Fixed being able to use Desktop Zoom while any menu was open
Fixed broken Freeze controller on disconnect IK miscellaneous settings option. New behaviour:
Setting on and controller disconnected - corresponding hand/arm is frozen in last valid playspace location.
Setting off and controller disconnected - corresponding hand/arm follows avatar's animator's animation.
Fixed button hover sound being inconsistent in the Main Menu
Fixed Collision Placement setting not working when picking Hands and HandAndFingers options for Magica 2 cloth colliders
Fixed crouch and prone states handling of player with the active drone mode
Desktop:
Entering in drone mode crouch and prone states are "locked"
In drone mode player can't change crouch and prone with regular input
Increasing drone speed (with shift) doesn't change state to standing no more
VR:
Entering in drone mode in VR with half-body setup no longer switches avatar animation to standing state when the player actually crouches or goes prone in their own playspace
Fixed CVRInteractable.OnCron job not being removed on destruction
Fixed CVRPhysicsInfluencer applyForces not being driven by remote synced state
Fixed distance check for avatar distance hider being done prior to actually moving the player
Fixed DynamicBones being enabled when having Bone Dynamics disabled but Cloth Dynamics enabled
Fixed error spam if remote player is destroyed and still receiving AAS
Fixed eye limits for up/down being inverted
Fixed eyes only using the LeftEye limits when using eye movement Muscle setup
Fixed FindObjectOfType being 2x per wheel for RCC 🙂
Fixed fluid volumes not respecting the collision matrix
Fixed Friend Status not instantly updating
Fixed gravity zones caching the entering colliders forever
Fixed having framesNeededToUpdate different than 0 breaking mirrors
Fixed HUD "Only Updates" mode showing HUD for mic amplitude changes
Fixed i+INSTANCEID shortcut for instance details not working in Main Menu Search
Fixed IK scaling occurring before the playspace scale updated
Fixed index pointer generation not checking entire hand for existing pointer
Fixed in-world input fields being interacted with when disabled
Fixed in-world input fields read-only state not being respected
Fixed Mature Content toggle in Search
Fixed "Menu Too Far Away" event occurring when the menu is closed
Fixed most disabled buttons still showing hovers and having colour
Fixed multiple spots where mic amplitude is used before volume is applied, HUD and threshold now use amplitude post volume adjustment
Fixed not being able to go home from home after changing your home
Fixed old [FPR] tag not working with new Avatar Clone
Fixed phantom friend requests that when occurred could not be cleared by hitting "Accept"
Fixed Quick Menu repositioning able to be triggered while closed
Fixed render texture instancing already instanced render textures
Fixed shaders in Non-Spi worlds not being able to get the VR Left/Right eye positions correctly
This should fix reflections and parallax effects in these older worlds appearing flat while the MultiPassHack was active
Fixed some vegetation in worlds culling incorrectly in the Portable & Path Cameras
Fixed sub-interactables & pickups on objects not highlighting individually
The highlight effect will now crawl the hierarchy and stop at any object that will highlight on its own
Fixed the API connection randomly stopping
This would cause the activity feed, invites, invite requests, friend requests, etc, stop working until a restart
Fixed the following leaking textures:
Nameplates
Portal images
Video Player playlist thumbnails
Video Player playlist video thumbnails
Fixed the mouse being locked in Desktop causing some Event System drag interactions to be scuffed & jumpy
Fixed the Portable Camera Settings not being visible while scaled small
Fixed the stutter that occurs when creating a new instance
Fixed the Video Player playlist scroll rect constraint
You can now finally scroll past 8 playlist entries!
Fixed the window being out of focus preventing Event System pointer events
Fixed velocity being nuked when exiting flight
Fixed View & Voice Points being targetable via Avatar Animator
Fixed warnings when joining the login room about negative scale colliders
Fixed World Anchored Menu rotation when on Movement Parents or Teleporting
Further adjustments to World event filtering
Implemented HeadsetOnHead detection for OpenXR (only available if the used runtime supports it)
Implemented Zettai's asset bundle stream decryption - thank you Zettai
Improved chilloutvr:// links to no longer open the console for a split second
Improved DeepLink so it doesn't require Administrator Privileges and will be configured automatically without annoying prompts
Improved the drone camera rotation to be similar to how the player camera is handled
Pros: No absurd camera roll when rotating up/down/left/right.
Cons: Up/down is limited in a similar way as player's camera, but limit can be reset by changing actual drone roll.
Improved the Freeze controller on disconnect setting so it is able to toggle on/off without the need of reloading/reconnecting the controllers
Improved the reliability of jumping to get out of fluid zones when pushing against their edges
Improved the reliability of the parameter stream HeadsetOnHead
Increase default menu opacity setting to 90%, looking into ways to increase readability on messy backgrounds
Killed the Offline starting instance
You will now default to an Online OwnerMustInvite instance when joining your Home world
Killed the PlayerMaterialParser CCK Component in favor of Shader Globals:
_CVR_PlayerRootPositions
The w component is the avatar height in meters
_CVR_PlayerHipPositions
_CVR_PlayerHeadPositions
_CVR_PlayerLeftHandPositions
The w component is left hand gesture value
_CVR_PlayerRightHandPositions
The w component is right hand gesture value
_CVR_PlayerChestPositions
_CVR_PlayerLeftFootPositions
_CVR_PlayerRightFootPositions
These are all Vector4 arrays capped at 255. You can get the player count with CVRGlobalParams1.y if needed.
Made HoloPort setting be independent from VR and Desktop (if you set it on desktop will apply to desktop, if you set it in VR it will apply to VR)
This will be improved further with UI updates (the settings will be touched), but for now it should address the issue of not being able to have different settings for each
Made instance types use pretty names instead of enum names
Made Quick Menu save new avatar profile work
Made trying to join a instance that you have been kicked from too recently sent you to your home instance
Made ViewManager aware of Main Menu tab changes
Migrated Quick Menu and Main Menu to CVRUIManagerBaseInput to simplify some initialization
Minor adjustments to most parts of the Main Menu
Minor clean up and style adjustments to basically everything else
Hexagonification will continue, nobody can stop me
Trust me it's totally minor... haha....
Mitigated drag events not properly firing when moving in world space, as Unity only checks for screen space position changes
Moved initial Main Menu settings update to markMenuAsReady instead of relying on BindCall from Cohtml side
Moved Logout to Exit menu
Moved status text of Deep Link Status to line below
Potentially made rotating in 0G on Desktop more responsive & unbound from FPS
Prevent negative & zero scaling of the local player VR rig
Probably way more, it's been 2 months of touching things alot of stuff was fiddled!
Redid FileDragDropHandler to hopefully not crash things
Re-implemented the Telepathic Grab (Exterrata)
If you hold trigger for a while it now times out. This should prevent unwanted telepathic grabs
The objects should now fly towards you in a nicer way, doing a nicer arc
Object should now track your hand. They will go to where your hand currently is instead of where your hand was when triggered
Physics objects will now respect physics properly, like collisions
Removed deprecated tags from content filter
Removed fade duration from the highlight profile as it is broken and results is extremely bright colors
Removed IsFriend checks on UserDetail view as it's unneeded
Removed several things from the World Filter which are not relevant or unsupported
This included avatar specific components, ones which were deprecated, and ones which never were even implemented
Removed the CVRSpawnable requirement for CVRCameraHelper to work, finally allowing it to function in Worlds without hassle
removed the GraphicsScreenSpaceReflections setting
Unsupported in forward rendering 🙂
Removed the Queue tab from the Video Player UI due to it not being implemented
Remove onclick from user profile Avatar/Group button if it's a zeroed GUID
Remove VR Switch Setting and always have it enabled
Renamed the Dynamics Removables setting names for props and avatar:
Dynamic Bones -> Bone Dynamics
Mesh Cloth -> Cloth Dynamics
Dynamic Bone Collider -> Dynamics Colliders
Renamed the IK Setting from Save Calibration to Save Calibration per Avatar to better indicate what it does
Rename panosphere visual mod to capture panoramic
Reworked panoramic capture:
Is now a mono capture (as stereo capture is flawed)
Added option to capture with depth information in portable camera settings (captures same output as CCK for Portal images)
Reduced hitch greatly when capturing
Capturing a panoramic no longer also captures the main viewport as a screenshot
Reworked Create Instance panel to better handle Group instances
Reworked Home Tab entirely
Reworked how content metadata & tags are cached and compared against when queueing content downloads
Consolidated AvatarTags & PropTags into one definition which can chew through the different formats from API & GS
Reduced allocation when handling content tags received from GS content updates
Reworked Portals (major help from Exterrata)
Can now be dropped mid-air
Can now be placed in offline instances
Are distance-hidden when far away
Only instantiate & load once within range
Panorama texture creation adjusted to reduce hitch
Panorama forward direction now aligns with initial drop orientation of the Portal
This change now means that you can expect a user dropping a Portal to have a consistent initial view within that Portal, giving you much more control of the presentation of your world through the Portal panorama
Replaced the OG grounded Portal with a floating spherical one
This new Portal better suites the gravity & flight mechanics we have due to there being no base
The 0G Portal will still spawn in worlds using CVRPortalMarker and will benifit from all the listed changes above
Additionally the animations for the 0G Portal have been spruced up
Stereo panoramas deprecated in favor of mono with a better shader:
Stereo only worked correctly when viewed from the original forward direction and was fundamentally flawed
Many stereo panoramas had inconsistent left/right images due to post-processing in-scene
The new Portal rendering will only use the existing left eye capture of the panorama texture and do a parallax effect to give depth
This is a major improvement over the old rendering which relied entirely on the flawed stereo image to appear 3D
Remaining lifetime of dropped user Portals is now displayed above the Portal
The target instance region and Portal dropper are now displayed above the Portal
Added Drop Portal button to the User Details page
The Portal Dropped notification now no longer applies to only your own dropped Portals:
By default, you will get a HUD notification if you or a friend drops a Portal in the instance
You can also configure this notification to apply to Portals dropped by anyone or disable it entirely
The rotation of your dropped Portal is now synced over the network
Portal panoramas now use the image cache
You are now prompted to enter a Portal once nearby via input press
When walking up to a World Portal accepting this prompt will create a new instance & join it
Portals now require the menu to be open or to have the mouse unlocked to open their details
This is to both make them consistent with how you select Players & Props and less likely to accidentally click
Reworked scrolling in the menus a bit, it now requires a 50ms hold and a 50 pixel movement before scrolling is initiated
This will also now prevent button clicks from firing once a scroll has begun
These values may get more tuning as we get feedback, but it's already SO MUCH BETTER
Addressed some other elements that got funky from this change
Reworked the native face tracking implementation
Eye tracking and mouth tracking have separated modules for processing
All Tobii and Vive settings are now merged into single settings block where player can select specific module to get face tracking data from,
CVRFaceTracking supports old SRanipal legacy shapes (37) and Unified expressions (88),
Unified expressions are packed into 37 networked floats without touching last byte of float, making sign and exponent not produce NaNs or Infs,
OSC modules expect parameters of VRCFaceTracking name scheme
OSC nodes for expected parameters are created only if don't exist in avatar's animator
Fixed SRanipal face tracking looking choppy, it should now be smooth
OSC module for Face/Eye tracking now only requires the parameter name to match
Example / is trimmed to for better compatibility with existing apps
Added lipsync while face tracking toggle in the settings
Reworked the TerrainFoliageFix to only run when the loaded World Asset Bundle Unity Version differs from the Client Unity Version
Reworked Unity UI interactions
IMPORTANT: This may be a breaking change for some existing content. Please take a look!
Now driven through the Unity Event System
This addresses several issues:
You no longer need to shove colliders on all Unity UI elements to be able to raycast to them
You no longer will raycast to Unity UI through the Main/Quick Menus or other UI
Creating Unity UI that is not raycastable, (purely for visual, like a HUD), no longer requires you to crawl & disable the generated box colliders or switch layers at runtime
You can now limit the interaction distance for your Unity UI via the CVRCanvasWrapper component
Most importantly, there should no longer be a disconnect with what works in Unity and what works in ChilloutVR in reguards to Unity UI
Several setups only work in ChilloutVR and not in Unity/PlayMode due to the old method of how Unity UI interaction was handled, and vice-versa
Separated the left and right blinking handling
Requires CCK 4.0 - to be released at a later date
This allows the new separated blend shape mode in the CCK work
The Main Menu & Quick Menu will now remain in place while they are playing their closing animation
The on-screen keyboard is now displayed when clicking on in-world input fields on Desktop
Unity UI drag threshold is now scaled with playspace scale
Updated Magica Cloth 2 to v2.16.1
Updated the Discord invite URL in the Support page of the Main Menu
Whitelisted RectMask2D for Spawnables
Notes
Group Management is only currently available in-game with Hub features to follow soon
Some features require CCK 4, which will be released sometime in the near feature
Previews are available in our Discord in the
A big thanks to our External Contributors:
Exterrata
Malthbern
Also contributions from the community:
DragonSkyRunner
the year is 20XX, I don't know how long I've been here, but the HTML is all I see anymore.... If there's still someone out there... enjoy it...
Source
Changelog.gg summarizes and formats this update. How we read updates.
