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

> This section explains how the character is animated.

## How it's animated

All animations target the **UE5 Mannequin** skeleton and rely on Epic’s IK bone set:

<Frame caption={"IK Bones"}>
  <img src="https://mintcdn.com/kinemation/2P0DGfZe1PbAUTxl/images/tactical-shooter-pack/unreal/93b0311c88bfd67a3edd.png?fit=max&auto=format&n=2P0DGfZe1PbAUTxl&q=85&s=f9842ab19427f6d40620c177cd5c1705" alt="" width={233} data-path="images/tactical-shooter-pack/unreal/93b0311c88bfd67a3edd.png" />
</Frame>

* **ik\_hand\_gun** drives weapon movement..

* **ik\_hand\_r** contains right‑hand animation data.

* **ik\_hand\_l** contains left‑hand animation data.

The setup also uses **Virtual Bones (VBs)** for procedural animation:

<Frame caption={"Virtual Bone setup."}>
  <img src="https://mintcdn.com/kinemation/2P0DGfZe1PbAUTxl/images/tactical-shooter-pack/unreal/6dfa1651abe614348978.png?fit=max&auto=format&n=2P0DGfZe1PbAUTxl&q=85&s=d7f795923c5978b205a173655aba17ad" alt="" width={202} data-path="images/tactical-shooter-pack/unreal/6dfa1651abe614348978.png" />
</Frame>

* **VB ik\_hand\_gun** (targets **ik\_hand\_gun**): Used to position the pistol during quick draw so the **sidearm** is correctly placed relative to the **right hand**.

* **VB ik\_hand\_gun\_pivot** (targets **ik\_hand\_gun**): All weapons are attached to this bone.

* **VB hand\_r/l** (targets **hand\_r/l**): IK targets for the right/left hand.

* **VB lowerarm\_r/l** (targets **lowerarm\_r/l**): Hint/pole targets for the right/left arm.

* **VB recoil\_hand\_r** (targets **root**): Preserves right‑hand recoil when holding a pistol one‑handed.

* **VB ik\_hand\_gun\_pose** (targets **root**): Used to compute the aiming pose.

<Tip>
  **Tip**: Weapons are not parented to the right hand; they attach to **VB ik\_hand\_gun\_pivot**. This bone is blended in the Animation Blueprints so the final pose looks correct.
</Tip>

## Animation Blueprints

The pack uses modular **Animation Blueprints**:

<Frame caption={"Animation Blueprints used in the pack."}>
  <img src="https://mintcdn.com/kinemation/2P0DGfZe1PbAUTxl/images/tactical-shooter-pack/unreal/e413ca126f4913d4d287.png?fit=max&auto=format&n=2P0DGfZe1PbAUTxl&q=85&s=13341d0a66d4d1fd1940bc792004a44e" alt="" width={394} data-path="images/tactical-shooter-pack/unreal/e413ca126f4913d4d287.png" />
</Frame>

### ABP\_TacticalShooter\_UE5

This is the main Animation Blueprint; it incorporates the other animation assets. Here’s how it works:

#### Base character pose

<Frame caption={"Base pose."}>
  <img src="https://mintcdn.com/kinemation/2P0DGfZe1PbAUTxl/images/tactical-shooter-pack/unreal/4d4487302edc0c1b1259.png?fit=max&auto=format&n=2P0DGfZe1PbAUTxl&q=85&s=06cd2cd12b19e1b3836604bbf161e398" alt="" width={563} data-path="images/tactical-shooter-pack/unreal/4d4487302edc0c1b1259.png" />
</Frame>

The base combines a static idle **Anim Sequence** with the main **Anim Montage** (**DefaultSlot**).

#### Curve-based animations

