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

# Aim offset

> Distribute look pitch, yaw, and lean across the Sci-Fi character and configure optional turn-in-place behavior.

export const featureImageCaption_0 = "Aim Offset bone lists and turn-in-place settings."

export const featureImage_0 = 
  <img
    src="/images/gameplay-framework/unity/aim-offset-feature.png"
    alt="Aim Offset feature with pitch, yaw, roll, angle threshold, curve, and turn speed"
  />

export const productName_0 = "Sci-Fi FPS Pack"

export const angleThreshold_0 = "45"

export const turnSpeed_0 = "1.7"

## Overview

`AimOffsetFeature` distributes look pitch, yaw, and lean roll across mapped bones. It can also rotate a stationary full-body model when the accumulated yaw exceeds a threshold.

<Frame caption={featureImageCaption_0}>
  {featureImage_0}
</Frame>

| Field                     | Effect                                                                                            |
| ------------------------- | ------------------------------------------------------------------------------------------------- |
| **Weight**                | Blends all aim-offset and turn-in-place output.                                                   |
| **Pitch Offset Elements** | Maps pitch to an explicit list of bones and per-bone positive/negative angle limits.              |
| **Yaw Offset Elements**   | Maps horizontal aim to an explicit list of bones and limits.                                      |
| **Roll Offset Elements**  | Maps `leanInput` to an explicit list of bones and limits.                                         |
| **Enable Turn In Place**  | Rotates the model root and preserves the foot IK transforms while the character turns.            |
| **Angle Threshold**       | Starts a turn after accumulated yaw exceeds this angle. The valid Inspector range is `0` to `90`. |
| **Turn Curve**            | Maps normalized turn playback to the amount of accumulated yaw consumed.                          |
| **Turn Speed**            | Advances normalized turn playback each second.                                                    |

When an element list is empty, the feature uses the mapped `spine1`, `spine2`, and `spine3` bones and divides 90 degrees between the available bones. Explicit lists are useful when a custom skeleton needs a different distribution.

## Use cases

* For an arms-only first-person model, disable **Turn In Place** because there is no visible lower body to rotate.
* For a hybrid or full-body character, keep **Turn In Place** enabled when your movement controller does not already rotate the model from view yaw.
* Avoid running two turn-in-place systems. Disable this option if your locomotion controller owns stationary turning.
* Start with the {productName_0} template values: **Angle Threshold** <code>{angleThreshold_0}</code> and **Turn Speed** <code>{turnSpeed_0}</code>.

The feature reads `lookInput.y`, `deltaLookInput.x`, and `leanInput` from `GameplayAnimationController`. If pitch, yaw, or lean does not react, verify that your controller updates those fields every frame.

## Sci-Fi setup

`PA_Template_SciFi_FPS` leaves the pitch, yaw, and roll lists empty, so the runtime distributes each axis across the mapped spine chain. Turn in place is enabled with a `45` degree threshold and `1.7` turn speed.

Disable **Turn In Place** for a pure arms-only viewmodel. Keep it for a visible hybrid body only when the locomotion controller does not already own stationary turns.
