> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kinemation.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# 🔹Character Skeleton

> In this section you will learn how the skeleton hierarchy is stored and used in CAS.

## Component

**Character Skeleton** is used to store bone hierarchy and get bone references at runtime:

<Frame caption={"Character Skeleton component."}>
  <img src="https://mintcdn.com/kinemation/JeFzhKqzivzKAwnI/images/cas/02e66154565d55a349ee.png?fit=max&auto=format&n=JeFzhKqzivzKAwnI&q=85&s=3992921cc8fc92d26390c1b269a58a71" alt="" width={377} data-path="images/cas/02e66154565d55a349ee.png" />
</Frame>

* **Skeleton** is a list of all bone transforms.

* **Skeleton Bone Chains** lists auto-generated bone chains for different parts of the body.

<Tip>
  **Tip**: To update the hierarchy, click the "Update Skeleton" button and apply changes to the prefab.
</Tip>

This component is added to the root bone (e.g., root, armature, skeleton, etc.)m and it's used by Animation Modifiers and Layered Blending to select bones in the editor.

## IRigProvider

This simple interface plays a crucial role in editor bone selection:

**KRigElement** is a struct that has 2 fields:

* name (string).

* index (int).

* depth (int).

It implements a custom drawer that tries to get a Rig Provider from the parent. For example, Procedural Animation Settings asset has a reference to the Character Prefab. When a bone is picked, it will try to get the Character Skeleton component and return the array of rig elements.

### API Reference

<Accordion title="Properties">
  [](#properties)
</Accordion>

<Accordion title="Methods">
  [](#methods)
</Accordion>