<Frame caption={"Procedural movement graph."}>
  <img src="https://mintcdn.com/kinemation/2P0DGfZe1PbAUTxl/images/tactical-shooter-pack/unreal/887fa847d4689f2b06da.png?fit=max&auto=format&n=2P0DGfZe1PbAUTxl&q=85&s=76b1f221ff2148ab55f0db9f0d875b27" alt="" width={978} data-path="images/tactical-shooter-pack/unreal/887fa847d4689f2b06da.png" />
</Frame>

General movement (idle, walk, sprint, jump) is curve‑driven and procedural, applied primarily via **Apply Additive** nodes.

The **Grounded** and **InAir** states provide animation curves such as:

* **IK\_X**/**Y**/**Z**: position.

* **IK\_Pitch**/**Yaw**/**Roll**: rotation.

* **Camera Pitch**/**Yaw**/**Roll**: camera animation.

These curves are layered on top of the base pose. Finally, we blend **curve values** (not poses) using a helper bone:

<Frame caption={"Procedural movement blending."}>
  <img src="https://mintcdn.com/kinemation/2P0DGfZe1PbAUTxl/images/tactical-shooter-pack/unreal/303a85334d8c7037c790.png?fit=max&auto=format&n=2P0DGfZe1PbAUTxl&q=85&s=0c47b80a986fedb229a3fcf414281480" alt="" width={1083} data-path="images/tactical-shooter-pack/unreal/303a85334d8c7037c790.png" />
</Frame>

**VB Curves** is a dummy bone used solely to blend curve values - not to animate a pose.

#### Pistol quick draw

This layer applies quick‑draw and holster animations additively on top of the character pose:

<Frame caption={"Pistol Quick Draw layer."}>
  <img src="https://mintcdn.com/kinemation/-AzWoLR_QWINVM-e/images/tactical-shooter-pack/unreal/039b7f2ef14b96955924.png?fit=max&auto=format&n=-AzWoLR_QWINVM-e&q=85&s=c0bd5097d88cea25b1ad442d07d452c5" alt="" width={231} data-path="images/tactical-shooter-pack/unreal/039b7f2ef14b96955924.png" />
</Frame>

Computes an additive pose per weapon, letting a single animation work across different poses.

<Tip>
  **Tip**: Originally authored for **TR15**, but reused across weapons via this layer.Left hand actions
</Tip>

Apply left‑hand actions (e.g., take an item, push a door):

<Frame caption={"Left Hand Actions layer."}>
  <img src="https://mintcdn.com/kinemation/2P0DGfZe1PbAUTxl/images/tactical-shooter-pack/unreal/d2570267bdf353af770e.png?fit=max&auto=format&n=2P0DGfZe1PbAUTxl&q=85&s=4b87154f47e83247158e122f9bd5ee79" alt="" width={160} data-path="images/tactical-shooter-pack/unreal/d2570267bdf353af770e.png" />
</Frame>

#### Finger firing motion

Animate the right index finger while firing:

<Frame caption={"Finger firing motion."}>
  <img src="https://mintcdn.com/kinemation/2P0DGfZe1PbAUTxl/images/tactical-shooter-pack/unreal/5ca8e8f7d212fd63de62.png?fit=max&auto=format&n=2P0DGfZe1PbAUTxl&q=85&s=67ae2896cfad21333c4082d93a7381a0" alt="" width={467} data-path="images/tactical-shooter-pack/unreal/5ca8e8f7d212fd63de62.png" />
</Frame>

A float smoothly interpolates to **1** while firing to rotate the finger, then returns to **0** afterward.

### ABP\_IK\_Pose

Positions the weapon and hands before the main procedural pass. It works in stages:

#### VB ik\_hand\_gun\_r

First, override **VB ik\_hand\_gun\_r** with the base idle pose when quick‑draw is enabled:

<Frame caption={"VB ik_hand_gun_r override."}>
  <img src="https://mintcdn.com/kinemation/2P0DGfZe1PbAUTxl/images/tactical-shooter-pack/unreal/7ed7a69095433e435093.png?fit=max&auto=format&n=2P0DGfZe1PbAUTxl&q=85&s=93e1f275b7b2916c41a96b9b256375d2" alt="" width={563} data-path="images/tactical-shooter-pack/unreal/7ed7a69095433e435093.png" />
