# Character

## Animator Controllers

**Tactical Shooter Pack** relies on Animator Controllers to apply animations:

<figure><img src="/files/KghjcwEl6BYL3d3iKZ2G" alt="" width="485"><figcaption><p>AC_TacFPS_Character controller.</p></figcaption></figure>

Let's break down each animation layer to better understand how they work.

### Idle

<figure><img src="/files/eGF4Yzzm28UCWxtHlkI3" alt="" width="272"><figcaption><p>Idle layer.</p></figcaption></figure>

This layer consists of a single state - base idle weapon pose. This is usually a static animation clip of a character holding a weapon. It's main purpose is to positiong the gun and IK bones.

### Procedural

<figure><img src="/files/gyZLr01Nyx6PA68qkNYC" alt="" width="404"><figcaption><p>Procedural layer.</p></figcaption></figure>

This layer applies general movement animations, like idle, walk, spring and jump. These clips are applied via IK, so that's why procedural layer uses a special *Avatar Mask* that mainly affects the `ik_hand_gun_additive` bone:

<figure><img src="/files/Op8SuuGKHWlS6MpbVvFo" alt="" width="361"><figcaption><p>Mask_GunAdditive Avatar Mask.</p></figcaption></figure>

{% hint style="success" %}
**Tip**: **ik\_hand\_gun\_additive** is not a native bone, it was added as an empty Game Object in Unity. To use it with your custom skeleton, just add such a Game Object to the root bone.
{% endhint %}

### Actions

<figure><img src="/files/ZblQhJpXUbwu5UMil8VA" alt="" width="512"><figcaption><p>Actions layer.</p></figcaption></figure>

This animation layer contains all weapon-specific actions, like draw/holster, reload, mag check, inspect and attachment clips.

The **Tactical Shooter Pack** plays states fom this layer in the weapon component, and once the action is over - it will blend out to the idle pose.

### PistolQuickDraw\_Additive

<figure><img src="/files/qLBmNdfKuLuexsJWqpCd" alt="" width="365"><figcaption><p>PistolQucikDraw layer.</p></figcaption></figure>

This layer implements the pistol quick draw mechanic in the pack. Simply put, it allows the player to draw a pistol while holding a weapon in the left hand.

This layer is additive, so it's applied on top of the current weapon pose smoothly. Thanks to this setup, a single animation can be used with different guns.

### PistolQuickDraw

This layer does the same job as the previous one. The only difference is that it's not additive, and it only overrides right hand fingers.

### Fire

<figure><img src="/files/0yumnFJQ5Go2NOMqd8W6" alt="" width="191"><figcaption><p>Fire layer.</p></figcaption></figure>

This layer is used to apply firing animations. It's additive, so it doesn't override the weapon pose.

## Override Controllers

**AC\_TacFPS\_Character** is a template controller, so weapons don't use it directly, but instead they use override controllers. You can find such controllers in weapon-specific animation folders: *"KINEMATION/TacticalShooterPack/Animations/".*

These are the character override controllers currently used in the asset:

1. **OC\_FP\_WK-11\_Viper**
2. **OC\_FP\_TR15**
3. **OC\_FP\_Herrington\_11-87**
4. **OC\_FP\_SRM-12**

{% hint style="success" %}
**Tip**: Such override controllers use the same naming convention -  *OC\_FP\_WeaponName*.
{% endhint %}

When a weapon is equipped, it will replace the current animator controller its custom override using this code snippet:

{% code title="TacticalShooterWeapon.cs" overflow="wrap" %}

```csharp
_characterAnimator.runtimeAnimatorController = tacWeaponSettings.characterAnimatorController;
```

{% endcode %}

## IK and Camera Bones

The Operator skeleton features special bones to drive IK and camera:

<figure><img src="/files/O3OhwadBhB7FP78Dc8mJ" alt="" width="231"><figcaption><p>Skeleton structure.</p></figcaption></figure>

Here's what bones are important in this pack:

* **ik\_hand\_root**: this is the main IK bone that positions the gun; it's main purpose is to position the gun.
* **ik\_hand\_gun**: this is the pivot IK bone that follows the ik\_hand\_root; it's used to position the gun relative to the left hand when quickly using a pistol mechanic.
* **ik\_hand\_r**: this is an IK target for the right hand.
* **ik\_hand\_l**: this is an IK target for the left hand.
* **ik\_hand\_gun\_additive**: this bone is used for general movement, like idle, walk, sprint and jump.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://kinemation.gitbook.io/tactical-shooter-pack-unity/animations/character.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
