We have just released a Stable update to ChilloutVR that includes various fixes and improvements, including how you interact with objects, players, and mature content.
Main Changes:
Player Interaction without Input
Allow or restrict other players/props from initiating certain interactions without your input, such as attaching objects or teleporting. Worlds always bypass this setting.
Desktop Throwing
Props & Objects can now be thrown in Desktop by holding the ‘G’ key while held
Mature Content Visibility
Players with access to Mature Content within ChilloutVR via the DLC now have a global toggle available in both the game Settings menu (General), and Account Settings on the HUB.
Unity Upgrade
While not a major change, ChilloutVR is now using Unity 2021.3.45f1. This editor version may be used to upload content going forward.
Note: CCK related changes, and uploading via Unity 2021.3.45f1, will be available along with the release of CCK 3.13 following soon.
Changes:
- Added 'normalizeBoneAttachment' option to CVRAttachment to allow for attachments to work across differing avatar rigs
- This means that bone attachment with fixed offsets won't be affected by bone roll & local scale
Added 'OnPickupUseUp' and 'OnPickupUseDown' to CVRInteractableThis differs from 'OnInteractDown' and 'OnInteractUp' by only firing for the held hand holding the pickupAdded 'RectTransform.SetParent' and 'Transform.SetParent' to the unity event whitelist, limited to worlds. These are available via 'CVRInteractable' method call.Added a mipmap streaming toggle on the experimental settingsAdded a MoveMode dropdown to CVRPickupObjectThis just exposes Velocity / Instant tracked pickups, with the potential for more to be added in the futureAdded an additional Exception Handling for Bundle VerifierAdded a throwing multiplier & min speed threshold to CVRPickupObjectAdded CollisionWithPlayer configuration to CVRPickupObject & CVRAttachmentDisableWhileHeld: The pickup will not collide with the player while held Collision is immediately returned on releaseDisableWhileHeldAndColliding: Same as above, but the pickup will not instantly collide on release, but instead push the player out after half a secondDontDisable: The pickup will continue to collide while heldAdded destroy children option to 'CVRInteractable.DeleteGameObject' actionAdded error handling and display for incompatible worlds in the player activity menu.Added filtering of "illegal layers" on world loadPlayerClone & UI Internal are now filteredAdded logs for when unity events get filtered out, while also stating the reason they were filteredAdded starting Steam (if not running) when using DeepLink to start the gameThis fixes the issues of losing SteamVR custom bindings and mature DLC when starting the game from DeepLink URLs while steam is closedAdjusted 'CVRAttachment' to call the Detached event when the attachment is brokenThis can occur on an avatar switch, prop deletion, or any general case where the tracked transform is no longer able to be trackedThis also fixed CVRInteractables attached state being incorrect if another attachment was done prior to calling DeAttachAdjusted Drop key in Desktop '(G)' to accumulate a throw timer while heldYou can now hold G for up to 3 seconds to charge a throwAdjusted first CVRInteractable.OnEnable call to occur after world loadAdjusted GravityZone rotation alignment handling to not force ZeroG controls during the transition between two override zones which have the same alignment modeThis fixes Zero G controls being active while transitioning through aligned override gravity zonesAdjusted how velocity is applied on release of a pickupThis should make throwing things feel just a bit nicerThis also fixes rotational velocity not applying to a pickup on releaseAdjusted order that 'CVRAttachment' checks for attachable transforms:Now is Snapping Points -> Trackers -> Avatar Bones (was in reverse order)Ex: an attachment set to look for a "holster" type and hip bone will prioritize the preconfigured snapping point if found over the hip boneAdjusted the new non-whitelisted url notificationChanged 0m MaximumGrabDistance behaviourWhen set to 0m only Proximity Grab will workAs desktop cannot physically do proximity grab they have an extra reach distance given to compensateExisting pickups using 0m for infinite still work as expectedChanged CVRInteractable.OnTimer to use coroutine instead of scheduler systemChanged how 'StateMachineCallbackSender' worksYou now must define a specific receiver to forward callbacks toThis was changed for performance & implementation reasonsCVRPickupObject will no longer change Kinematic mode on held rigidbodyIf disabled, pickup object will respect collisionIf enabled, pickup object does not respect collisionDisabled rich text on Portals, Avatar Markers, and Spawnable MarkersEnabled mipmap streaming and set mipmap memory budget appropriately (currently set to 80% of max VRAM)This should resolve where textures were always the lowest mip selected on a previous build that had mipmaps enabled.Note: Some older avatars that have mipmap streaming enabled might use the lowest resolution at all times, which must be re-uploaded to resolve.Exposed 'enabled', 'SetAutoHold', 'ForceRelease', & 'IsPickupable' on 'CVRPickupObject' for use with Unity EventsFixed Advanced Safety not actually clamping transform positionsFixed an issue where multiple delayed CVRInteractable actions being removed at once would stop other delayed actionsFixed an issue where switching to VR after starting in Desktop would mess with VR push pull distance & speedThis caused pulling an object to you to stop before actually reaching you depending on your playspace scale prior to switchFixed an issue with Avatar Reloading not working properly when the upload is updatedFixed an issue with Disconnect Messages being played twiceFixed an issue with Max Prop Download Size not being enforced (it was using the avatars max limit setting instead)Fixed an issue with Player Join and Leave toggles not working properlyFixed an issue with Player Voice Pipelines not applying values properlyFixed an issue with SteamVR not abiding by user-specified render resolutionFixed CVRAdvancedAvatarSettingsTriggerTaskStay Add/Subtract per second being tied to target refresh rateFixed CVRBlitter Breaking when deleting contentFixed CVRInteractable actions being needlessly iterated over during callbacks where actions weren't definedFixed CVRInteractableManagers enableInteractions state not being fully respected, causing desync while interactions were disabledex: CVRInteractable.OnGrab would not fire while in FBT calibrationFixed CVRInteractables Teleport Player World Up option misbehavingFixed CVRInteractable Teleport Player with gravity alignment option not workingFixed not orientating properly in certain scenariosFixed CVRPickupObject.RootTransform returning stored grip transform instead of active oneFixed CVRPickupObject handling rotation of non-physics updated pickups properlyThey used to move in FixedUpdate but rotate in Update, causing some visual issuesThis also fixed GripOrigin pickups not being throwableFixed game initial Intro video not continuing the loading after finishing without user input to skipFixed Interactable not being able to handle multiple controllers properlyThis fixes 'CVRInteractable.OnInteractUp' being wrongly invoked when hovering a controller over an object already being interacted with by the other controllerFixed interactable-spawned objects in worlds set to Auto Pickup not workingIt attempts to auto-pickup the spawned object if there is an available hand. If there is no available hand, it will drop the current held object and then grab the newer oneIn VR it checks first the right and then the left hand for a free hand, if none available it force drops the right hand and then use it.In Desktop just uses the single existent grab point (head)Added options for interactions without user input option on Avatars and PropsExample: Attach props to users, or Teleport/Seat remote without clicking on somethingWorlds do bypass these settingsFor now 'UnityUI' calling 'CustomTrigger' does not count as user Input, so it will be restricted if players have this disabledCurrently the Me/Friends options look for the avatar wearer or prop spawner to decide whether the limits are applied or not. In the future this might be refactored to better interactions (like checking filtering depending on who's grabbing for example)The default settings are:Attachment without user input: AlwaysTeleport Player: Props spawns/Avatars worn by Friends (or self)Note: This didn't improve the access to the mentioned functionalities, instead it restricts some funny ways to do itFixed issue with CVRBlitter breaking when multiple instances of the same prop were spawnedFixed Mirror Facing Check, Mirrors should now be fully functional againFixed mirrors breaking with a skewed transformation matrixFixed notification for blocked prop due to max file size not showingFixed pressing prone key while in Desktop changing Seated Play stateFixed reusing clips with shared Animation Events blows up AnimationEventHelper on content loadFixed some youtube videos play using the wrong languageFixed soundcloud.com links not working in the video playerFixed typo on Player Interactions without Input descriptionFixed VRModeSwitch Shader Replacement only occurring for only Legacy bundle format Worlds despite Compatibility Version being NotSpiFixed VR Switch Shader Replacement prompt using the wrong conditions to displayWould incorrectly display in any world using Legacy bundle format instead of NotSpi Compatibility VersionFixed Worlds with Terrain set to Draw Instanced causing visual artifacts during Digitize transitionImplemented a system to handle shared physics & collision state across CCK componentsThis ensures CVRAttachment, CVRPickupObject, CVRPhysicsInfluencer, CVRObjectSync, & CVRSpawnable shouldn't end up reapplying values they shouldn'tThis will also later allow creators to change the desired kinematic & gravity values when one of the above components is not overriding themImplemented content blocking based on global mature content settingYou won't be able to see the details or use avatars/props/worlds/instances tagged with nudity or gore if you have the setting offYou won't be able to join instances of worlds that are tagged with nudity or gore if you have the setting offImplemented global mature content setting associated with the users accountThe toggle is available within the in-game General settings & on the HubYou must run the game with the Mature Content DLC at least once to unlock this toggleThe toggle is automatically defaulted to true this first time you run with the DLCImproved CVRBlitter functionalityAdded RandomWriteTarget support to the CVRBlitter componentAdded CVRBlitterController to ensure CVRBlitter execution orderImproved menu clarity and reduce aliasing significantlyMade Mirror Optimization always applyRemoved the setting from experimentalPickups ineligible for grabbing will no longer highlightPrevent some avatar materials that are not instantiated from getting destroyedRenamed 'Input & Key-Bindings' to 'Controls'Replaced 'Fade When Idle' setting with 'Display Behaviour' in Settings -> Graphics. Now it offers 3 modes:'Always' - The HUD is always shown (previously Fade When Idle unchecked)'Voice & Updates' - The HUD fades out if there are no updates nor voice activity both muted and unmuted (previously Fade When Idle checked)'Only Updates' - The HUD fades out and only returns when there are updates, or there is voice activity while unmuted (new)Upgraded Unity version to 2021.3.45f1.Whitelisted 'CanvasGroup' for propsWhitelisted FinalIK's 'AimIK' and 'IKExecutionOrder' components for avatars and propsWhitelisted setting some properties of 'CanvasGroup' via UnityEvents (limited to props and worlds)