</Frame>

This is important for positioning the pistol properly.

#### Copying the animation data

Copy the animation data from real bones to VBs. This lets us apply IK additively instead of **overriding** and breaking the pose:

<Frame caption={"Copying the animation data."}>
  <img src="https://mintcdn.com/kinemation/gs-VS6eri6gRdFbg/images/tactical-shooter-pack/unreal/fc2b4b12ba254ef71749.png?fit=max&auto=format&n=gs-VS6eri6gRdFbg&q=85&s=0702a5520b84745672c641131fa48cba" alt="" width={482} data-path="images/tactical-shooter-pack/unreal/fc2b4b12ba254ef71749.png" />
</Frame>

Then override **VB hand\_r** and **VB hand\_l** with the current grip pose:

<Frame caption={"Left hand pose override."}>
  <img src="https://mintcdn.com/kinemation/gs-VS6eri6gRdFbg/images/tactical-shooter-pack/unreal/f73d45473e80db9c0b19.png?fit=max&auto=format&n=gs-VS6eri6gRdFbg&q=85&s=5e5fb1970c6eb42949eb0685999e1c02" alt="" width={1256} data-path="images/tactical-shooter-pack/unreal/f73d45473e80db9c0b19.png" />
</Frame>

By default, all weapons attach the left hand to the gun. You can smoothly disable this via a curve - for example, many animations **do this** to let the left hand move freely:

<Frame caption={"Mask_Grip can disable the left‑hand attachment."}>
  <img src="https://mintcdn.com/kinemation/2P0DGfZe1PbAUTxl/images/tactical-shooter-pack/unreal/855d709b09b3c257b94d.png?fit=max&auto=format&n=2P0DGfZe1PbAUTxl&q=85&s=935464a3868776e57dfebf6e3a57210c" alt="" width={337} data-path="images/tactical-shooter-pack/unreal/855d709b09b3c257b94d.png" />
</Frame>

#### Offsets

Finally, apply **FTransform** offsets to all IK bones.

### ABP\_IK\_Ads

Applies procedural aiming in two steps:

1. Snap the weapon to the camera socket.

2. Apply the **Aim Point** local transform.

Note: The **FPCamera** socket is attached to **neck\_02**:

<Frame caption={"Camera socket."}>
  <img src="https://mintcdn.com/kinemation/gs-VS6eri6gRdFbg/images/tactical-shooter-pack/unreal/f389af034687306d47fe.png?fit=max&auto=format&n=gs-VS6eri6gRdFbg&q=85&s=25746b0a421d5947eac398966e96a958" alt="" width={199} data-path="images/tactical-shooter-pack/unreal/f389af034687306d47fe.png" />
</Frame>

### ABP\_IK\_Sway

Applies aiming and movement sway to **VB ik\_hand\_gun**. Sway is computed in **AC\_TacticalShooterAnimation**; this layer simply **retrieves** the **FTransform** and applies it to the bone:

<Frame caption={"Sway layer."}>
  <img src="https://mintcdn.com/kinemation/2P0DGfZe1PbAUTxl/images/tactical-shooter-pack/unreal/c590c6bfc251b9a2bc68.png?fit=max&auto=format&n=2P0DGfZe1PbAUTxl&q=85&s=5c53ca093c5afd13f7be95cb802acc06" alt="" width={563} data-path="images/tactical-shooter-pack/unreal/c590c6bfc251b9a2bc68.png" />
</Frame>

### ABP\_IK\_Main

The final Animation Blueprint, responsible for:

1. Recoil

2. IK Motions

3. Leaning and Aim Offset

4. IK

5. Hiding the head bone

#### Recoil

