Avatar Dynamics

From VRChat Wiki
V · EThis is an official VRChat information page!
It is reviewed and approved by the VRCWiki Team. Learn how to contribute to this page by reading the Contribution Guide.
V · EThis page is a stub.
You can help the VRChat Wiki by improving it.
[Reason: Not much information here! You can contribute, by expanding and proofreading this article, in accordance with the Manual of Style.]

Avatar Dynamics, is an avatar feature, initially introduced to VRChat on April 21, 2022[1]. is a set of features to add more interactions between avatars. Replacing older avatar components, and adding new options for avatars. This release also introduced a new permission system to let people set who can interact with these new features.

PhysBones

See also Physbones for more detailed information.

Physbones allows for secondary motion and interact-able bones for avatars. Allowing users to grab, move, and manipulate avatar parts (e.g., hair, ears).

Contacts

See also Contacts for more detailed information.

Contacts are a system that allows avatars to detect collisions with itself or other avatars. These collisions can then be used to drive Animator parameters and perform many kinds of interaction effects.

Contact Senders

A Contact Sender defines a collision volume that can be detected by a matching Contact Receiver. Senders can use a sphere or capsule shape, a root transform, local position and rotation offsets, and one or more collision tags.

V · EUnreleased or beta content!
This content is currently unreleased or in beta, be aware it could change!
[Reason: No reason provided.]


A box shape for contacts is in development and planned for a future SDK release[2][3]. Box-shaped contacts will be available for both avatars and worlds, with configurable width, height, and depth. Box-shaped contact receivers will also support an additional proximity calculation mode based on the distance from the sender to the positive Z face of the box.

On avatars, the Colliders section of the Avatar Descriptor also creates built-in Contact Senders for common body parts such as hands and fingers.

Contact Receivers

A Contact Receiver listens for matching senders and writes a value to an Animator parameter on the avatar. Receivers can be configured to allow self-contact, other users, or only local evaluation.

VRChat supports three receiver behaviors:

  • Constant keeps a parameter active while a matching sender stays inside the receiver.
  • On Enter activates for one frame when a matching sender enters, optionally requiring a minimum velocity.
  • Proximity outputs a float from `0.0` to `1.0` based on how close the sender is to the center of the receiver.

Tags and parameters

Contacts only interact when a sender and receiver share at least one matching collision tag. The receiver's Parameter field determines which Animator parameter is updated. Depending on the Animator parameter type, the value may be interpreted as a float, int, or bool.

Debugging

In Unity, Contact gizmos appear when Gizmos are enabled and the contact or one of its parents is selected. In VRChat, the Avatar Dynamics overlay can also be used to visualize Contacts and PhysBones during testing.

Permissions

The Avatar Dynamics permission system gives you complete control over who can interact with your avatar and how:

Global Permissions

Choose “Everyone,” “Friends,” or “Nobody” as a default setting for all users.

Per-User Overrides

Individually grant or deny avatar interaction permissions for specific users.

Quick Toggle/Safe Mode

Instantly pause all interactions (regardless of any other settings) with one button press in the Quick Menu.

Official resources

References