1. ChilloutVR
  2. News
  3. ChilloutVR 2024r174

ChilloutVR 2024r174

We have just released a new update for ChilloutVR on the Stable branch.

Major Changes:


[h2] Gravity [/h2]
A new way for players to create, move, and interact with Worlds and Props
Accessibility Settings are available for a more comfortable and tailored experience
The Gravity Zone component will be freely available for creators in the Content Creation Kit
[h2] Camera Indicator [/h2]
A Camera lens has been added to indicate where a remote players camera is
Nameplate Customization is available as a Graphics Settings
[h2] Better Cache Management [/h2]
All content Cache has been moved to a unified directory
Now limited to 20GB
[h2] New Character Controller [/h2]
Physics based controller that allows for object collision where possible
Adjusted automatic step height to take avatar height into account
Improved Holoport to allow both the local and remote users to see smooth player movement
[h2] Desktop IK [/h2]
Animated and realistic leg movement for Desktop players
[h2] First Person Render Exclusion Component [/h2]
Show objects that would normally be hidden from your first person view, such as hair, hats, and accessories.
Note: Currently incompatible with the experimental Visual Clone setting
[h2] BodyControl StateBehaviour [/h2]
Allows for better tracking control over parts of the IK solver of an avatar in specific cases
The following can be toggled: Head, Pelvis, Left/Right Arm, Left/Right Leg, and Locomotion
[h2] Refactored Avatar Eye Movement [/h2]
Eye movement is now much more reliable, consistent, and adheres to set limits
A new setting is available to force all subjects to look at the Portable Camera when held
[h2] New Shadow Clone Implementation [/h2]
Reworked the local player Shadow Clone utilizing new tech afforded to us with the update to Unity 2021.
It now respects Unity/Magica Cloth & material swaps, while also being more performant.
[h2] Experimental Visual Clone Alternative [/h2]
Available under Experimental settings, this idea builds off of the same tech as the new Shadow Clones.
Turns the local player into a "Visual Clone", which is basically a Shadow Clone, but visible in first person, and does head-hiding within the same pass.
[h2] Voice Audio and Attenuation Improvements [/h2]
Improvements in voice stability and reconnection handling
New Focus Attenuation settings including: Nearby, Speaker, Forward, Backward, and Angle adjustment
[h2] libVLC Implementation [/h2]
Alternative experimental rendering method for videos
Enable using the --enable-libvlc launch option
[h2] Experimental support for Virtual Desktop OpenXR [/h2]
Allows native Quest hand tracking to be use with CVR on PCVR
How to use:
  1. Enable the OpenXR runtime for ChilloutVR using the launch option `--force-openxr` in Steam
  2. Enable Forward tracking data to PC in the Streaming tab of Virtual Desktop
  3. Set the OpenXR Runtime in the Virtual Desktop Streamer to VDXR
  4. Launch ChilloutVR from Virtual Desktop’s Game tab
Note: This implementation is still a work in progress in both Virtual Desktop and ChilloutVR. Experiences may vary as this feature is further developed.


Technical Changelog:


