Getting Started
This doc introduces fundamental things to consider when creating your VRM...
VRM requirements
When designing a VRM, you will want it to work on as many platforms as possible including Mobile and/or Standalone VRM platforms. It is recommended to create your assetsto the Perfect or Great specifications below so you can look great and run at a reasonable framerate (or not feel nauseas in the case of standalone VR).
A good target would include the following :
Triangles
4,000
16,000
32,000
64,000
Materials
1
2-3
4-6
7+
Meshes
1
2
4
8
Filesize
5Mb
10Mb
15Mb
25Mb
Bounds
3m x 3m x 3m
3m x 3m x 3m
4m x 4m x 4m
7m x 5m x 4m
Note that some assets may not even be loaded onto the experience or platform depending on how strict their upload options are such as filesize etc. Optimised assets means more people can see your VRM without issue as well as have more avatars in the same space.
Reducing Filesize
Textures will play the biggest part in increasing the filesize of your avatar assets when in many cases they can be reduced, or even discarded without any loss to the final size.
It is recommended to use 2 materials or less per Avatar. Each material using one 2k texture (such as Diffuse), and other textures are 1K (such as roughness and normal).
Jpegs are usually the smallest in filesize. Webp also has good compression. PNG is usually much larger in filesize.
Use 2K textures or less (2048x2048 pixels).
Do not use 4K textures (4096x4096 pixels)!
Make sure to check if each texture improves the result. Sometimes you can reduce the texture size with little to no difference. Sometimes you can remove it completely.
For more tips on how to improve an assets approach to textures, check out Palette Approach,Trim Sheets, or High polygon Assets for more information.
Reducing Polycount
Reducing Polycount is usually more difficult depending on how you created the asset. If you are using AI to create your asset it is recommended to reduce the polycount as most AI tools don't consider polycount that much. It is always a balance between time and quality, and optimising a mesh manually will take the longest time for the best results. That said you can try the faster approaches to Mesh optimisation Decimation and Remeshing.
Decimation and Remeshing
Decimation and Remeshing are two 'automatic' approaches to reducing the polycount of a mesh, the issue is that you have a lot less control over how it is applied and, in some cases such as animation, they are not ideal.
In the case of VRMs, decimation is not recommended as you are creating an animated asset, and decimated polygons don't animate well. Remeshing usually has better results as it creates better edge loops which allow for better animation (such as shoulders, elbows and knees).
The Decimate and Remesh modifier can be applied in the Modifier panel in Blender after selecting the model in Object mode. Once applied you can play with the large number of parameters to get the best effect on your mesh.
Retopology
Retopology is the approach to manually tracing your asset to create a lower poly version, meaning you can set the polycount to your needs more precisely. The con to this approach is it takes more time.
You can then project, or bake, the high polygon information into the normal map, or kind of like a bump map, so the asset looks pretty much exactly the same while at the same time having a considerably lower polycount. The normal map will contribute to the filesize however.
Edgeloops
As your model will be animated you will need to consider how the model is created so that the key joints in the body can animate well. This will also improve Mixamo/Accurig process for improved results with fast rigging methods.
Key areas that need clean edge loops include :
Neck (top/bottom)
Shoulders
Elbows
Wrists
Finger joints
Hips
Knees
Ankles
Toes
T-Pose
For a VRM to animate correctly the base character should be in a T-Pose, otherwise the animation may not work correctly such as the arms swinging inwards.
An A-Pose can be exported as a T-Pose however, so you don't have to remodel the body to a T-Pose in order to export it as a VRM. This will be covered in the respective tutorial.
Tools Required for VRM Creation
There are a number of different methods to create a VRM. The following are two methods that are well documented.
Using Blender
Using a 3D Creation tool & Unity
3D Creation tool (Blender, 3DStudioMAX, Maya etc.)
Last updated