# Character

## Skeleton

The **FPS Animation Pack** provides animations for both UE4 and UE5 Mannequin Skeletons, which use identical setups for sockets and Virtual Bones:

* **VB ik\_hand\_gun\_l** (targets ik\_hand\_gun): defines weapon base pose relative to the left hand.
* **VB ik\_hand\_gun\_r** (targets ik\_hand\_gun): defines weapon base pose relative to the right hand.
* **VB ik\_hand\_gun** (targets ik\_hand\_gun): weapon parent bone.
  * **VB hand\_r** (targets hand\_r): right-hand IK bone.
    * **VB elbow\_r** (targets lowerarm\_r): right-hand pole target.
  * **VB hand\_l** (targets hand\_l): left-hand IK bone.
    * **VB elbow\_l** (targets lowerarm\_l): left-hand pole target.
* **VB ik\_hand\_gun\_pose** (targets ik\_hand\_gun): weapon aiming pose.
* **VB Curves** (targets root): empty bone, used for blending animation curve values.
* **FP Camera** (targets root): camera parent socket.

The weapon movement is baked into the **ik\_hand\_gun** bone, so the gun is not parented to the right or left hand.

## Blueprints

There are 5 main animation blueprints used in the project:

1. **ABP\_Viewmodel**: main blueprint that includes everything else.
2. **ABP\_IK\_Pose**: controls first-person view pose.
3. **ABP\_Ads**: applies procedural aiming.
4. **ABP\_IK\_Animation**: applies procedural animations.
5. **ABP\_Movement**: blends movement states, like idle, walking, sprinting, and tac sprinting.

<figure><img src="/files/4yfZdw5llOlSfA510BdV" alt="" width="422"><figcaption><p>Animation blueprints.</p></figcaption></figure>

All ABPs, except for the **Viewmodel**, are fully modular with all properties exposed. They do not depend on the package API:

<figure><img src="/files/z5TmQCjoEQRJ9l836IrO" alt=""><figcaption><p>Example of modular blueprints in ABP_Viewmodel.</p></figcaption></figure>

Let's see what each animation blueprint does.

### ABP\_Viewmodel

This is the main **Animation Blueprint** used in the package. It has a simple structure:

1. **General Locomotion**
   1. Movement animations (idle, walk, sprint, and tactical sprint).
   2. Playing first-person animations (e.g. reloads, fire, etc.).
2. **Procedural Pass**
   1. Initial IK Posing
   2. Aiming
   3. IK Additive Animations

First, the blueprint sets up the character's idle pose, main montage slot and default weapon bone pose relative to the right hand:

<figure><img src="/files/4003hxgRa3xtrQylttMp" alt=""><figcaption><p>First Person Pose.</p></figcaption></figure>

Next, the blueprint blends our **FirstPersonPose** with the **ABP\_Movement** - it provides custom animation curves, which are later used in the *Procedural Pass* to animate character arms.

{% hint style="success" %}
**Tip**: the system uses procedural idle, walk, and sprinting animations, which are used to animate character idle pose with IK dynamically.
{% endhint %}

<figure><img src="/files/Ufa4xQJwv4z5F0bwEDOi" alt=""><figcaption><p>Applying ABP_Movement.</p></figcaption></figure>

**ABP\_Movement** is applied additively on top of the **FirstPersonPose**, and then we override **VB\_Curves** bone in the Layered Blend Per Bone.

{% hint style="success" %}
**Tip**: *VB\_Curves* is only used for curve-blending. The idea is to get animation curves from Blend Pose 0 pin and override the ones from the **FirstPersonPose**.
{% endhint %}

Finally, we blend our final result with the **Additive** layer:

<figure><img src="/files/ktHprJR5jz5tgmN1P0di" alt="" width="563"><figcaption><p>Blending with the Additive layer.</p></figcaption></figure>

The **Additive Layer** is used for the *Tactical Sprinting* feature in the pack. This layer applies additive animation to the right arm only, where the tactical sprinting motion overrides the left arm.

{% hint style="success" %}
**Tip**: this method delivers the best visual result by preserving the left arm motion.
{% endhint %}

Now let's cover other blueprints used in the system. We will provide a short overview, as these blueprints already contain self-explanatory comments in the engine.

### ABP\_IK\_Pose

This blueprint is responsible for the first-person character pose. Here is a breakdown of what it does:

1. Rotate right index finger when sprinting (trigger discipline).
2. Rotate the right index finger when firing.
3. Copy animation data from real bones to the IK ones.
4. Position arms and weapons.

This layer should be applied first, as it sets up the pose and IK bones.

### ABP\_IK\_Ads

As the name states, this layer is responsible for aiming down sights. The **FPS Animation Pack** uses a unique aiming system, that has 2 modes:

1. Absolute - sights are perfectly aligned.
2. Additive - preserves original animation (e.g. reload).

The blend between the 2 modes is handled by the **Ads Blend** property, found in the[Weapon Blueprint](/fps-animation-pack-unreal/gameplay/weapon-blueprint.md#weapon-settings). The order of execution is the following:

1. Apply additive aiming.
2. Apply absolute aiming, where alpha = 1.f - Ads Blend.
3. Apply Aim Point offset.
4. Blend between idle and aiming poses.

### ABP\_IK\_Animation

This is the last blueprint. It applies various additive animations and even hides the character mesh by scaling the head bone to almost zero:

1. Apply **Recoil Animation** node - it automatically extracts recoil animation and applies it to a specified bone.
2. Apply **IK Motion** - a "jiggle" animation when aiming.
3. Apply additive locomotion using curves.
   1. IK\_X/Y/Z for translation.
   2. IK\_Pitch/Yaw/Roll for rotation.
4. Adjust the elbow's virtual bones.
5. Rotate spine bones to look up and down.
6. Apply IK, where the targets are **VB hand\_r** and **VB hand\_l**.
7. Hide the head mesh.
8. Copy weapon bone data to the **VB ik\_hand\_gun\_pose**, so the blueprint can compute additive aiming next frame.

### ABP\_Movement

This blueprint is responsible for procedural general animations, like idle, walk, sprint, tactical sprint, and jumping states.

<figure><img src="/files/DDUpvGq21S64UlS79mbK" alt=""><figcaption><p>Movement animation blueprint.</p></figcaption></figure>

The **FPS Animation Pack** implements weapon-swapping animations by player procedural animation montages. These animations blend with the base movement and jumping, ensuring smooth results.

## IK Motions

This is a special feature, used to animate the weapon when aiming:

<figure><img src="/files/ZhVu95fS4VnHtllchAek" alt="" width="493"><figcaption><p>Example IK Motion.</p></figcaption></figure>

These motions are played via the[Weapon System](/fps-animation-pack-unreal/gameplay/weapon-system.md#viewmodel-controller).


---

# 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/fps-animation-pack-unreal/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.
