Contributors: Jellejurre, JustSleightly
Avatars 3.0 Overview
Having a general understanding of how 3.0 works will help with learning how to accomplish any animation on your avatar, and leave less holes/mistakes in the workflow. The visual diagram on the right covers VRChat’s SDK functionality relatively cohesively.
- The black lines/borders highlight the basic understanding that newer creators should focus on.
 - The solid gray lines indicate additional functionality Avatars 3.0 has to offer.
 - The dotted light gray lines display how some components can affect others.
 
Each node is organized into four separate rows:
- Trigger - Different mechanisms/inputs that can be used to manipulate variables
 - Variables - Set of named values that hold information
 - Controller - The “brain” that controls the flow of logic based off the values of variables
 - Action - The events that occur determined by the controller
 
Green nodes are components handled by VRChat, while blue nodes are native to the Unity Editor.
![]()
A visual diagram covering VRChat’s Avatars 3.0 animation system
Glossary
Triggers
- Expressions Menu Controls - The VRChat “Wheel” Menu often used for toggles and radial puppets as described in Expressions Menu and Parameters
 - OSC - A method of using external applications to communicate with your VRChat avatar from outside the game using Open Sound Control
 - Parameter Driver - A kind of VRC State Behaviours that can directly manipulate the value of an Animator Parameter
 
Variables
- Expression Parameters - User defined variables to be used in the Expressions Menu or synced across the VRChat network as described in Expressions Menu and Parameters
 - Built-In Parameters - VRChat defined variables that are automatically handled by the network/client as described in Built-In VRC Parameters
 - Avatar Dynamics Parameters - User defined variables set to be handled by Phys Bones or Contact Receivers/Senders
 
Controller
- Animator Parameters - Low level variables specific to Animator Controllers that may be synced or manipulated by any of the above variables or triggers
 - Animator Layers - Where most of the logic is handled within Animator Controllers
 
Action
- Animation Clips - Animation Clips manipulate properties/values on any GameObject/Component
 - State Behaviours - VRC State Behaviours perform a variety of tasks that can manipulate Animator Controllers/Avatars
 
Example Logic - Toggles
An example using this diagram to highlight the black lines for a fundamental understanding is as follows:
- Expressions Menu Controls - A user in VRChat opens the wheel menu and presses a control for a “Hat Toggle”
 - Expression Parameters - The “Hat Toggle” control flips an expression parameter bool named “Hat” between 
trueandfalse - Animator Parameters - VRChat synchronizes all parameters named “Hat” from the Expression Parameters to all Animator Parameters
 - Animator Layers - The controller switches between two states “Hat On” and “Hat Off” depending if the “Hat” parameter is 
trueorfalse - Animation Clips - The animation clip inside the “Hat On” or “Hat Off” state then enables/disables the hat
 
Example Logic - Gestures
An example using this diagram slightly modified to incorporate Built-In Parameters is as follows:
- Built-In Parameters - A user in VRChat moves their left fingers to conduct a hand gesture that VRChat recognizes as the parameter “GestureLeft”
 - Animator Parameters - VRChat synchronizes all parameters named “GestureLeft” from the VRChat client to all Animator Parameters
 - Animator Layers - The controller switches between eight states depending on the “GestureLeft” parameter
 - Animation Clips - The animation clip inside that gesture’s state then moves the fingers or changes the facial expression
 
Last Updated: 31 March 2024 08:54:00