https://vrm.dev/en/univrm/blendshape/univrm_blendshape/
VRM supports 17 preset expressions in their BlendShape Avatar system. For the purposes of most VTuber avatars, you will be interacting with the BlendShape Avatar system. Any clips not defined by the VRM presets can be marked as unknown, where they can be handled uniquely by specific programs or custom scripts. This would be useful for ARKIT expressions for example.
The preset “BlendShapeClips” contain the avatar expressions. Each clip can manipulate a mesh’s BlendShape values from a clamped range of 0-100. These clips can target multiple blendshape parameters and multiple meshes if necessary. Unity allows for unclamped blendshape values, but the VRM standard does not support this feature. Some programs that load 3D vtuber models may be able to handle above 100%,
BlendShapeClips can be set to “Is Binary” to enable snapping, as opposed to interpolating the values. Snapping can be useful if the avatar is designed with a texture-based expression approach, where planes are hidden inside of the head when unused. When “Is Binary” is unchecked, the values will ease in and out rather than snap.
There are 17 BlendShapeClips by default, but an avatar can contain less than these if necessary.


As a modeler, you can think of the 17 presets as just 13 expressions. You’ll only need to produce these 13 to fully support VRM’s presets, and then you can use tools to create the other four. Left and Right expressions can be mirrored in the creation process, so you only really need to create them once, which saves you time for LookLeft and LookRight, alongside the three blinks, Blink, Blink_L, and Blink_R. Neutral can just be the default resting pose of the face, so it does not need to be included, although you can alter it from the basis if you wish.
The page below contains advice for working with the mirror modifier for shapekeys.