[h2] Additions: [/h2]
  • Added Automatic Role Assignment IK calibration option
    • With this enabled, there is no need to select which tracker roles to calibrate in IK Tracking Settings
  • Added BodyControl StateBehaviour
  • Added Camera Lenses to indicate where remote player cameras are
    • Camera nameplate behavior may be configured in the Graphics Settings
  • Added Camera setting to start Drone aligned with the Gravity (default)
  • Added Display FPR Exclusions option as expert Portable Camera setting
  • Added FBT toggle in Quick Menu
  • Added Drone Controls for controlling the roll
    • Control the Drone roll in VR by holding right trigger, then moving the left thumbstick to either side
  • Added experimental libVLC video player as a launch option: `--enable-libvlc`
    • This video player introduces a new decoding method that may currently be unstable
  • Added experimental support for Virtual Desktop OpenXR Runtime VDXR
  • Exposed First Person Render settings in new foldout on CVRAvatar component
  • Added fluid volume streams that affect players
    • When being affected by multiple streams, it will average them out (fluid volumes without stream strength are ignored)
    • The water drag is reduced when swimming in the same direction as the stream
  • Added Gravity Interaction setting to Dynamic Bone Interactions
  • Added General setting to change Main Menu anchor behavior in VR
    • If enabled, the main menu will maintain its position in the world when open
    • If disabled, the main menu will maintain its position in your VR playspace when open (default)
    • Existing users will be unaffected from this new default behavior
  • Added new FPRExclusion CCK component
    • Place on a transform to have control over if the chain is visible or not in first person
    • This affects any SkinnedMeshRenderers or MeshRenderers using affected transforms
    • An FPRExclusion is automatically added to the avatars head bone if it does not exist
    • This allows you to specify your own FPRExclusion to take control over this behavior
  • Added player Gravity Rotation Setting
  • Added size-related blending for box gravity corners
  • Added sliding footstep pass to IK to prevent huge steps when being pushed/pulled
  • Avatar Overrender UI experimental setting now has basic support for UDIM discard (Poiyomi & Liltoon Standard)
  • Changed the default of Left and Right Ear Focus to false
  • Configurable Gravity Zone alignment speed
    • Made camera Player Face Tracking respect the player orientation
  • Exposed WorldAnchorMenu option under General settings
    • You may uncheck it to have the Main Menu anchored to you
  • Implemented new Focus Mode Attenuation and Settings (Special Thanks to Nirvash :D)
    • Nearby Focus
    • Speaker Focus
    • Forward Focus
    • Backward Focus
    • Ear Focus Angle
  • Implemented a new Shadow Clone solution for the local player avatar
    • Shadow Clone is now more performant, especially while using the Avatar Overrender UI option
    • Shadow Clone now displays Magica Cloth & Unity Cloth properly
    • Shadow Clone now displays material-based toggles properly (ex: UDIM discard)
  • Implemented an experimental Visual Clone solution for the local player avatar
    • This solution can provide even more of a performance improvement depending on the avatar, and can be enabled under Experimental settings
    • Includes the improvements of the new Shadow Clone solution mixed into an alternative method of head-hiding
    • There is no more explicit shadow clone, but instead a “visual clone” that you now see in first person- i.e. you are now the clone, and your true-self is only visible in your reflection
  • Improved Zero Gravity Controls
  • Increased deceleration while swimming
  • New Formula for Calculating Attenuation
  • Orbit World Space on Orbit Mode is now false by default
  • Prevent toggling crouch when using the Drone Camera
  • Implemented AdditiveContentScene to house Players, Props, and Portals so they can be easily differentiated from world objects
  • Implemented Flight without No-Clip
  • Implemented Include Mature Content search option
  • Implemented login in VR (takes you to the login Room)
    • Logging out will take you into the Login Room instead of exiting the game
  • Implemented new HUD Customization option to Fade When Idle in Graphics Setting
  • Implemented new TransformHiderManager
    • Reworked legacy head-hiding to allow for runtime toggling
  • Implemented VRIK for Desktop avatars, configurable in IK Solver Settings Desktop subcategory
    • Animation position correction & diving pitch control will also now affect Desktop avatars
  • Made HUD shard pulse rate increase briefly when an update is received
    • This should help signify which shard received an update when stacked
