Avatar standards¶
Skeleton¶
Warning
The root bone is necessary to keep the avatar's feet on the floor for animations such as jumping.
It should start at 0, 0, 0 and end where the hip bone starts. The hip bone must be parented to it.
It's not shown in the pictures because it easily obscures the other bones, but definitely add it! The blender addon will do this for you when exporting.

Root
`―― Hips
|―― LeftUpLeg
| `―― LeftLeg
| `―― LeftFoot
| `―― LeftToeBase
|―― RightUpLeg
| `―― RightLeg
| `―― RightFoot
| `―― RightToeBase
`―― Spine
`―― Spine1
`―― Spine2
|―― Neck
| `―― Head
| |―― HeadTop_End
| |―― LeftEye
| `―― RightEye
|―― LeftShoulder
| `―― LeftArm
| `―― LeftForeArm
| `―― LeftHand
| |―― LeftHandThumb1
| | `―― LeftHandThumb2
| | `―― LeftHandThumb3
| |―― LeftHandIndex1
| | `―― LeftHandIndex2
| | `―― LeftHandIndex3
| |―― LeftHandMiddle1
| | `―― LeftHandMiddle2
| | `―― LeftHandMiddle3
| |―― LeftHandRing1
| | `―― LeftHandRing2
| | `―― LeftHandRing3
| `―― LeftHandPinky1
| `―― LeftHandPinky2
| `―― LeftHandPinky3
`―― RightShoulder
`―― RightArm
`―― RightForeArm
`―― RightHand
|―― RightHandThumb1
| `―― RightHandThumb2
| `―― RightHandThumb3
|―― RightHandIndex1
| `―― RightHandIndex2
| `―― RightHandIndex3
|―― RightHandMiddle1
| `―― RightHandMiddle2
| `―― RightHandMiddle3
|―― RightHandRing1
| `―― RightHandRing2
| `―― RightHandRing3
`―― RightHandPinky1
`―― RightHandPinky2
`―― RightHandPinky3
Blendshapes¶
You don't have to add every blendshape, just the ones you want to use.
Basic blendshapes¶
These blendshapes are the most used.
EyeBlink_LBlinking action for the left eyeEyeBlink_RBlinking action for the right eyeJawOpenOpening of the jaw
Audio blendshapes¶
These blendshapes are used when you speak.
Your eyebrows are blendshapes that react to a change in volume. They will move upwards when your voice gets louder. These include:
BrowsU_CCenter of the brow going upBrowsU_LOutside corner of the left brow going upBrowsU_LOutside corner of the right brow going up
Other audio blendshapes are randomly mixed when you speak. These include:
MouthSmile_LLeft side of the mouth lifting up to a smileMouthSmile_RRight side of the mouth lifting up to a smileLipsFunnelFunneling of the lips, as when you say “Oh!”LipsUpperCloseUpper lips rolled inwards
Eyelid offset¶
To ensure that the top of the eyelid rests on the iris, blendshapes are used to track the current position of the eye along with your head orientation.
EyeBlink_LBlinking action for the left eyeEyeBlink_RBlinking action for the right eyeEyeOpen_LOpening of left eyeEyeOpen_ROpening of right eyeBrowsD_LOutside corner of the left brow moving downBrowsD_ROutside corner of the right brow moving down
We apply a small procedural offset to the blendshape coefficients to prevent sleepy or crazy eye lids:
- If you are looking straight ahead: The
EyeBlinkandEyeOpencoefficients will be0. - If your eyes begin to look upward:
EyeBlink,EyeOpen, andBrowsUstart changing in value, reaching the values of-1,1, and0.5respectively at16.3degrees. This will have the effect of raising your lids and brows as you look upward. - If your eyes begin to look downward:
EyeBlinkandEyeOpenstart changing in value.EyeBlinkreaches a value of0.5at32degrees.EyeOpenwill reach a value of0.5at27degrees. This will have the effect of lowering your lids as you look downward.
Tweaks to your blendshapes can be made with a 3D modeling tool, or directly in your avatar’s FST file. In the FST file, blendshapes are defined with the syntax:
bs = [blendshape constant] = [your blendshape name] = [value between 0 and 1]
Here is an example of modifying your blendshapes in your FST file:
bs = BrowsU_L = head_BS_brow_up = 0.3
bs = BrowsU_C = head_BS_brow_up = 0.3
bs = BrowsU_R = head_BS_brow_up = 0.3
bs = BrowsD_R = head_BS_brow_down = 0.5
bs = BrowsD_L = head_BS_brow_down = 0.5
bs = EyeBlink_L = head_BS_L_eye_close = 1
bs = EyeBlink_R = head_BS_R_eye_close = 1
bs = EyeOpen_L = head_BS_L_eye_open = 1
bs = EyeOpen_R = head_BS_R_eye_open = 1
bs = JawOpen = JawOpen = 1
bs = MouthSmile_R = head_BS_L_smile = 0.6
bs = MouthSmile_L = head_BS_R_smile = 0.6
bs = LipsFunnel = head_BS_oo = 0.5
bs = LipsUpperClose = head_BS_mouth_down = 0.1