Toggles: Difference between revisions
Add dissolve toggles |
add more references |
||
| Line 53: | Line 53: | ||
* [https://vrc.school/docs/Avatars/Multi-Toggles VRC School: Multi-Toggles] | * [https://vrc.school/docs/Avatars/Multi-Toggles VRC School: Multi-Toggles] | ||
* [https://vrc.school/docs/Avatars/Radial-Puppets VRC School: Radial Puppets] | * [https://vrc.school/docs/Avatars/Radial-Puppets VRC School: Radial Puppets] | ||
* [https://vrc.school/docs/Avatars/Dissolve-Toggles VRC School: Dissolve Toggles] | |||
* [https://vrc.school/docs/Avatars/Axis-Puppets VRC School: Axis Puppets] | |||
Latest revision as of 15:23, 16 March 2026
Toggles are a common avatar setup pattern that uses Expressions controls, Animator parameters, and animation states to enable or disable avatar features.
On VRChat avatars, a toggle usually starts in the Expressions menu, where a user flips a Bool, Int, or Float parameter. That parameter is then read by an Animator Controller, most often on the FX playable layer, to switch between different states or animations.
Toggles are commonly used for clothing swaps, props, blendshapes, material changes, and other on-or-off avatar features.
Basic setup
A simple toggle usually needs:
- An Expressions menu control, often a Toggle.
- A matching custom parameter in the Expression Parameters asset.
- A matching Animator parameter in the controller.
- Animation states that enable and disable the target object or update a property.
Creators often include a small buffer or idle animation so the controller behaves consistently with different Write Defaults setups.
Exclusive toggles
Some avatars use a group of mutually exclusive toggles where only one option should be active at a time, such as outfit sets or hairstyle choices.
Common approaches include:
- Multiple bool toggles with parameter drivers that turn the other options off.
- An integer-driven setup where one value selects one state.
- A blend tree or radial-puppet-based selector for a larger set of options.
Radial and advanced variants
Not every toggle is a simple on-or-off switch. Avatar creators also use:
- Radial puppets to drive a float from
0.0to1.0for effects such as hue shifts, scale adjustments, or multi-option selectors. - Two-axis puppets to control two floats at once, often for transform control.
- Blend trees or motion time for more compact controllers when a toggle needs multiple intermediate values.
These techniques are built from official Expressions and Animator features, while many specific controller patterns are documented mainly in community guides.
Dissolve toggles
A dissolve toggle uses a shader dissolve effect to smoothly fade an object in or out instead of instantly enabling or disabling it. This is typically implemented with a radial puppet or a blend tree that drives a shader property (such as a dissolve cutoff float) from 0.0 to 1.0.
Because the dissolve effect depends on shader support, the avatar's materials must use a shader that exposes a dissolve or cutoff property. The animator drives this property through an animation clip that changes the material float over time.
Dissolve toggles are more visually polished than instant on/off toggles but have a higher performance cost due to the use of transparency or cutout shaders during the transition. Community benchmarks suggest that exponential smoothing for dissolves runs at roughly half the cost of a standard layer toggle, while linear smoothing with frame-time detection is roughly twice the cost.
Notes
- Toggle behavior depends on the playable layer and Animator setup used by the avatar.
- For cross-platform avatars, matching parameters should stay in the same order and use the same parameter types on both versions.
- Built-in VRChat Animator parameters should not be re-created in the custom Expression Parameters asset.
Official resources
- Expression Menu and Controls on Creator Docs
- Animator Parameters on Creator Docs
- Playable Layers on Creator Docs
- State Behaviors on Creator Docs