> ## 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.

# 🔸Animations

> This page explains how animations work in the CAS demo.

## Animator Controller

The base animator controller is included in the CAS package:

<Frame caption={"Base controller."}>
  <img src="https://mintcdn.com/kinemation/bY9DOuHDrQwriMA1/images/cas/ebaa6a98f81a951b3383.png?fit=max&auto=format&n=bY9DOuHDrQwriMA1&q=85&s=8c25468d94ae28451f24a5dd396f75a6" alt="" width={442} data-path="images/cas/ebaa6a98f81a951b3383.png" />
</Frame>

It's supposed to be used as a template, as it only contains empty animation states — placeholders that can be overriddent with Override Animator Controller feature.

**Generic** and **Humanoid** versions can be found in **Assets ▸ CAS Demo ▸ Animations ▸ Generic or Humanoid.**

<Info>
  **Note**: Generic animations are only compatible with the Kinemation Mannequin (**KINEMATION ▸ Shared ▸ Character**).
</Info>

<Frame caption={"Animation Layers."}>
  <img src="https://mintcdn.com/kinemation/nSDKyNrRREbGib1F/images/cas/6ffa037143721edae5f3.png?fit=max&auto=format&n=nSDKyNrRREbGib1F&q=85&s=222f89d4fdb041741ce8aecb220c021b" alt="" width={270} data-path="images/cas/6ffa037143721edae5f3.png" />
</Frame>

The controller consists of 5 main animation layers.

#### Curves

This layer sets curve blending properties to default values:

<img src="https://mintcdn.com/kinemation/JeFzhKqzivzKAwnI/images/cas/5e92aeb4a2767d4865c6.png?fit=max&auto=format&n=JeFzhKqzivzKAwnI&q=85&s=1184e458d05dd2845a39033ff610f583" alt="" width={325} data-path="images/cas/5e92aeb4a2767d4865c6.png" />

It contains only a single state — **Curves\_Default**. This Animation Clip contains bindings for all blending parameters, which are set to zeroes by default:

<img src="https://mintcdn.com/kinemation/JeFzhKqzivzKAwnI/images/cas/354bfe4dccf986a22553.png?fit=max&auto=format&n=JeFzhKqzivzKAwnI&q=85&s=a7658d39e2b7d304def8d5f9d798c889" alt="" width={375} data-path="images/cas/354bfe4dccf986a22553.png" />

<Info>
  **Tip**: This layer is crucial to avoid lingering blending properties at runtime, which may result in jittering issues. Read more about it [here](/cas/core/layered-blending#blending-parameters).
</Info>

#### Stance

This layer blends between standing and crouching states.

<Frame caption={"Stances."}>
  <img src="https://mintcdn.com/kinemation/zfSCxGML5W5QOyC1/images/cas/bc1c81ab702e03c7fd07.png?fit=max&auto=format&n=zfSCxGML5W5QOyC1&q=85&s=7ae0091cf4c3c268842520d6de3ef841" alt="" width={260} data-path="images/cas/bc1c81ab702e03c7fd07.png" />
</Frame>

These are empty states, which are only used to animate the **CrouchWeight** value using the [**SetFloat**](/cas/modifiers/state-behaviours#set-float) component.

<img src="https://mintcdn.com/kinemation/JeFzhKqzivzKAwnI/images/cas/4b5b355a0a547627fb00.png?fit=max&auto=format&n=JeFzhKqzivzKAwnI&q=85&s=1d5f2c5c0dcdaab640fcf901d98c82a8" alt="" width={563} data-path="images/cas/4b5b355a0a547627fb00.png" />

<Info>
  **Tip**: The **CrouchWeight** is an Animator float parameter that is used to blend between standing and crouched character movement.
</Info>

#### Locomotion

This layer applies full-body animations, like idle, jogging, sprinting and jumping.

<Frame caption={"Locomotion."}>
  <img src="https://mintcdn.com/kinemation/bY9DOuHDrQwriMA1/images/cas/e34b927b639d612d2686.png?fit=max&auto=format&n=bY9DOuHDrQwriMA1&q=85&s=b00617c7da907d80f8dc8f08a15c3f0c" alt="" width={496} data-path="images/cas/e34b927b639d612d2686.png" />
</Frame>

**Grounded** is a blend tree that blends between different stance and movement animations.

#### Turn In Place

This layer triggered procedural steps when turning left or right.

<Frame caption={"Turn in place states."}>
  <img src="https://mintcdn.com/kinemation/JeFzhKqzivzKAwnI/images/cas/465e2e4b8e7f3ab02146.png?fit=max&auto=format&n=JeFzhKqzivzKAwnI&q=85&s=06cc38ed483bea24ab18c1b353d650a7" alt="" width={495} data-path="images/cas/465e2e4b8e7f3ab02146.png" />
</Frame>

**TurnRight** and **TurnLeft** are empty states by default. It's possible to override them with turning animations. Instead, CAS uses [**Play Step**](/cas/modifiers/state-behaviours#play-step) behaviours to play procedural steps when turning:

<img src="https://mintcdn.com/kinemation/nSDKyNrRREbGib1F/images/cas/9df4c97dab27864689ec.png?fit=max&auto=format&n=nSDKyNrRREbGib1F&q=85&s=6d71b9a83d088ff90d77da41f98172fd" alt="" width={563} data-path="images/cas/9df4c97dab27864689ec.png" />

#### Interactions

This last layer is reserved for full-body interaction animations, like climbing or pulling a lever:

<Frame caption={"Interaction states."}>
  <img src="https://mintcdn.com/kinemation/nSDKyNrRREbGib1F/images/cas/62ba76bfe42e607e6e4f.png?fit=max&auto=format&n=nSDKyNrRREbGib1F&q=85&s=5966c42ad87041f8510df48529a797a0" alt="" width={563} data-path="images/cas/62ba76bfe42e607e6e4f.png" />
</Frame>

The default state is empty, because all interaction clips are triggered from code using the CrossFade function. Interactions automatically blend out to the empty state upon completion.

<Frame caption={"Interaction transition parameters."}>
  <img src="https://mintcdn.com/kinemation/nSDKyNrRREbGib1F/images/cas/784286e9a07e0e6d2330.png?fit=max&auto=format&n=nSDKyNrRREbGib1F&q=85&s=e48c1f1909a176602b419d8d98ac0c85" alt="" width={312} data-path="images/cas/784286e9a07e0e6d2330.png" />
</Frame>