[h2] Adjustments: [/h2]
  • Added cooldown to search refresh of 3 seconds
  • Added distance limit to QM reposition mode (1m scaled)
  • Added isValidForVrIk check before attempting to initialize IK for an avatar
  • Added the default avatar/world as fallbacks when failing to load into an avatar/world
  • Added vehicle boost control to XR Input module (right thumbstick forward)
  • Adjusted “cannot spawn prop” notification to be different for Local & Network users
    • Added HUD config to disable network user prop blocked notification
  • Adjusted controller disconnect to disable IK for that hand
    • Behaviour can be disabled with the FreezeControllerOnDisconnect IK setting
  • Added CVRAudioDriver methods to AnimationEvent whitelist
  • Adjusted default smooth turn speed to 50
  • Adjusted “Disabled” Head Bobbing mode to change HeadIKTarget parent while on Desktop
  • Adjusted Head Ray to only enable if both controllers are not tracking
  • Adjusted intercollision logic, so collider on sub gameObjects from Humanybody bones should be counted as such (e.g. bone on a child gameObject of the Hand should now be considered for hand placement and not only in Everything)
  • Adjusted MaxTrackerDistance to 0.5f from 1f (meters)
  • Adjusted menus to not be considered as world anchored while sitting
  • Adjusted menus to not close when forcefully respawned (Combat System / Respawn Plane)
  • Adjusted Opacity of Center Hex Hub on HUD
  • Adjusted OpenXR hand tracking
  • Adjusted PassPlayer layer to interact with IgnoreRaycast
  • Adjusted physics update rate on Desktop & OpenXR to match OpenVR default settings
  • Adjusted Portal/Prop Drop to place in front of you instead of in front of your view
  • Adjusted search box to immediately open to a details page when fed a proper GUID
    • Valid prefixes are `w+`, `a+`, `p+`, `i+`, `u+` with GUID postfix
  • Adjust Seated Play offset to 97% of height
  • Adjusted ShadowCloneManager to fallback if mesh topology is not set to triangles
  • Adjusted the max images to load in cohtml per animation frame to 25
  • Adjusted TransformHiderForMainCamera to hide unneeded clones when Avatar Overrender UI is disabled
  • Adjusted TransformHiderManager to disable head-hiding if the players camera is too far away (This should be a measurable improvement in performance)
    • This replaces the explicit check for head-hiding to not run while in Holoport, as well as missing heads in VR while in chairs
  • Adjusted UI to be hidden in camera by default
  • Adjusted VR switching to recalibrate active avatar instead of reloading it
  • Adjusted world anchored menus to offset with the player when forcefully respawned or while on a movement parent
  • Adjusted world load to set respawn height below all spawns as a safety measure
  • Changed advanced tagging to be more accurate with the definition in the CCK
    • Added missing "Loud Audio", "Long Range Audio", "Horror" mechanic for advanced tagging
  • Changed finger tracking sync to allow for more intricate movement
  • Changed IKCalibrationMode to be set to Full by default
  • Changed IKEnableUniversalCalibration & IKEnableSaveCalibration to be enabled by default
  • Cleaned up redundant "Enable" text for setting names in IK menu
  • Disabled physical interaction with the menus. This will need to be revisited later
  • Enforced faster updating of QM buttons such as Mute, Flight, Seated Play, etc…
  • Experimental option for small player collider was removed, and now the collider of the players will scale down to a minimum height of 0.05 units by default.
  • Improved the default placement and scale of the default placed pointers for humanoid avatars
  • Made Universal Calibration persist through restarts
    • Reintroduces the previously unintended behavior present before when Saved & Universal calibration were enabled together
  • Moved Show HUD option to Graphics settings
  • Moved Smooth Mic Meter setting higher in the HUD Customizations section
  • Nameplate material and shader updates
    • Adjusted nameplate up vector to align with playspace up
    • Readded outline to nameplate username text to improve legibility
    • Fixed culling of nameplates in mirrors
    • Fixed nameplate behavior when camera forward aligned with player up vector
  • Portable Camera image processing rewrite
  • Rewrote Focus Attenuation
    • Added Left and Right Ear Focus Customization
  • Rewrote Vivox Connection Handling and Persistence
  • Updated Magica Cloth 2 to 2.5.2
    • Release Notes available here
