Sansar Docs
  • 🚀Welcome to Sansar
  • 📚GLOSSARY
  • 🎏Patch Notes
  • 😇Work in Progress
  • ⚠️Creative Commons License
  • Support
    • General Troubleshooting
      • General FAQ
      • The Sansar Cache
      • The Sansar Log
    • Contact Support
  • Sansar Basics
    • Installation And Compatibility
      • Installing Sansar
      • System Requirements
      • Sansar Compatibility FAQ
      • Sansar on Mac
      • Body Tracking Vive
      • Configuring Firewalls
    • Account Management
      • Account Set Up
      • Avatar Name and ID
      • Adding Payment Method
      • Discord FAQ
      • Steam Integration
      • Subscription FAQ
    • Controls
      • Avatar Hand Gestures in VR
      • FreeCam and CineCam
      • Game Controller Buttons
      • HTC VIVE controls
      • Keyboard Shortcuts for Editing a Scene
      • Keyboard Shortcuts for Styling Your Avatar
      • Keyboard Shortcuts for Visiting an Experience
      • Mouselook Mode
      • Oculus Rift Controls
      • Vive Index Controls
    • Settings
      • General Settings
    • VR Settings
      • VR Settings Menu
      • Calibrating Height in VR
  • Exploring in Sansar
    • Navigate and Explore
      • The Codex
      • Instances
      • Interactive objects
      • The Main Menu
      • The Nexus
      • Portals
      • Quests
      • Quick Start: Exploring in Sansar
    • Socialize And Connect
      • Chat Panel
      • Experience Points, Levels, and Titles.
      • Finding People in Sansar
      • Identifying Interacting With Avatars
      • The People panel
      • User profiles
    • Attending events
      • Deploying Unpublished Event to Event World
      • Adding Events to Your Calendar
      • Attending Events in Sansar
      • Avatar Broadcasting FAQ
      • Creating Your Own Events
      • Redemption Codes
      • Tipping
    • Share Content
      • Streaming Sansar
      • Taking a photo
  • Avatar Creation
    • Avatar Basics
      • Avatar 2.0 FAQ
      • Customizing Your Avatar
      • Avatar Emotes
      • The Avatar Editor
    • Dressing The Avatar
      • Fitting Designer Clothing to your Avatar
      • Setting Custom Emotes
      • Wearing Accessories
      • Wearing Rigged Clothing
    • Managing Avatar Items
      • Importing Avatar-Related Items
      • Editing an inventory item's name
      • Editing an inventory item's image
      • Deleting avatar looks from your inventory
      • Importing a custom emote animation
      • Managing your avatar looks inventory items
    • Avatar Resources
      • Avatar Reference Files
      • Blender - Avatar files
      • Blender - Using Decimate Tool
      • Exporting Custom Avatars From Blender
      • Sansar Skeleton Skinning Details
      • Using Animation Skeleton
  • Creating In Sansar
    • Importing Things to Sansar
      • Supported file types
      • AABB Bounding Box and Item Restrictions
      • Importing Audio
      • Importing a Custom Avatar
      • Importing World Items
      • Importing Collision Volumes
      • Importing Accessories
      • Importing Clothing
      • Importing Emotes
      • Importing Hair
      • Importing Custom Scripts
      • Importing a Skybox
      • Troubleshooting Import Errors
    • Shaders and Materials
      • Shaders Information
      • Materials Information
      • VAT Shader Guides
        • VAT Shader Basics
        • VAT Technical Info
      • Displacement Guides
        • Simple Displacement
        • Advanced Displacement
    • Marvelous Designer Info
      • Marvelous Designer Integration
      • Marvelous Designer Creator Resources
      • Marvelous Import and Export
      • MD Limitations
    • Shader Scripting
    • Materials editing and shaders
    • Creator Tools
      • Creating a World
      • Creating Quests
      • Diagnostics Toolbar
      • Importing Items to Sansar
      • My Worlds Panel
    • Managing Worlds
      • Quick start: Creating experiences in Sansar
      • Deleting an experience or scene
      • Deploying a new scene to an existing experience
      • Editing a scene
      • Experience memos
      • Linking A Scene To A World
      • Managing your scenes and worlds
      • Moderation Tools for World Owners
      • Publishing Options for Your Experiences
      • Renaming a scene
      • Saving and Building A Scene
      • Sharing Your Experiences
      • Visiting your own experience
    • Part Of The World Editor
      • Object Stats Toolbar
      • Object Components
      • Parenting objects
      • Scene Item Inventory
      • Scene Objects Panel
      • Collision Volumes
      • Scene Settings
      • System objects
      • Object Motion Types
    • Working With Scripts
      • Working With Scripts
      • Working With Trigger Volume
      • Referencing Scene Components
      • Intro to Scripting in Sansar
      • Using the Script Console
      • Setting Script Parameters
      • Adding Scripts to an Object
      • Configuring Teleport Scripts
      • Simple Script User Guide
    • Working With Audio and Video
      • Working With Audio
      • Creating Media surface
      • Streaming Web Audio
      • Audio Emitter
      • Sansar Audio FAQ
      • Using Media Streams
      • Ambisonic Sounds
      • High Quality Spacial Audio
      • Audio Resource - Room Tones
      • Previewing Audio and Video in a Scene
      • Using Audio Materials
    • Working With Lights
      • Working With Lights
      • Light Types
      • Global Illumination
  • Sansar Store
    • Using the Sansar Store
      • The Sansar Store
      • Buying Items From The Store
      • Redelivering Lost Purchases
    • Buying and Selling Sansar Dollars
      • Gifting Sansar Dollars
      • Buying Sansar Dollars
      • Converting Sansar Dollars
      • Processing US Dollar Credit
    • Selling Your Content
      • Hidden Store Listings
      • Selling Items in Sansar Store
      • Selling Items in an Experience
      • Allowing Resale Of Items
      • Buyers Permissions
  • Guidelines and Moderation
    • Guidelines and Policies
      • Terms of service
      • Sansar's Discord Server Rules
      • Community Standards
      • Content Guidelines
      • World Publishing Guidelines
      • Store Listing Guidelines
      • Store Banner Guidelines
      • Event Guidelines
      • Privacy Policy
      • Sansar Freeware License Agreement
      • Intellectual Property Infringement Notification
      • Cookie Policy
    • Moderation and Reporting
      • Abuse and Griefing
      • Blocking Avatars
      • Muting Avatars
      • Reporting abuse
      • Reporting issues and bugs
      • Security issues
  • Script API Docs
    • General Information
      • External Script Repository's
      • Sansar Script API
      • Script API Updates
      • Restricted API's
    • Example Scripts
      • Example Scripts in Sansar
      • Cannonball
      • Follow The Path
      • Random Movement
      • Reflective Detector
      • Simple Script
      • Sound Randomizer
      • Stats Example
      • Teleport Hotkeys
      • Visitor Tracker
      • Mover Examples
    • Sansar Namespace
      • Namespace
      • Color
      • Mathf
      • Quarterion
      • Vector
      • Vector Extensions
    • Sansar.Script Namespace
      • AddEntryAttribute
      • CancelData
      • ComponentID
      • CoroutineException
      • Default Attributes
      • Editor Visible Attribute
      • Entries Attribute
      • Event Data
      • ICoroutine
      • IEvent Subscription
      • Instance Interface
      • Locked Attribute
      • Log
      • MaxEntriesAttribute
      • Memory
      • MinEntriesAttribute
      • NonReflectiveAttribute
      • ObjectID
      • OperationCompleteEvent
      • RangeAttribute
      • Reflective
      • Script.Base
      • Script Event Data
      • Script Handle
      • ScriptID
      • SessionID
      • Simple Script Event Data
      • ThrottleException
      • Timer
      • Tooltip Attribute
    • MetaData Namespace
      • Assembly MetaData
      • Script MetaData
    • Sansar Script Testing Namespace
      • Assertion Failure Exception
      • Assertions
    • Sansar Utility Namespace
      • GenericEnumerable <T>
      • GenericEnumerable<T>.GetItem
      • JSON Serialization Data
      • JSON Serialization Data 1
      • JSON Serializer
      • JSON Serializer Options
    • Sansar Simulation Namespace
      • Agent Info
      • Animation
      • Audio Component
      • Camera Control Mode
      • Character Tracker
      • Chat
      • Client
      • Cluster
      • Command Action and Data
      • Component Type
      • Control Point Type
      • Held Object
      • HTTP
      • Interaction
      • Light
      • Media Action
      • Mesh Component
      • Modal Dialogue
      • Move Mode and Mover
      • Objective
      • PlayHandle
      • PlaySettings
      • PlayStatus
      • Quest
      • RayCastHit
      • Rigid Body
      • Scene
      • Scene Public
      • Simple Script
      • Sit Event Type
      • Sit Object Data
      • Sound Resource
      • Stream Channel
      • Tutorial Hint
      • UI
      • User Data
