Hello everyone! It's finally time... [b]Avatar Dynamics has launched on Live![/b] That's right, VRChat 2021.1.2 (build 1189) has just launched on our Live branch and is now available on all platforms! [b]Check out our [url=https://hello.vrchat.com/blog/avatar-dynamics-live]latest blog post[/url] for a full intro and user manual on Avatar Dynamics[/b], including a crash course on how to use our Permissions system to permit and deny interactions with your avatar. Want to high-five your friends? Give your pal a [i]real[/i] headpat? Unfurl your wings? Grab and manipulate your face? Press a self-destruct button on your friend's avatar? All of that is now possible -- and so, so much more. Avatar Dynamics unleashes an entire new set of possibilities for VRChat avatars, far beyond anything we could summarize here. …did we mention that Quest users can now (finally!) see their friends' hair, ears, and clothes move with real-time physics? Avatar Dynamics adds in some of the VRChat community's most requested features. If we're being precise, literally the [url=https://feedback.vrchat.com/feature-requests/p/hand-colliders]#1[/url] and [url=https://feedback.vrchat.com/feature-requests/p/enable-interaction-with-friends-dynamic-bones]#4[/url] most requested features on our Feedback board! [b]Creators:[/b] We've also spent a ton of time writing up [url=https://docs.vrchat.com/docs/avatar-dynamics]technical documentation[/url] for Avatar Dynamics so you can get into creation that much faster! [b]IMPORTANT:[/b] [url=https://docs.vrchat.com/docs/updating-the-sdk]When you update your SDK, follow the instructions for updating PRECISELY![/url] You're gonna get some errors during the SDK upgrade process for avatars. That's [b]fine[/b]. Clear them or restart VRChat. They're expected. [b]This release requires that you update in order to see people on the new version![/b] In other words, if you join on your friends and they aren't in the instance, either you or your friends need to update! [url=https://docs.vrchat.com/docs/latest-release]Our full notes are visible, as always, on our docs site![/url] Oh one last thing: there's a special note for [b]shader authors[/b] in the patch notes up there, go read it! [h1]Client[/h1] [h2]Features[/h2] [list] [*] [b]Implemented [url=https://docs.vrchat.com/docs/physbones]PhysBones[/url]![/b] PhysBones is a component that allows secondary movement for a more realistic depiction of things like hair and tails! [url=https://docs.vrchat.com/docs/physbones]Check the docs[/url] for technical details and important implementation notes! [list] [*] [i]This system is available on all platforms--[/i] [b]yes, including the Quest!![/b] We managed to get PhysBones working on Quest with some limits. See those limits in the [url=https://docs.vrchat.com/docs/avatar-performance-ranking-system#quest-limits]Avatar Performance Ranking System[/url] docs [*] You can set up PhysBones to be grabbed, pulled, stretched, and posed! [*] You can interact with other people's PhysBones, letting you push around and pose affected bones. Want to give your friend a new hairdo? Easy! [*] You can set up custom [b][url=https://docs.vrchat.com/docs/physbones]PhysBones[/url] colliders[/b] for various different effects! [*] We've defined default finger and hand colliders for [b]all avatars[/b], listed in our [url=https://docs.vrchat.com/docs/physbones]PhysBones[/url] docs, so you've always got a way to interact with PhysBones [*] We've integrated a UI to customize these predefined colliders on your avatar descriptor, so you can turn off ones you don't want at avatar creation time [*] You can use [url=https://docs.vrchat.com/docs/physbones]PhysBones[/url] to affect [url=https://docs.vrchat.com/docs/animator-parameters]Animator Parameters[/url] on your avatar, so you can detect when someone is grabbing, pulling, or posing one of your PhysBones! [*] PhysBones are [b]highly performant[/b], offering orders-of-magnitude better performance than Dynamic Bones [/list] [*] [b]Implemented [url=https://docs.vrchat.com/docs/contacts]Contacts[/url]![/b] Contacts allow you to define volumes of space that will send or receive signals. These signals can then be used to drive [url=https://docs.vrchat.com/docs/animator-parameters]Animator Parameters[/url] on your avatar! [list] [*] This system is available on [b]all platforms-- yes, including the Quest!![/b] [*] Contact Senders [b]send[/b] a signal. For a successful collision to occur, both the sender and receiver need at least one matching pair of strings. Collision tags are case sensitive. [*] Contact Receivers [b]receive[/b] a signal. As noted above, both the sender and receiver need at least one matching pair of strings. [/list] [*] Implemented [b]Avatar Dynamics Permissions[/b]! The [url=https://docs.vrchat.com/docs/permissions-and-settings]Permissions and Settings[/url] interface allows you to select who can interact with your Avatar Dynamics systems on your avatar-- nobody, your friend, or everyone! [b]Permission must be granted by both users[/b] for interaction to be enabled [list] [*] By default, only Friends can interact with your avatar [*] A new icon will appear on users' nameplates to indicate the state of interaction permissions [*] If the hand is lit up, interactions are enabled! [*] If the hand is not lit up, interactions are not enabled [/list] [*] Implemented a [b]runtime auto-converter for Dynamic Bones to PhysBones![/b] [list] [*] Best attempts are made to convert Dynamic Bones to PhysBones, including Bone and Collider components [*] The methods, variables, and mathematics are different between the two systems, so conversion may not work perfectly for all avatars. Some complicated setups may require that the avatar author re-upload a new version [*] This system is [i]enabled by default.[/i] You can disable this system via the [url=https://docs.vrchat.com/docs/vrchat-configuration-window]VRChat Performance Options[/url] window. When the system is disabled, you will no longer locally be running the DB->PB converter and Dynamic Bones will be running-- in other words, this choice is local [/list] [*] [b]Per-User Avatar Dynamics permissions![/b] [list] [*] The Avatar Dynamics button has replaced the Emoji button in the launchpad. It pauses all AD interactions now instead of cycling through global settings [*] Added an interaction play / pause button in the Quick Menu settings [*] Added per-user controls to the Quick Menu when selecting a user to override global setting. It is a three-way toggle, similar to the Show Avatar control [/list] [/list] [h2]Changes, Improvements, and Fixes[/h2] [list] [*] Favorites have been fully refactored under-the-hood to be more responsive and stable. This should hopefully solve most (if not all) of the Favorites bugs we've seen! [*] Improvements to simulation time, which should improve networking behavior overall and fix a handful of edge-case networking-related bugs [*] Input is less dependent on framerate [*] If an avatar has defined a VRChat built-in parameter, an error will be printed to log and the avatar's definition of that parameter will be ignored [*] If an avatar re-defines an already-defined parameter, an error is printed to log and only the first definition is used [*] Added a new button to the Quick Menu dashboard for setting Avatar Interaction, replacing the Emotes button [*] Added callouts in the Quick Menu to Interactions Settings [*] Fixed issue where some Main Menu thumbnail lists (ex. World Favorites) wouldn't show all results [*] Safety and Security fixes [/list] [h2]Notes for Creators[/h2] [list] - PhysBones acts a bit differently than Dynamic Bones. As such, we've provided some usage tips on the [url=https://docs.vrchat.com/docs/physbones]PhysBones[/url] documentation page, please refer to it! [*] In order to use Avatar Dynamics, you must update your SDK! [*] Avatar Dynamics systems are only available in SDK3. [/list] [h1]SDK[/h1] The SDK now requires that the Burst and Mathematics packages are installed. If they aren't installed, the SDK will install them for you on import. This may result in errors during first installation, but they will go away after a restart or a log clear. [h2]Features[/h2] [list] [*] Avatar Dynamics components implemented [list] [*] [url=https://docs.vrchat.com/docs/physbones]VRC_PhysBone[/url] and colliders, [url=https://docs.vrchat.com/docs/contacts]Contact[/url] senders and receivers [*] [b]An example avatar is available in the SDK: `VRCSDK\Examples3\Dynamics\Robot Avatar`[b] [/list] [*] Implemented some additional controls and settings on the Avatar Descriptor for Avatar Dynamics [*] Implemented auto-conversion for Dynamic Bones to PhysBones, offered on the Build screen if Dynamic Bones are detected on the avatar [*] [b]DB to PB Conversion was added to Unity menu.[b] `VRChat SDK/Utilities/Convert DynamicBones to PhysBones`. You must select the avatar for this to work [*] Implemented warnings and errors for performance regarding Avatar Dynamics systems. [list] [*] If the [url=https://docs.vrchat.com/docs/avatar-performance-ranking-system#quest-limits]Very Poor limits[/url] are exceeded when building a Quest Avatar, the SDK will warn you that the components will not work when in VRChat [/list] [/list] [h2]Fixes & Improvements[/h2] [list] [*] Enabled Single Pass Stereo Instanced compilation for all shaders at build-time [*] Avatar parameters are checked for validity before creating the array of parameters [*] Fixed SPS-I rendering for built-in Mobile-ToonLit shader [/list] [h1]Legacy SDK2[/h1] SDK2 is considered deprecated and legacy. It will only receive occasional maintenance updates, and will no longer be available or permitted for use in the future. Please migrate to the latest VRChat SDK as soon as you can. [h2]Improvements[/h2] [list] [*] Enabled Single Pass Stereo Instanced compilation for all shaders at build-time [/list] [h1]Documentation[/h1] [h2]Changes and Improvements[/h2] [list] [*] [url=https://docs.vrchat.com/docs/avatar-performance-ranking-system]Avatar Performance Ranking System[/url] page has been updated with limits for PhysBones and Contacts on PC and Quest. It has also been updated to note the hard cap on Quest Avatar Dynamics components [*] All VRChat-provided prefabs are now described on the [url=https://docs.vrchat.com/docs/sdk-prefabs]SDK Prefabs[/url] page, and the Prefabs category has been removed [*] Many unused, unpublished, and deprecated doc pages were removed [*] Archived patch notes from 2017, 2018, 2019, and 2020 have been collapsed into single pages [*] Improved the clarity of [url=https://docs.vrchat.com/docs/avatars-30#write-defaults-on-states]the note regarding Write Defaults[/url] in the Avatars documentation [/list]