<Frame caption={"How recoil is applied."}>
  <img src="https://mintcdn.com/kinemation/2P0DGfZe1PbAUTxl/images/tactical-shooter-pack/unreal/90ee848f8d6f78358666.png?fit=max&auto=format&n=2P0DGfZe1PbAUTxl&q=85&s=1ce271e0dc5b4188655fabf482a43c25" alt="" width={563} data-path="images/tactical-shooter-pack/unreal/90ee848f8d6f78358666.png" />
</Frame>

Recoil animation values are **retrieved** from the **Recoil Animation** component and applied via **Transform (Modify) Bone**. We preserve the right‑hand pose before applying recoil (needed for pistol quick draw).

#### IK Motions

<Frame caption={"Additive motions"}>
  <img src="https://mintcdn.com/kinemation/2P0DGfZe1PbAUTxl/images/tactical-shooter-pack/unreal/bb3886283d228f60e9f7.png?fit=max&auto=format&n=2P0DGfZe1PbAUTxl&q=85&s=87d2a5d5a92de284ccf475d079ca6e7f" alt="" width={481} data-path="images/tactical-shooter-pack/unreal/bb3886283d228f60e9f7.png" />
</Frame>

IK Motions are applied similarly to recoil. Motions include aiming and fire‑mode transitions ("boop"/"jiggle" animations).

#### Leaning

Leaning distributes the angle evenly across spine bones:

<Frame caption={"Leaning rotation."}>
  <img src="https://mintcdn.com/kinemation/2P0DGfZe1PbAUTxl/images/tactical-shooter-pack/unreal/d69877c5132ea99074b5.png?fit=max&auto=format&n=2P0DGfZe1PbAUTxl&q=85&s=06675d821944d0b5145ab4fd1241985a" alt="" width={296} data-path="images/tactical-shooter-pack/unreal/d69877c5132ea99074b5.png" />
</Frame>

#### Curve-based animations

Movement (idle, walk, sprint, jumping) is applied directly to **VB ik\_hand\_gun**:

<Frame caption={"Curve-based animations."}>
  <img src="https://mintcdn.com/kinemation/2P0DGfZe1PbAUTxl/images/tactical-shooter-pack/unreal/b41f61968975b39eeb60.png?fit=max&auto=format&n=2P0DGfZe1PbAUTxl&q=85&s=0326d99ce82d205ee18f08ce39d1fbb4" alt="" width={512} data-path="images/tactical-shooter-pack/unreal/b41f61968975b39eeb60.png" />
</Frame>

Curve values (**IK\_X/Y/Z**, **IK\_Pitch/Yaw/Roll**) are **retrieved** here and plugged into the respective translation and rotation axes.

#### Aim Offset

Like leaning, **Pitch** is applied across spine bones to make the character look up and down:

<Frame caption={"Spine bone rotation."}>
  <img src="https://mintcdn.com/kinemation/2P0DGfZe1PbAUTxl/images/tactical-shooter-pack/unreal/8ea4b8d45ea074fa08b9.png?fit=max&auto=format&n=2P0DGfZe1PbAUTxl&q=85&s=e11946082f4e5d45a4dded2ed85e3858" alt="" width={380} data-path="images/tactical-shooter-pack/unreal/8ea4b8d45ea074fa08b9.png" />
</Frame>

#### IK and head bone

Finally, **Two‑Bone IK** nodes apply IK using **VB hand\_r** and **VB hand\_l** as targets. We also scale the head bone to zero if `HideHeadMesh` is **true**:

<Frame caption={"Final steps."}>
  <img src="https://mintcdn.com/kinemation/2P0DGfZe1PbAUTxl/images/tactical-shooter-pack/unreal/2cda92a3aba50ff70cdc.png?fit=max&auto=format&n=2P0DGfZe1PbAUTxl&q=85&s=096aeab12ecacebc49d55db27f5d9eeb" alt="" width={523} data-path="images/tactical-shooter-pack/unreal/2cda92a3aba50ff70cdc.png" />
</Frame>
