Before getting started ensure you have a Unity project with the SDK set up.
In order to create avatars, you must use VRCSDK2. You cannot use VRCSDK3 to create avatars.
Arguably the most important part, you must find a 3D model to be used as your avatar. As this is your first avatar we recommend getting one from the Unity Asset Store as they usually come fully rigged meaning you don't have to do anything special to get it uploaded. If you decide to get your model outside of the asset store, ensure the model is fully rigged and is in a format Unity accepts.
Ensure that you obtain a license to use the model that you wish to use. Artists put hundreds of hours into their models. Using them without a license is a violation of the VRChat Terms of Service as well as a violation of the model author's rights.
Ensure that the model that you're using is below 70,000 triangles (7,500 for VRChat on Oculus Quest). On PC, you can upload models above this amount, but the avatar will be automatically marked as "Very Poor" performance, as excessive polygon count can cause performance problems.
Now you have found the model you want it's time to get it into your project. If you're getting it from the asset store then on the assets page you can download and import it from there, If getting it from somewhere else then you need to import it and any related textures into your assets folder.
After you get the model in your assets select it, you'll want to ensure it has the correct settings set, under the rig tab in the inspector make sure the Animation Type is set to Humanoid.
With the model in your assets and with the correct settings on it you will next want to put it into a scene To do so, either drag it into your Hierarchy or into the scene. We recommend having one scene per avatar and placing it at 0, 0, 0. If the avatar isn't standing up straight, rotate it so it is. Also, ensure the avatar isn't really small or bigger than 5x5x5m, you can use a default unity cube which is 1x1x1m to compare.
It is very important that your avatar is optimized so that you do not cause low FPS for yourself and others. The SDK will inform you if something looks awry. Check out our Avatar Optimization Tips to check out methods to improve your avatar's Performance Rank.
After doing so we now want to add an VRC_AvatarDescriptor then setup the settings for it. First we'll want to set the view position, this will be where you view from, you can see a visual representation of it as a small white sphere in the scene. If your avatar is has a head then the best position the view is between the eyes, if it's not then place it where ever you feel fit.
Next we'll want to set the animation set, choose which you feel best suits the avatar. After that, if you want, can setup lip sync so when you talk, the avatar's mouth (or what ever else) can react. Since this is a beginner avatar we'll use a Jaw Flap Bone as it's the easiest to setup. First we need to find the jaw bone, to find it we need to go to the the hierarchy and find the skeleton the avatar, this should be easy to find as it has a lot of children and should be named accordingly. Navigate your way from the root, though the spine to the head, under it you might find a jaw bone, if you don't have this bone then you won't able to setup lip sync, though if you do then you can set Lip Sync on the avatar descriptor to Jaw Flap Bone and put in the jaw bone into the Jaw Bone slot.
You can also choose to use blendshapes/shape keys for your visemes! blendshapes / shape keys (named depending on what software you're using) are modifications to the mesh based on vertex positions. Many models use this for detailed animations for speaking. If your model has these, you can use them.
We use the Oculus Audio library to detect and set visemes. You can see a reference to what all the visemes should look like and what sound triggers them here.
Unity will delete shape keys / blendshapes that are empty on import, so make sure your "SIL" shape (the shape your mouth makes when no sound is detected, but the mic is active-- such as the space between words) moves a single vertex a very small, imperceptable amount. This will prevent Unity from deleting that key.
Next we'll want to check that everything is good in the build window, to do that you'll need to open
VRChat SDK > Show Control Panel > Builder, within you should see the avatars gameobject mentioned with a Build & Publish button below it. In between you will see a polygon count, errors and warnings. If there's any errors you will need to fix them first, the most common error is too many polygons though to fix this you will need to decimate your avatars mesh(es) which if you know how to do then go do so but if not just go back and choose another model for now.
Now everything is ready press the Build & Publish button, the SDK will then build you avatar and get it ready for upload. You will next be brought to the upload screen where you can name your avatar, set a image for it and other metadata. To alter the image move the VRCCam around the scene.
After all that is entered you need to confirm you have the rights to upload the content to VRChat then you can press the upload button, the avatar will then start uploading and when finished you should able to see it in-game or via the content manager in the SDK via
VRChat SDK > Show Control Panel > Content Manager
Updated 2 months ago
|Avatar Optimization Tips|