Powered by GitBook
On this page
  • Sansar skeleton and skinning details
  • Avatar skeleton files
  • Joint details
  • Body joints
  • Face joints
  • Extra joints
  • Support joints
  • Other joints
  • Skinning details
  • Skin bind settings
  • Skinning examples
  1. Avatar Creation
  2. Avatar Resources

Sansar Skeleton Skinning Details

PreviousExporting Custom Avatars From BlenderNextUsing Animation Skeleton

Last updated 8 months ago

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 and

Note that exporting an avatar from Blender requires non-default export settings. See for full details.

Avatar skeleton files

Sansar's avatar skeleton files can be found in the article: .

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

  • pelvis

  • spine1

  • spine2

  • spine3

  • neck

  • head

  • L_clavicle

  • R_clavicle

Left arm joints

  • L_shoulder

  • L_elbow

  • L_wrist

  • L_shoulder_twist1

  • L_shoulder_twist2

  • L_wrist_twist1

  • L_wrist_twist2

  • L_olecranon_twist1

Right arm joints

  • R_shoulder

  • R_elbow

  • R_wrist

  • R_shoulder_twist1

  • R_shoulder_twist2

  • R_wrist_twist1

  • R_wrist_twist2

  • R_olecranon_twist1

Left leg joints

  • L_hip

  • L_knee

  • L_ankle

  • L_ball

  • L_hip_twist1

  • L_glute_twist1

  • L_kneecap_twist1

