Avatar Scaler v4
A unity asset to resize VRChat avatars
Download
Download latest here.
Usage
First time
- Download AvatarScaler-v4.unitypackage
- Drag and drop AvatarScaler-v4.unitypackage into your project
- Edit "Avatar Scaler/AvatarScales.csv" to your needs
- Select your avatar in the Hierarchy pane in Unity
You should always select an avatar of the same scale each time you use this tool, preferred is an avatar of scale 1 (i.e. the default scale for your avatar) for this
View position is calculated based on this avatar's view position and floating point errors can add up over time if you use other scales
- Use "Tools > Scale Avatar" or hit Alt + A on your keyboard
- congration you done it, upload them avatars
Made changes to the base size?
It is safe to run the scaler again, it will make new copies with the same names which may be confusing. You can always Ctrl + Z to undo scaling and remove all newly created avatars. Otherwise,
- Delete all previously created scaled avatars except for the base size you've made changes to
- Re-run the tool by with "Tools > Scale Avatar" or hit Alt + A on your keyboard
Updating
- Backup your AvatarScales.csv file
- Delete from "Avatar Scaler":
- AvatarScaler.asmdef
- AvatarScaler.cs
- Drag and drop AvatarScaler-v4.unitypackage into your project
- Uncheck AvatarScales.csv to avoid overwriting your own file!
- Restore your AvatarScales.csv file if you missed unchecking it on import in the previous step
AvatarScales.csv (or avtr_*.csv, see Additional features)
The Avatar Scaler tool uses a CSV file to define what scales to create, what to name them, and what Blueprint IDs to apply to them. This is the sample file the package comes with:
# Scale target, New name, Blueprint ID (empty to new avatar)
1.25,Scaled Avatar-1.25,
0.25,Scaled Avatar-0.25,
This will create two new avatars of scale 1.25 and 0.25 based on the selected avatar. They will be named "Scaled Avatar-1.25" and "Scaled Avatar-0.25" in Unity.
If you have uploaded avatars you would like the newly scaled avatars to overwrite on upload, set the blueprintID in the CSV file and when avatars are scaled that will be applied. This is a sample of what that looks like:
# Scale target, New name, Blueprint ID (empty to new avatar)
1.25,Scaled Avatar-1.25,avtr_565c862b-7f01-4426-ae0a-1ea29af14a97
0.25,Scaled Avatar-0.25,avtr_b4da0875-cdfd-442c-aab8-d2f70169f747
Warning
VRChat does not permit avatars that have a shoulder height smaller than 20cm to be uploaded, if you make one that small then you will not be able to upload any avatars in the scene until you disable or remove it. If the ability to Build & Publish becomes greyed out for you, check all the avatars in the VRC SDK to find the ones that are too small.
Additional features
- If you add the tag Unscaled to your Unity project and tag a game object with it, during scaling those objects (and all children) will be unparanted for scaling then reattached afterwards to their parent. You would use this if you wanted a prop to remain the same size regardless of your avatar's size.
- Instead of storing your sizes and Blueprint IDs in a single csv file (AvatarScales.csv) you can now have additional csv files named after the blueprint ID of the base size avatar you are scaling. You would use this if you have multiple versions of your avatar in the same project, to use this simply create a csv file named after the Blueprint ID.
For example, you might have avtr_565c862b-7f01-4426-ae0a-1ea29af14a97.csv that contains various sizes for one version of your avatar, where avtr_565c862b-7f01-4426-ae0a-1ea29af14a97 is the Blueprint ID of the 1.0 scale avatar, and another avtr_b4da0875-cdfd-442c-aab8-d2f70169f747.csv file for various sizes of another version of your avatar.
If a csv file for the Blueprint ID of the avatar you are scaling is not found, the AvatarScales.csv file is used as normal. This also means that when updating if your scales are in a Blueprint ID file, they will not be overwritten.
Changelog
v4
- Try loading scales from avtr_*.csv file based on the selected avatar for scaling.
v3
- Fix issue where game objects that have an active Parent Constraint would not be properly scaled. (Thanks to @phenokage for pointing out the issue and giving me a live sample to experiment on.)
v2
Contact
If you have issues or questions contact me on twitter: @PinballsWizard or mastodon: @pinball@paws.press