[h2] Fixes: [/h2]
  • Crouch and Prone should no longer affect the player capsule radius
  • Fixed 4pt being considered FBT on calibration
  • Fixed a few issues with VRIKRootController not respecting avatar up vector
  • Fixed an error when calling PlaySound on a CVRAudioDriver when its gameobject is disabled
  • Fixed an issue allowing you to calibrate up to 3x in a frame
  • Fixed an issue where avatar root would still have velocity despite solver Reset
  • Fixed an issue where active offset didn't account for root up vector
  • Fixed an issue where TTS Messages would continue playback after Communication Services connection loss
  • Fixed an issue where VR Switching would not Calibrate the player into FBT if available
  • Fixed an issue with certain props (like piano fall lol) not able to be dropped using the raycast
  • Fixed an issue with CVRBlitter running for each camera in the scene
  • Fixed an issue with CVRGameEventSystem.Microphone not being called
  • Fixed an issue with Interactable SpawnObject not being ran through the World Filter
  • Fixed an issue with Microphone appearing Unmuted in Menus while using TTS
  • Fixed an issue with Microphone not resetting to the proper Mute state after Reloading CoHTML
  • Fixed an issue with remote avatar visibility changes applying AAS buffer when not valid
  • Fixed an issue with selecting QM AAS Profiles causing the MM to display the AAS Settings page when next opened
  • Fixed an issue with SteamVR_RenderModel throwing an error when starting in VR
  • Fixed an issue with Vivox SetPosition being called too fast (now adjusted to 200ms)
  • Fixed an issue with world spawnables being eligible for deletion by user using Delete All Props button
  • Fixed any possibility of enabling Seated Play prior to calibration
  • Fixed applyOriginalHipRotation not being reset when toggling from FBT to Halfbody
  • Fixed Avatar Upright not accounting for avatar up vector
  • Fixed Avatars without CVRAvatar breaking the object loader
  • Fixed being able to grab the camera while scaling it
  • Fixed being able to sit down in disabled CVRSeat
  • Fixed Box Fluid Volume not respecting the placeFromCenter for physics influencers
  • Fixed calibrating in FBT while player was rotated
  • Fixed calibration mirror not scaling with avatar while in calibration mode
  • Fixed CameraAttachment VisualMod not being disabled on new world load
  • Fixed clapping disabling the camera indicator in the menu
  • Fixed ControllerRay line renderer being delayed a frame when interacting with the UI
  • Fixed ControllerRay line renderer being wrongfully affected by other objects when using UI
  • Fixed ControllerRay not calling OnPointerExit when no longer highlighting any other UI elements of the same type
  • Fixed CVRAttachment TrackerType.LeftHand & TrackerType.RightHand not using Controller transform
  • Fixed CVRAudioDriver erroring when setting a negative value
  • Fixed CVRGlobalMaterialPropertyUpdater child materials not being populated in worlds
  • Fixed CVRInteractable method call not being filtered when disabled
  • Fixed CVRObjectLoader destroying PlayerAvatar container instead of avatar itself if no CVRAvatar component is found
    • Fixes avatars getting stuck at 0%
      Fixed CVRParticleSound for local and custom space particles
    • Parent the CVRParticleAudio audio sources to the correct transform depending on the simulation space
  • Fixed CVRPickupObject not forcing a drop on disable
  • Fixed CVRVisemeController JawBone mode can break IK when not actually mapped
  • Fixed CVRXRModule_SteamVR.trackingValid being false while in SteamVR overlay
  • Fixed DroneMode from receiving input when CVRInputManager.inputEnabled is false
  • Fixed emotes not playing in the direction of your view
  • Fixed entering a seat causes you to get stuck in a falling animation sometimes
  • Fixed error about Update_Emotes() that always showed up when starting the game in VR
  • Fixed event filtering and instance id on video players
  • Fixed FBT limbs reverting to t-pose when IK for a limb was disabled
  • Fixed feet freaking out while on a movement parent that can rotate on every axis (e.g. a boat in water)
  • Fixed feet in Halfbody always pointing in direction of view
  • Fixed feet sliding when moving in your playspace while on a movement parent in Halfbody
  • Fixed Friends, Vote, and Invite HUD events being triggered constantly & while disabled
  • Fixed game menus colliding with PassPlayer and BlockPlayer layers
  • Fixed hang on Exit issue
  • Fixed height adjustment -+1 -+5 buttons from applying twice the values (while displaying it once)
  • Fixed hold and drag the scroll view to scroll
  • Fixed HUD opacity being applied twice
  • Fixed IKSolverVRSpine applying rootHeadingOffset with world up
  • Fixed IKSolverVRSpine.ApplyOffsets sending you to space when upside-down
  • Fixed interactable OnTimer action creating a timer for every other timer action
  • Fixed Interactable OnTimer action not stopping when component was disabled
  • Fixed Locomotion IK being enabled without checking Upright
  • Fixed Main & Quick Menus opening upside down when a MinimumMenuTilt was specified, and player was rotated
  • Fixed MaxTrackerDistance check not taking play space scale into account
  • Fixed menu not exiting head turn mode when sitting in a chair on Desktop
  • Fixed MetaPort.OnPostVRModeSwitch being called twice
  • Fixed mirror shaders not writing to depth
  • Fixed mouse cursor getting stolen on launch while in background / in VR
  • Fixed “None” Head Bobbing mode not returning to standing height when playing an emote
  • Fixed not being able to calibrate just one foot
  • Fixed not being able to calibrate without hip tracking being enabled
  • Fixed not being able to swim down using crouch if on the surface
  • Fixed not being centered in the initial Login scene in VR
  • Fixed occluded controllers being considered invalid and defaulting to one-handed mode
  • Fixed opening camera via menu or gesture not aligning with playspace up
  • Fixed OpenXR with index not working (can't move or use menus)
  • Fixed parameter stream LocalPlayerNameplatesEnabled so it respects the settings to only show when menu is opened, and also respect the world setting whether nameplates are enabled or not
  • Fixed PlayerAvatarPoint.GetPointPosition returning incorrect value when avatar was hidden
  • Fixed PortableCamera AutoFocus being occluded by layers it could not see
  • Fixed PortableCamera AutoFocus failing to get correct distance when attempting to focus on the players eyes
  • Fixed PortableCamera not being able to see PlayerClone layer (local player shadows)
  • Fixed PortableCamera Take Photo from receiving input when CVRInputManager.inputEnabled is false
  • Fixed prop details page displaying "Avatar"
  • Fixed prop drop button not being greyed out when you do not have access to the prop
  • Fixed prop list sub-category bottom margin
  • Fixed Props without CVRSpawnable being impossible to destroy (wrapper & primitives never unloaded)
  • Fixed PuppetMaster _initialAvatarHeight being incorrect when remote user was at an angle
  • Fixed RawLookVector being clamped on Y axis
    • This fixes Look Y entry on CVRParameterStream
  • Fixed RCC AudioMixerGroup being set to worldSfx when component was not on same object as Spawnable component
  • Fixed running animations in FBT while swimming disabling leg IK when standing still
  • Fixed search cursor being forced to the beginning of the field
  • Fixed seated play breaking between Avatar switches
  • Fixed several Viseme issues
  • Fixed sitting in a chair from another chair to keep you in a falling state
  • Fixed some gestures not working when using quest controllers in OpenXR
  • Fixed spamming Enter on the game start breaking the game
  • Fixed search refresh button
  • Fixed Tracker line renderers getting stuck when tracker exited MaxTrackerDistance
  • Fixed tracking point visibility not being updated on tracking point connect/disconnect
  • Fixed TrackingModules, InputModules, and VR camera position not being updated prior to avatar - reinitialization
  • Fixed Unity UI Scroll views going beyond their max limit
  • Fixed universal calibration resaving calibration data every avatar switch
  • Fixed Video Player pausing with audio becoming desynced
  • Fixed VR Switching in a Legacy world incorrectly shader replacing ALL remote Avatars & Props
  • Fixed VRIKRootController incurring a slight drift along local Y axis when the player rotated
  • Fixed VRIKRootController when there were no hips/feet trackers
  • Fixed world anchored Quick Menu not respecting MinimumMenuTilt
  • Fixed world scrolling making worlds disappear
  • Fixed _initialAvatarHeight being incorrect when loading an avatar while upside down
  • Ignore alpha channel on lag-less screenshot method
  • Prevent being able to spawn invalid sync precision props
  • Removed period from "cannot spawn prop" notification
  • Removed the requirement of rigid bodies in movement parents
  • Rewrote Focus Attenuation
  • Use movement parent deltas from new player controller


Along with this update, CCK 3.8 will release tomorrow.