Right leg joints

  • R_hip

  • R_knee

  • R_ankle

  • R_ball

  • R_hip_twist1

  • R_glute_twist1

  • R_kneecap_twist1

Left finger joints

  • L_index_01

  • L_index_02

  • L_index_03

  • L_middle_01

  • L_middle_02

  • L_middle_03

  • L_pinky_00

  • L_pinky_01

  • L_pinky_02

  • L_pinky_03

  • L_ring_01

  • L_ring_02

  • L_ring_03

  • L_thumb_01

  • L_thumb_02

  • L_thumb_03

Right finger joints

  • R_index_01

  • R_index_02

  • R_index_03

  • R_middle_01

  • R_middle_02

  • R_middle_03

  • R_pinky_00

  • R_pinky_01

  • R_pinky_02

  • R_pinky_03

  • R_ring_01

  • R_ring_02

  • R_ring_03

  • R_thumb_01

  • R_thumb_02

  • R_thumb_03

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

  • jaw

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.

  • L_jawline01

  • L_jawline02

  • R_jawline01

  • R_jawline02

Chin Area Joints

  • chin

  • chin_under

Only fine detail meshes would need to be skinned to the chin joints.

Mouth Area Joints

  • lip_upper_center

  • lip_lower_center

  • lip_under

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.

  • L_lip_upper_mid01

  • L_lip_upper_mid02

  • L_lip_lower_mid01

  • L_lip_lower_mid02

  • L_lip_corner

  • R_lip_upper_mid01

  • R_lip_upper_mid02

  • R_lip_lower_mid01

  • R_lip_lower_mid02

  • R_lip_corner

Nose Area Joints

  • nose_base

  • nose_bridge

All these joints can be skipped if there is no need for small details such as nostril flares.

  • L_nasalis

  • L_nostril

  • R_nasalis

  • R_nostril

Left Eye Area Joints

  • L_eye

  • L_eyelid_upper01

  • L_eyelid_upper02

  • L_eyelid_lower01

  • L_eyelid_lower02

  • L_eyelid_corner_inner

  • L_eyelid_corner_outer

  • L_eye_upper

  • L_eye_lower

  • L_eye_lateral

If only eyeball rotation is needed, then only skin to the "L_eye" and "R_eye" joints.

Right Eye Area Joints

  • R_eye

  • R_eyelid_upper01

  • R_eyelid_upper02

  • R_eyelid_lower01

  • R_eyelid_lower02

  • R_eyelid_corner_inner

  • R_eyelid_corner_outer

  • R_eye_upper

  • R_eye_lower

  • R_eye_latera

Forehead Area Joints

  • forehead_center

  • L_forehead

  • R_forehead

Between Eyebrow Area Joints

  • procerus

Left Eyebrow Area Joints

  • L_brow_inner

  • L_brow_mid

  • L_brow_outer

Right Eyebrow Area Joints

  • R_brow_inner

  • R_brow_mid

  • R_brow_outer

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

  • L_cheek

  • L_levatorLabii

  • L_risorius02

For proper smiling animations, the cheek area joints are needed.

Right Cheek Area Joints

  • R_cheek

  • R_levatorLabii

  • R_risorius02

Ears

  • L_ear

  • R_ear

Tongue

  • tongue01

  • tongue02

  • tongue03

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

  • L_chest

  • R_chest

Not used in the default animation set, but would allow for secondary chest motion in custom emote animations.

Toe Joints

  • L_bigToe_01

  • L_indexToe_01

  • L_middleToe_01

  • L_ringToe_01

  • L_pinkyToe_01

  • R_bigToe_01

  • R_indexToe_01

  • R_middleToe_01

  • R_ringToe_01

  • R_pinkyToe_01

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

  • world_ATTACH

  • locomotion_ATTACH

  • pelvis_ATTACH

  • L_thigh_ATTACH

  • R_thigh_ATTACH

  • head_ATTACH

  • L_forearm_ATTACH

  • R_forearm_ATTACH

  • L_shoulder_ATTACH

  • R_shoulder_ATTACH

  • spine3_ATTACH

  • L_wing_ATTACH

  • R_wing_ATTACH

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

custom avatars
rigged clothing.
Exporting custom avatars from Blender
Avatar reference files
Discord!