Scale Slider

From VR Wiki

So you want to be able to make your avatar change size based on an Avatar SDK 3.0 slider? Here's how.

Warning: Due to bugs in VRChat, you must use the Scale Goes BRRRR mod if you add this to your avatar. Failing to do so will break your menu and camera. See Modding VRChat on how to mod VRChat without getting scammed.

Video Version

There is only one video on this, but it's by some really fast-talking furry with a thick accent who uses memes too much. This will mean that people who can't understand English very well will have trouble with his instructions. If you want a visual rundown on this topic and are willing to take the risk, see the video below. Remember that pressing K will pause/play the video.

https://www.youtube.com/watch?v=TNtlgGpm1CM

Steps

These are the steps I have used to add a similar setup to the above video.

Prerequisites

  1. Get a working avatar that you can edit without breaking
  2. Follow the Modding VRChat guide to install MelonLoader and any mods you want.
  3. Install the Scale Goes BRRR mod using MelonAssistant.

Adding the Animation

This technique uses an animation's keyframes as the scaling inputs.

  1. Open your avatar's Unity project.
  2. What each of the panes is called in Unity 2019.4.31f1. YMMV
    Click on your avatar in the Scene Hierarchy pane.
  3. Remove any Animation Controller from the Animator component in your avatar's root object.
  4. With your avatar still selected, select or open the Animator tab.
  5. Press the Create button.
  6. Name the animation something memorable, like "Scaling.anim", and put it somewhere you can find later.
  7. Click the Add Property button.
  8. Select Transform > Scale.
  9. Delete the keyframe at 1:00 by clicking the diamond icon on the top row and pressing the Delete key on your keyboard.
  10. Select the first keyframe again.
  11. Expand the dropdown under Scale. Make a note of your current size. This will be referred to as your default scale.
    • Most avatars default to a Scale of 1. If your scale is NOT 1, multiply the values given below by your default scale.
  12. Change the values of Scale.X, Scale.Y, and Scale.Z to 0.01 (you can use Tab and shift-Tab to move between them), then press enter. This is the smallest scale currently possible.
  13. Add a keyframe by moving the cursor on the Animation Timeline one frame forward (arrow key right, or click on the header), then pressing the button.
  14. Set X, Y, and Z scale to 0.25 (25% scale)
  15. Add another keyframe and set it to 0.5 for 50% scale.
  16. Add another keyframe and set it to 1 for 100% scale.
  17. I stopped here, since I didn't want to be annoying and add larger sizes. I copied and pasted my default size keyframe until it was positioned in the middle of the animation.
    • The video above advises using 6 for "general use big"
    • The maximum size advised by the video is 600, due to VRChat bugs.
    • If you want to continue:
      • Add a keyframe and set it to 2 for 200% size.
      • Add a keyframe and set it to 4 for 400% size.
      • Add a keyframe and set it to 100 for 10000% size.
  18. Ensure your avatar's Animator is enabled, then right-click on Controller and select Reset.

Parameters

  1. Open or create your avatar's Parameters.
  2. Add a new Parameter and call it something like "Scale".
  3. Set it to be a Float.
  4. Change the default to 0 if your default size is the last keyframe, 1 if your first keyframe is normal size, or 0.5 if the middle keyframe is normal size. REMEMBER THIS VALUE.

Controller

  1. Open your FX Controller.
  2. Enter the Parameters tab on the right pane.
  3. Add a new parameter reference with the name of the parameter we just made, and with the default value we specified earlier in the parameters section.
  4. Go back to layers.
  5. Make a new layer called "Scale" or something memorable.
  6. Click the gear next to it and set its weight slider to maximum (1).
  7. Select this new layer.
  8. In the Project Hierarchy pane, find and drag the animation we made earlier onto the background of the main pane. This will create a new orange state with that animation, and automatically set it up to be run by default.
  9. Click the new orange state.
  10. Click the Parameter checkbox next to Motion Time.
  11. In the Motion Time Parameter dropdown, find and select the parameter we made earlier.

Menu Slider

  1. Create a new Menu Control and name it something memorable.
  2. Change the type to Radial Puppet.
  3. Change Parameter Rotation to the parameter we made earlier.

YA DONE