Sansar Skeleton Skinning Details
Sansar skeleton and skinning details
This article provides detailed information on the joints of the standard Sansar skeletons and provides tips on how to best skin the skeletons when creating custom avatars and rigged clothing.
Note that exporting an avatar from Blender requires non-default export settings. See Exporting custom avatars from Blender for full details.
Avatar skeleton files
Sansar's avatar skeleton files can be found in the article: Avatar reference files.
Joint details
The following joint information is for all the joints in the full resolution skeleton. The mid and low resolution skeletons have minimal face joints and do not contain some of the listed joints below. But for those joints that do exist in the mid and low resolution skeletons, the information is still the same.
Body joints
The core animation joints. All avatar meshes should be hooked up to these joints in order for them to deform correctly when animating. Depending on the location of the mesh, only a certain subset of joints may be needed. For example, pants should only need to be skinned to all the lower body joints.
Bone Names | Bone Names |
---|---|
Central body joints
| |
Left arm joints
| Right arm joints
|
Left leg joints
| Right leg joints
|
Left finger joints
| Right finger joints
|
Face joints
Skinning to the face joints is only a requirement if you want to have animated faces. If your avatar has a mask or helmet, all these joints can be ignored and only the only the "head" joint needs to be used.
With the limit of only 4 joint influence per vertex, it becomes very complicated to do a smooth skinning spread between all the face joints. It is easiest to only skin to a subset of all the face joints.
For example, if you want a more simplified animated face such as just a flapping mouth and darting eyes, then only the "L_eye", "R_eye", and "jaw" joints need to be used.
If you want to apply facial animations, we highly recommend using the high resolution skeleton as it contains all face joints. If you are not interested in applying facial animations, the mid and low resolutions are some alternatives with less face joints.
Bone Names | Bone Names |
---|---|
Jaw Area Joints
| For a simple flappy jaw look, only the "jaw" joint working in conjunction with the "L_lip_corner" and "R_lip_corner" joints listed below are needed. |
| |
| |
Chin Area Joints
| Only fine detail meshes would need to be skinned to the chin joints. |
Mouth Area Joints
| The mouth area has the most complex setup on the face. There are fewer ways to only using a few select joints because they all depend on each other to work. If you want to forego explicit lip animation and keep to a simple flappy jaw setup, then using the "jaw" joint in conjunction with "L_lip_corner" and "R_lip_corner" should be enough. |
| |
| |
Nose Area Joints
| All these joints can be skipped if there is no need for small details such as nostril flares. |
| |
| |
Left Eye Area Joints
| If only eyeball rotation is needed, then only skin to the "L_eye" and "R_eye" joints. |
Right Eye Area Joints
| |
Forehead Area Joints
Between Eyebrow Area Joints
Left Eyebrow Area Joints
Right Eyebrow Area Joints
| The forehead and eyebrow joints cover the areas above the eyes. These joints are used when the character does expressive eyebrow motions. |
Left Cheek Area Joints
| For proper smiling animations, the cheek area joints are needed. |
Right Cheek Area Joints
| |
Ears
Tongue
| There are very few ear animations, so skipping the ear joints isn't a big deal. The tongue joints are only needed if there is a tongue in the character. |
Extra joints
These joints are not used in the default animation set that exists in Sansar's avatars, so skinning to them will not yield any results. But they can be animated for custom emotes. Example: Skinning wing meshes to the "L_wing_ATTACH" and "R_wing_ATTACH", and then flapping them in a custom emote animation.
Bone Names | |
---|---|
Chest Joints
| Not used in the default animation set, but would allow for secondary chest motion in custom emote animations. |
Toe Joints
| The toe joints aren't animated in the default animation set because it is expected that the avatars would be wearing shoes. But a custom character can be barefooted and have custom animations that makes the toes wiggle. |
Attach Joints
| Accessories would be a good use of ATTACH joints. Example: Hook up a halo to the "head_ATTACH" joint. Then during a custom emote animation, spin the halo around. In the future these ATTACH joints will be even more useful when all animations for the characters can be overwritten. |
Support joints
These support joints are only used to support the animation of the body and face joints. They do not need to be hooked up to any meshes since it is their child or related joints that should be getting all the skinning data.
Face Support Joints
L_eyelid_top
L_eyelid_bottom
R_eyelid_top
R_eyelid_bottom
Other joints
These joints are for other purposes outside of core animation and shouldn't need to have any meshes skinned to them.
Locomotion_Vector
root
L_grip
R_grip
camera_ATTACH
Skinning details
Skin bind settings
4 Max Influence
Linear Skinning Method
Skinning examples
Auto-twist Arms:
One thing to keep in mind is that when the skeleton gets imported or referenced into a 3D app, the auto-twist joints are not hooked up in a way that will look correct. But if the skinning on those joints looks similar to the examples, then they will import into the engine and look good during in-game animations.
Pelvis/Thigh Area:
What makes the pelvis and thigh area a little more complex is the glute_twist1 bone that helps with maintaining volume as the legs are rotating back and forth. That particular bone should only cover a small specific area.
Like the arms, the thighs also have an auto-twist that will help maintain a smoother look as the legs are twisting. Unlike, the arms, the thighs only require 1 twist bone.
Also like the arms, the thigh auto-twist and glute_twist1 is not hooked up during import into a 3D app. So they will not look correct until imported into the engine.
Elbow and Knee:
These support joints are solely for the purpose of helping the knee and elbow maintain better volume as the lower legs and forearms are bending.
These are also not hooked up during import into a 3D app and will require import into the engine before results can be seen.
Have more questions? Join our Discord!
Last updated